В конце марта 2014 года Консорциум Всемирной паутины утвердил стандарт WAI-ARIA 1.0 (Web Accessibility Initiative — Accessible Rich Internet Applications (Инициатива web-доступности — Доступность высокотехнологичных Интернет-приложений)). Это набор приёмов и методов, которые позволяют сделать сложные динамические страницы и web-приложения доступными для пользователей с ограниченными возможностями. Дело в том, что ряд новых динамических web-технологий, да и просто применение кастомных элементов интерфейса, например, элементов форм или стилизованных под заголовки div вместо стандартных H1-H6, могут вызывать проблемы у некоторых пользователей, главным образом, у людей с нарушениями зрения и моторики.
Разработка WAI-ARIA началась ещё в 2008 году, и начальная поддержка этой технологии появилась уже в таких браузерах как, например, Internet Explorer 8, Firefox 3.x или Opera 9.5. Правда из-за постоянного развития стандарта, а также отсутствия у него официального статуса, поддержка конструкций ARIA очень сильно варьируется от браузера к браузеру. Так, по последним исследованиям, Internet Explorer поддерживает около 37% всех возможностей, Firefox — 85%, а Chrome (тут же и Opera) — 47%. Помимо этого, и разное вспомогательное программное обеспечение, в частности, программы экранного доступа, которые применяют в своей работе незрячие пользователи, также поддерживают WAI-ARIA в разной степени и с разной спецификой.
Таким образом, на текущем этапе развития этой технологии полноценное её внедрение в больших проектах довольно трудно осуществить без привлечения серьёзной экспертизы, потому что часто процесс обеспечения доступности интерфейсов выходит за рамки соблюдения стандарта, переходя в область адаптации под специфику браузеров и вспомогательных технологий, а порой и откровенно под их недоработки. К тому же наиболее популярными браузерами среди целевой аудитории пользователей являются Firefox и Internet Explorer, которые, как было сказано выше, отличаются очень серьёзным разбросом в уровне поддержки стандарта, что добавляет разработчиком интерфейсов головной боли.
С утверждением WAI-ARIA как рекомендованного стандарта можно ожидать, что разработчики браузеров и вспомогательного ПО наконец-то смогут сосредоточиться на более серьёзной поддержки предоставляемых им возможностей, так как технология утряслась и перестала постоянно изменяться.
Что касается обычных web-разработчиков, то им следует начать знакомство с WAI-ARIA с общего обзора и заметке в блоге W3C, а потом перейти непосредственно к самому стандарту. Базовые вещи по дополнительной семантической вёрстки для программ экранного доступа, типа назначения базовых ролей и состояния элементов, поддерживаются уже достаточно широко и не предполагают сверхглубокого погружения в тему, поэтому соблюдение WAI-ARIA на таком уровне не требует серьёзных усилий, тогда как решает наиболее острые проблемы доступности. Также полезно использовать области навигации, то есть семантическое выделение ключевых областей страницы, типа шапки (role=«banner»), навигационной панели (role=«navigation»), основной области (role=«main»), подвала (role=«contentinfo») и других.
Тем не менее, применяя WAI-ARIA, надо понимать, что, например, конструкции
<div role="link">text</div>
и
<a href="...">text</a>
не являются эквивалентными, так как дополнительная семантика WAI-ARIA предназначается исключительно для вспомогательного программного обеспечения и на поведение браузера влияние не оказывает. То есть первый пример будет считаться ссылкой с точки зрения программы чтения экрана, но с точки зрения браузера он по-прежнему останется обычным блоком и не будет фокусируемым с клавиатуры через табуляцию. В итоге, при первой реализации надо ещё добавлять атрибут tabindex. Так что возможно имеет смысл просто использовать стандартные структурные элементы HTML, чтобы упростить процесс вёрстки. В конце концов, если конфигурация пользователя не в достаточной степени поддерживает WAI-ARIA, то все усилия разработчика по поддержке этой технологии могут оказаться бессмысленными, тогда как использование ссылок, заголовков или списков в простом HTML избавит от необходимости дополнительно прописывать вещи типа role=«link/heading/list», но даст такой же эффект.
Специалистам, задействованным в инфраструктурных web-проектах, например, в разработке браузеров, также имеет смысл ознакомиться с документом "WAI-ARIA 1.0 User Agent Implementation Guide" (Руководство по внедрению WAI-ARIA 1.0 для клиентских приложений).
В целом, официальное утверждение WAI-ARIA в мире вспомогательных технологий является важной вехой, хотя возможно люди, далёкие от этого, не совсем чувствуют пафос момента. Всё необходимое для обеспечения высокой доступности современного Интернета теперь есть, остаётся только надеется, что это оценят не только специалисты в узкой сфере accessibility.
Автор: Tseikovets