Стандарты AngularJS и 508

Я создаю анализ для веб-приложения с помощью AngularJS. Приложение должно соответствовать 508 стандартам.

Я знаю, что некоторые устройства, используемые для обеспечения доступности, читают HTML напрямую и, используя атрибуты alt и longDescr в элементах, они получают содержимое веб-сайта.

Проблема, которую я вижу, заключается в том, что если вы видите источник страницы (а не сгенерированный источник), при использовании определенных функций в Angular, таких как ng-view и ng-include, содержимое шаблонов, вставленных на страницу, не будет отображаться в исходном коде, только в сгенерированном источнике.

У меня вопрос: есть ли проблема с соблюдением стандартов 508 при динамической вставке шаблонов?

В целом, насколько функции AngularJS совместимы со стандартами 508?


person pfernandom    schedule 24.11.2014    source источник
comment
Вспомогательные технологии, такие как программы чтения с экрана (JAWS, NVDA, VoiceOver и т. Д.), Работают с живым DOM, а не с исходным исходным кодом; динамическая вставка шаблонов сама по себе не является препятствием; но все же необходимо убедиться, что сами шаблоны доступны и что код, который вставляет шаблон, использует соответствующие методы для уведомления программ чтения с экрана в зависимости от ситуации: программы чтения с экрана обычно не объявляют о новом содержании или изменениях, если они не об этом говорят; поэтому предупреждения, меню, диалоговые окна, сообщения об ошибках и иногда обновления полей требуют особой обработки. Я не знаком с тем, что делает здесь angular.   -  person BrendanMcK    schedule 25.11.2014
comment
Спасибо за ответ. Часть о вспомогательных технологиях, читающих живую модель DOM, является основной частью моего вопроса. Я мог бы добавить, что, по крайней мере, в части синтаксиса в HTML, Angular может соответствовать стандартам 508, если вы добавите data- в ng- * и измените {{data}} для data-ng-bind. Но все же, как вы говорите, мне все еще нужно знать, могут ли эти вспомогательные технологии обнаруживать обновления DOM, сделанные Angular.   -  person pfernandom    schedule 25.11.2014
comment
Изменения можно обнаружить, но обычно они игнорируются по умолчанию, поэтому более серьезный вопрос заключается в том, каково желаемое поведение с точки зрения пользователя для этой части пользовательского интерфейса; для некоторых пользовательских интерфейсов может быть целесообразно прочитать его немедленно, для других может быть целесообразно оставить его как есть, пока пользователь не перейдет к нему - считывание каждого изменения может быть чрезмерно шумным! Ознакомьтесь с атрибутом aria-live, который является частью WAI- ARIA; это можно использовать, чтобы сигнализировать AT, что они должны прочитать конкретный тег при изменении его содержимого.   -  person BrendanMcK    schedule 26.11.2014


Ответы (1)


Angular.js можно использовать доступным на практике, хотя это требует некоторой работы.

Однако Раздел 508 в текущей форме по-прежнему ссылается на WCAG 1.0 с некоторыми незначительными отличиями.

Ни один из них не очень удобен для написания сценариев, текст раздела 508 для 1194.22 (часть i): :

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

Не очень практично с Angular.

Раздел 508 будет обновлен для использования WCAG 2 на каком-то этапе (который указывает, что интерфейсы на основе JavaScript должны быть доступны), он разрабатывается годами, но " нормотворчество "еще не завершено по состоянию на декабрь 2014 г.

person AlastairC    schedule 26.11.2014
comment
Что вы думаете об этом в 2021 году? - person Paulito.Bandito; 01.04.2021
comment
Раздел 508 был обновлен для использования WCAG 2.0, поэтому JS-фреймворки не исключены. Однако см. stackoverflow.com/questions/18853183/, для доступности - person AlastairC; 08.04.2021