VoiceOver маленькие слова с большой буквы читаются как сокращения - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть следующий заголовок

<h1>ADD MONEY</h1>

, и VoiceOver читает его как

добавить деньги

, тогда как если я изменютекст в нижнем регистре будет правильно читать как «добавить деньги».У вас есть какие-нибудь предложения?Я уже пытался использовать aria-labelledby без удачи!

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я рекомендую разработчикам избегать попыток контролировать программы чтения с экрана в этой ситуации.Некоторые причины:

  • Пользователи программ чтения с экрана (как правило) хорошо привыкли к подобным измышлениям и будут понимать распространенные слова, такие как «добавить».То, что может показаться огромной проблемой для разработчиков (и тестировщиков QA), может на самом деле быть незначительной проблемой для людей, которые используют программы чтения с экрана весь день.Более длинные или необычные слова могут быть большей проблемой для заглавных букв, но пороговых значений нет.
  • Это зависит от разных программ чтения с экрана и может зависеть от того, какой голос (или механизм преобразования текста в речь) используется.,Слова, написанные с заглавной буквы, могут быть записаны в одной программе чтения с экрана и объявлены как слово другой.Большинству разработчиков не о чем беспокоиться.
  • Некоторые программы чтения с экрана используют разные подходы с использованием заглавных букв, например, объявляя «cap» или изменяя высоту тона.
  • Некоторые программы чтения с экрана предлагают для них пользовательские настройки.На мой взгляд, это главная причина, по которой разработчики избегают микроуправления программами чтения с экрана - мы можем непреднамеренно помешать настройкам пользователя.
  • Все это может измениться какв будущем, по мере развития речевых движков и вспомогательных технологий.Попытка контролировать объявления сегодня может помешать вспомогательным техническим возможностям через несколько лет. Директива WCAG 4.1 гласит: «Максимальная совместимость с текущими и будущими пользовательскими агентами, включая вспомогательные технологии» (выделено мной).Я интерпретирую это как означающее, что не стоит пытаться микроуправлять мелкими причудами, подобными этим, в краткосрочной перспективе.

Некоторые ответы здесь предлагают использовать CSS text-transform: uppercase.Это хороший подход, но он также имеет несоответствия между различными программами чтения с экрана.В идеальном мире необработанный текст и преобразование текста могут быть переданы вспомогательным технологиям, чтобы предоставить лучшую информацию речевым движкам, а также с учетом предпочтений пользователя.Мы еще не там, но это обсуждается разработчиками браузера - смотрите это обсуждение в трекере ошибок Chromium для получения дополнительной информации: Соблюдение стилей преобразования текста в дереве a11y?

ДругоеПредлагаемый метод состоит в том, чтобы использовать строчную букву aria-label для дублирования видимого текста, но заставлять браузеры передавать строчную версию вспомогательной технологии.Например <button aria-label="add money">ADD MONEY</button>.Это может работать довольно хорошо во многих случаях, но это пример того, как разработчики могут помешать настройкам пользователя.Например, пользователи, которые хотят, чтобы их программа чтения с экрана сменила высоту речи для столиц, пропустят здесь.Основная задача программы чтения с экрана - передавать то, что на экране , включая заглавные буквы.Техника строчных букв aria-label противоречит этому, на мой взгляд.

Обсуждение всех заглавных букв (в проблеме Drupal CMS) содержит некоторые интересные комментарии пользователей программ чтения с экрана: Читаемостьпроблема с заглавными буквами в основных темах .

0 голосов
/ 15 декабря 2018

Оставьте разметку в нижнем регистре, но используйте CSS, чтобы визуально изменить текст только в верхнем регистре с помощью text-transform.

Затем добавьте aria-label из "add money".

h1 {
  text-transform: uppercase;
}
<h1 aria-label="add money">add money</h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...