Внести вклад
Подробные руководства
Angular Aria

Angular Aria

Что такое Angular Aria?

Создание доступных компонентов кажется простым, но реализация по W3C Accessibility Guidelines требует значительных усилий и экспертизы в accessibility.

Angular Aria — набор headless, доступных директив, реализующих распространённые паттерны WAI-ARIA. Директивы обрабатывают клавиатурные взаимодействия, ARIA-атрибуты, управление фокусом и поддержку screen reader. Вам остаётся предоставить HTML-структуру, CSS-стили и бизнес-логику!

Установка

Showcase

Например, возьмём toolbar menu. На вид это «простой» ряд кнопок со связанной логикой, но клавиатурная навигация и screen reader добавляют много неожиданной сложности для тех, кто мало знаком с accessibility.

В этом сценарии разработчикам нужно учесть:

  • Клавиатурную навигацию. Пользователи должны открывать меню Enter или Space, перемещаться по опциям стрелками, выбирать Enter и закрывать Escape.
  • Screen readers должны объявлять состояние меню, число опций и какая опция в фокусе.
  • Управление фокусом должно логично перемещаться между trigger и пунктами меню.
  • Языки справа налево требуют возможности навигации в обратном направлении.

Что входит в комплект?

Angular Aria включает директивы с подробной документацией, рабочими примерами и API reference для распространённых интерактивных паттернов:

Поиск и выбор

Компонент Описание
Autocomplete Текстовый ввод с отфильтрованными подсказками по мере ввода
Listbox Списки опций с одиночным или множественным выбором и клавиатурой
Select Паттерн dropdown с одиночным выбором и клавиатурной навигацией
Multiselect Паттерн dropdown с множественным выбором и компактным отображением
Combobox Примитивная директива, координирующая текстовый ввод с popup
Компонент Описание
Menu Выпадающие меню со вложенными подменю и горячими клавишами
Menubar Горизонтальная панель навигации для постоянных меню приложения
Toolbar Группы элементов управления с логичной клавиатурной навигацией

Организация контента

Компонент Описание
Accordion Сворачиваемые панели контента — по одной или взаимоисключающе
Tabs Вкладки с режимами автоматической или ручной активации
Tree Иерархические списки с раскрытием/сворачиванием
Grid Двумерное отображение данных с клавиатурной навигацией по ячейкам

Когда использовать Angular Aria

Angular Aria хорошо подходит, когда нужны доступные интерактивные компоненты, соответствующие WCAG, с кастомными стилями. Примеры:

  • Создание дизайн-системы — команда поддерживает библиотеку компонентов с конкретными визуальными стандартами и нуждается в доступных реализациях
  • Корпоративные библиотеки компонентов — вы создаёте переиспользуемые компоненты для нескольких приложений в организации
  • Требования бренда — интерфейс должен точно соответствовать дизайн-спецификациям, которые готовые стилизованные библиотеки плохо покрывают

Когда не использовать Angular Aria

Angular Aria подходит не для каждого сценария:

  • Готовые стилизованные компоненты — если нужны компоненты, которые выглядят завершённо без кастомных стилей, используйте Angular Material
  • Простые формы — нативные HTML-контролы вроде <button> и <input type="radio"> дают встроенную доступность для простых случаев
  • Быстрое прототипирование — при быстрой проверке идей готовые стилизованные библиотеки сокращают начальное время разработки

Следующие шаги

Выберите компонент в боковой навигации или в списке выше, либо начните с Toolbar, чтобы увидеть полный пример работы директив Angular Aria!