Определение языка веб-доступности с помощью Voiceover

Как Voiceover определяет язык и как заставить его «говорить» на одном языке на всем веб-сайте?

Мой компьютер на английском языке, я работаю над веб-сайтом, который предлагает различные локализации. Голос за кадром может очень хорошо читать элементы <p> или <span> в этом текущем локальном (не английском), но когда я фокусируюсь на элементе <button>, он не определяет язык и читает все на английском языке, что не имеет смысла, потому что текст не по-английски. У меня установлен атрибут lang в <html>, но это не помогает. Я даже добавил к кнопке атрибут lang, но все равно ничего.

Я попытался добавить элемент <p> внутрь <button>, но он все еще делает то же самое.

Так работает озвучка или я что-то не так делаю?

Вы написали "читает все на английском", а потом поставили "текст не на английском" - поясните, пожалуйста, что именно происходит. Вы сформулировали это так, как будто это перевод неанглоязычного текста на английский.

Dai 23.12.2020 14:21

читается так, как написано на английском

Gabby_987 23.12.2020 14:21

Голос за кадром специфичен для Apple. Это Voiceover для iOS или Voiceover для macOS? Какой браузер вы используете? Что происходит, когда вы используете не-Apple браузер или не-Apple платформу?

Dai 23.12.2020 14:22

Для MacOS он делает то же самое во всех браузерах, в которых я его тестировал: Safari, Chrome и Firefox. У меня нет доступа к другому средству чтения с экрана. мой вопрос относится к озвучке, как следует из названия

Gabby_987 23.12.2020 14:24

Вы уверены, что это не ограничение Voiceover? Известны ли вам веб-сайты, на которых Voiceover правильно читает другие языки? Я нашел несколько веток форума в Интернете, где пользователи Apple жалуются, что Voiceover на iOS отлично читает несколько языков, но на macOS это не так, например. обсуждений.apple.com/thread/7970381

Dai 23.12.2020 14:26

на кнопках случайно нет aria-label, aria-labelledby и т.д.?

GrahamTheDevRel 23.12.2020 14:27

Я также начинаю думать, что это ограничение озвучивания.

Gabby_987 23.12.2020 14:33

@GrahamRitchie да, я пробовал их все, но конечный результат тот же

Gabby_987 23.12.2020 14:33

Если у него есть aria-label, то это то, что будет прочитано, поэтому, если это на английском языке, оно будет прочитано на английском языке, даже если текст кнопки не будет.

GrahamTheDevRel 23.12.2020 16:18

GrahamRitchie Текст не на английском языке. Ни надписи на арии, ни текста на кнопках, ни английского на сайте вообще. Но VoiceOver читает так, как если бы они были написаны на английском языке. Эта проблема возникает только в кнопках и ни в каком другом элементе. В любом случае, похоже, проблема с VoiceOver. Всем спасибо.

Gabby_987 08.01.2021 15:04
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
4
10
757
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

После некоторого тестирования выяснилось, что это проблема VoiceOver.

У меня такая же проблема, вы нашли решение? Это задокументированное ограничение Voice Over? У вас есть ссылка на эту документацию?

Markus Johnsson 01.11.2021 08:41

Вы пытались добавить язык вручную в настройках системы?

Перейдите в «Системные настройки» > «Универсальный доступ» > «Голос за кадром» > «Открыть утилиту «Голос за кадром»» > «Речь» > Нажмите кнопку «+» внизу, чтобы добавить новый язык.

Хотя некоторые программы чтения с экрана могут автоматически определять язык текста, это может быть ненадежно. Чтобы обеспечить правильную идентификацию языка для пользовательских агентов, рекомендуется использовать атрибут lang.

В VoiceOver на MacOS, чтобы текст кнопки читался на языке, отличном от языка страницы, добавьте к кнопке атрибут lang:

<html lang = "en">
  <head></head>
  <body>
    This is a page in English
    <button lang = "fr">Le texte de ce bouton est en français</button>
  </body>
</html>

Кроме того, необходимо установить голос для целевого языка в утилите VoiceOver > Речь > Голоса.

Другие вопросы по теме