Библиотека Noty предоставляет механизмы уведомлений на веб-страницах с акцентом на доступность. Поддержка ARIA (Accessible Rich Internet Applications) позволяет обеспечить корректное взаимодействие с экранными читалками и другими вспомогательными технологиями. Это особенно важно для уведомлений, которые появляются динамически и могут не попадать в стандартный поток документа.
Каждое уведомление Noty автоматически получает атрибут
role, который определяет его поведение для вспомогательных
технологий:
Выбор роли зависит от типа уведомления и уровня критичности
информации. Для стандартных информационных сообщений часто используется
status, тогда как ошибки или предупреждения лучше помечать
как alert.
new Noty({
text: 'Ошибка загрузки данных',
type: 'error',
layout: 'topRight',
timeout: 5000,
progressBar: true,
// роль для экранных читалок
modal: false,
theme: 'mint',
callbacks: {
onShow: function() {
this.bar.setAttribute('role', 'alert');
}
}
}).show();
aria-liveДля динамически обновляемых уведомлений ключевым является атрибут
aria-live, который управляет тем, как
часто экранные читалки извещают пользователя о новых сообщениях:
В Noty aria-live можно задавать через конфигурацию
aria:
new Noty({
text: 'Сообщение отправлено',
type: 'success',
layout: 'topRight',
timeout: 3000,
aria: {
role: 'status',
live: 'polite'
}
}).show();
aria-atomic и aria-relevantadditions, removals,
text.new Noty({
text: 'Обновление доступно',
type: 'information',
aria: {
atomic: true,
relevant: 'additions text'
}
}).show();
Если уведомление содержит кнопки (например, закрытие или подтверждение действия), каждая кнопка должна быть доступна через клавиатуру и иметь корректные ARIA-метки:
new Noty({
text: 'Удалить файл?',
type: 'warning',
buttons: [
Noty.button('Да', 'btn btn-success', function(n) {
console.log('Файл удалён');
n.close();
}, { 'aria-label': 'Подтвердить удаление' }),
Noty.button('Нет', 'btn btn-error', function(n) {
n.close();
}, { 'aria-label': 'Отменить удаление' })
],
aria: {
role: 'alertdialog'
}
}).show();
Использование роли alertdialog позволяет экранным
читалкам понимать, что уведомление требует действия пользователя.
Для максимальной доступности Noty поддерживает управление фокусом на интерактивные элементы внутри уведомлений. После отображения уведомления можно программно установить фокус на кнопку подтверждения или закрытия:
callbacks: {
onShow: function() {
const button = this.bar.querySelector('button');
if (button) button.focus();
}
}
Noty позволяет уведомлениям не мешать основному контенту, сохраняя доступность элементов страницы. Рекомендуется:
aria-live на polite для
информационных сообщений.role: alert только для критических
уведомлений.Поддержка ARIA в Noty делает библиотеку пригодной для сайтов с высокими требованиями к доступности и позволяет создавать уведомления, корректно воспринимаемые всеми пользователями, включая людей с ограниченными возможностями.