#javascript #html #accessibility #wcag2.0
#javascript #HTML #Специальные возможности #wcag2.0
Вопрос:
Если страница загружается, а затем использует javascript для изменения атрибута language в <html>
элементе, может ли это повлиять на доступность? Или программы чтения с экрана и другие устройства обеспечения доступности обычно позволяют странице загружать динамическое содержимое перед его анализом? И, кроме того, соответствует ли он WCAG 2 3.1.1? Я прочитал этот раздел спецификации, и, похоже, он не затрагивает этот момент.
В этом случае система представляет собой одностраничное веб-приложение, которое загружает контент на разных языках в зависимости от предпочтений пользователя. Мы также изучаем 3.1.2 (добавление языка к дочерним элементам), но нам все еще нужно соответствующим образом пометить <html>
элемент.
Мой текущий план реализации состоит в том, чтобы изначально исправить lang на английский (поскольку это язык по умолчанию), а затем изменить атрибут lang при загрузке пользовательских настроек.
Комментарии:
1. Отличный вопрос. Дерево доступности / api обновляется при обновлении DOM (но иногда может быть небольшая задержка), поэтому я не уверен в влиянии
lang
атрибута, добавляемого к html-элементу на лету. Мне нужно будет протестировать. Вы можете добавлятьlang
на лету общие элементы DOM по мере необходимости.
Ответ №1:
В требовании WCAG 3.1.1 нет ничего, что lang
должно быть установлено для загруженного html или что предотвращает настройку lang
при загрузке страницы. Все должно быть в порядке.
Легко проверить, есть ли у вас программа чтения с экрана, которая будет переключать диалекты, когда увидит lang
свойство. Просто попробуйте что-то вроде:
<p>dos</p>
<p lang="es">dos</p>
<p>deux</p>
<p lang="fr">deux</p>
Затем, если вы динамически измените язык вашей страницы на «es» или «fr», посмотрите, произносится ли «dos» или «duex» так же, как <p> с lang
указанным.
Комментарии:
1. Спасибо, я протестирую это, когда у меня будет возможность. Есть ли у вас программа для чтения с экрана, которую вы рекомендуете?
2. Если у вас Mac, то у вас уже есть VoiceOver (я думаю, что Cmd Shift F5 включает это). Если у вас есть ПК, то NVDA — это бесплатная программа для чтения с экрана (необязательно пожертвование) — nvaccess.org/download . JAWS — очень популярная программа для чтения, но для нее требуется лицензия, хотя существует 40-минутная пробная версия — freedomscientific.com/products/software/jaws . Иногда требуется установить дополнительные языковые пакеты, чтобы услышать изменение языка.
3. Похоже, это корректно работает с Mac VoiceOver (только что протестировал).