Как Voiceover определяет язык и как заставить его «говорить» на одном языке на всем веб-сайте?
Мой компьютер на английском языке, я работаю над веб-сайтом, который предлагает различные локализации.
Голос за кадром может очень хорошо читать элементы <p>
или <span>
в этом текущем локальном (не английском), но когда я фокусируюсь на элементе <button>
, он не определяет язык и читает все на английском языке, что не имеет смысла, потому что текст не по-английски. У меня установлен атрибут lang
в <html>
, но это не помогает. Я даже добавил к кнопке атрибут lang, но все равно ничего.
Я попытался добавить элемент <p>
внутрь <button>
, но он все еще делает то же самое.
Так работает озвучка или я что-то не так делаю?
читается так, как написано на английском
Голос за кадром специфичен для Apple. Это Voiceover для iOS или Voiceover для macOS? Какой браузер вы используете? Что происходит, когда вы используете не-Apple браузер или не-Apple платформу?
Для MacOS он делает то же самое во всех браузерах, в которых я его тестировал: Safari, Chrome и Firefox. У меня нет доступа к другому средству чтения с экрана. мой вопрос относится к озвучке, как следует из названия
Вы уверены, что это не ограничение Voiceover? Известны ли вам веб-сайты, на которых Voiceover правильно читает другие языки? Я нашел несколько веток форума в Интернете, где пользователи Apple жалуются, что Voiceover на iOS отлично читает несколько языков, но на macOS это не так, например. обсуждений.apple.com/thread/7970381
на кнопках случайно нет aria-label
, aria-labelledby
и т.д.?
Я также начинаю думать, что это ограничение озвучивания.
@GrahamRitchie да, я пробовал их все, но конечный результат тот же
Если у него есть aria-label
, то это то, что будет прочитано, поэтому, если это на английском языке, оно будет прочитано на английском языке, даже если текст кнопки не будет.
GrahamRitchie Текст не на английском языке. Ни надписи на арии, ни текста на кнопках, ни английского на сайте вообще. Но VoiceOver читает так, как если бы они были написаны на английском языке. Эта проблема возникает только в кнопках и ни в каком другом элементе. В любом случае, похоже, проблема с VoiceOver. Всем спасибо.
После некоторого тестирования выяснилось, что это проблема VoiceOver.
У меня такая же проблема, вы нашли решение? Это задокументированное ограничение Voice Over? У вас есть ссылка на эту документацию?
Вы пытались добавить язык вручную в настройках системы?
Перейдите в «Системные настройки» > «Универсальный доступ» > «Голос за кадром» > «Открыть утилиту «Голос за кадром»» > «Речь» > Нажмите кнопку «+» внизу, чтобы добавить новый язык.
Хотя некоторые программы чтения с экрана могут автоматически определять язык текста, это может быть ненадежно. Чтобы обеспечить правильную идентификацию языка для пользовательских агентов, рекомендуется использовать атрибут 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 > Речь > Голоса.
Вы написали "читает все на английском", а потом поставили "текст не на английском" - поясните, пожалуйста, что именно происходит. Вы сформулировали это так, как будто это перевод неанглоязычного текста на английский.