Библиотека Noty предоставляет гибкий механизм уведомлений в браузере, который может быть полностью адаптирован под потребности доступности. Одним из ключевых аспектов является правильная работа с скринридерами, для чего используются специальные ARIA-атрибуты и роли. Эти атрибуты позволяют вспомогательным технологиям корректно интерпретировать уведомления и обеспечивать их своевременное озвучивание.
Noty поддерживает назначение различных ARIA-ролей, которые определяют, как скринридеры воспринимают уведомление. Среди основных ролей:
В Noty роль уведомления задается через параметр
ariaRole. Пример инициализации уведомления с ролью
alert:
new Noty({
text: 'Ошибка при сохранении данных',
type: 'error',
timeout: 5000,
layout: 'topRight',
progressBar: true,
ariaRole: 'alert' // ключевой атрибут для скринридеров
}).show();
Для роли status используется аналогичная конфигурация:
new Noty({
text: 'Данные успешно обновлены',
type: 'success',
timeout: 3000,
layout: 'bottomLeft',
ariaRole: 'status'
}).show();
Помимо роли, Noty автоматически добавляет атрибут
aria-live, соответствующий выбранной
роли:
alert → aria-live="assertive" Уведомления
озвучиваются немедленно.status → aria-live="polite" Уведомления
озвучиваются с приоритетом по мере возможности, не прерывая текущий
контент.log и region → обычно
aria-live="off" или настраивается вручную.Можно явно переопределить aria-live при
необходимости:
new Noty({
text: 'Новое сообщение в чате',
ariaRole: 'status',
ariaLive: 'polite' // ручная настройка поведения скринридера
}).show();
Noty добавляет уведомления в DOM динамически, что важно учитывать для скринридеров. Для корректной работы необходимо:
aria-atomic="true" для уведомлений,
которые должны озвучиваться полностью, даже если содержимое изменилось
частично.alert должны появляться выше остальных.Пример расширенной настройки:
new Noty({
text: 'Новая ошибка подключения',
type: 'error',
layout: 'topCenter',
progressBar: false,
ariaRole: 'alert',
ariaLive: 'assertive',
ariaAtomic: true
}).show();
ariaRole: 'alert'.ariaRole: 'status'.log.Правильная настройка ролей уведомлений в Noty позволяет сделать
интерфейс доступным и дружелюбным к пользователям, использующим
вспомогательные технологии. Использование ariaRole,
aria-live и aria-atomic обеспечивает
корректную озвучку уведомлений и соблюдение стандартов доступности.