Можно ли установить язык страницы во время выполнения для обеспечения доступности и соответствия WCAG 2 3.1.1?

#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 (только что протестировал).