Toastify — это библиотека для отображения уведомлений (toasts) в браузере с минимальными усилиями. Одним из ключевых аспектов доступности веб-приложений является корректная поддержка пользователей со скринридерами. Toastify предоставляет встроенные механизмы для улучшения взаимодействия с такими технологиями.
Для корректного озвучивания уведомлений скринридерами необходимо использовать ARIA-атрибуты. В Toastify применяются следующие ключевые атрибуты:
role="alert" — уведомление
автоматически воспринимается скринридером как сообщение с высоким
приоритетом. Пользователь услышит текст уведомления без необходимости
фокусироваться на элементе.aria-live="assertive" — устанавливает
режим немедленного оповещения. Все новые уведомления будут озвучены
сразу, прерывая предыдущие сообщения.aria-atomic="true" — гарантирует, что
скринридер прочитает уведомление целиком, а не только изменённую часть
текста.Применение этих атрибутов осуществляется автоматически при создании нового тоста через стандартный API Toastify, что позволяет минимизировать ручную настройку доступности.
Toastify позволяет конфигурировать уведомления с точки зрения доступности. Основные параметры:
text — основной текст уведомления,
который будет озвучен. Важно, чтобы он был кратким и
содержательным.duration — длительность отображения
тоста в миллисекундах. Для скринридеров рекомендуется увеличить время до
полного прочтения сообщения, особенно для длинного текста.close — кнопка закрытия тоста. Для
пользователей скринридеров кнопка должна иметь атрибут
aria-label="Закрыть уведомление", чтобы её
назначение было понятно.Пример конфигурации с поддержкой доступности:
Toastify({
text: "Файл успешно загружен",
duration: 5000,
close: true,
gravity: "top",
position: "right",
stopOnFocus: true,
onClick: function() { /* обработка клика */ },
}).showToast();
Хотя Toastify не переводит фокус автоматически на уведомление, важно, чтобы уведомления не мешали пользователю при взаимодействии с формами и кнопками. Для этого применяется параметр:
stopOnFocus: true — при наведении
курсора или фокусе на тост его таймер задержки исчезновения
приостанавливается, что позволяет пользователю прочитать сообщение без
спешки.Чтобы уведомления корректно озвучивались:
Toastify допускает добавление любых дополнительных атрибутов через
метод node.setAttribute. Это позволяет интегрировать тосты
в сложные сценарии доступности, например:
const toast = Toastify({
text: "Сообщение о системе",
duration: 7000
}).showToast();
toast.toastElement.setAttribute("aria-label", "Новое системное уведомление");
Поддержка скринридеров в Toastify строится на основе стандартов ARIA и предоставляет гибкий инструмент для создания доступных веб-приложений, где уведомления будут озвучены корректно и своевременно.