Библиотека Toastify изначально спроектирована с учётом доступности (accessibility-first). Это означает, что все уведомления (toasts) создаются так, чтобы их могли воспринимать пользователи с ограниченными возможностями, включая слабовидящих и пользователей с ограниченными устройствами ввода. В основе лежат стандарты ARIA (Accessible Rich Internet Applications) и корректное взаимодействие с экранными читалками.
Каждое уведомление, создаваемое через Toastify, автоматически
получает атрибут role="alert" или
role="status" в зависимости от настроек.
role="alert" используется для
критических сообщений, которые требуют немедленного внимания. Экранные
читалки автоматически озвучивают содержимое таких уведомлений.role="status" применяют для
информационных сообщений, которые не прерывают текущую активность
пользователя, но при этом остаются доступными для прочтения.Также можно добавлять дополнительные ARIA-атрибуты вручную через объект конфигурации:
Toastify({
text: "Данные успешно сохранены",
ariaLive: "polite", // "polite" или "assertive"
duration: 3000
}).showToast();
ariaLive: "polite" — уведомление будет
озвучено экранными читалками после завершения текущей задачи
пользователя.ariaLive: "assertive" — сообщение
прерывает текущую озвучку и озвучивается немедленно.Все toast-уведомления в Toastify можно полностью контролировать с клавиатуры. По умолчанию:
Escape.Tab уведомление получает видимый
outline, соответствующий стандартам WCAG.Для кастомной клавиатурной навигации можно использовать следующие события:
Toastify({
text: "Сообщение с клавиатурным управлением",
onClick: function() {
console.log("Toast нажат клавишей Enter или пробелом");
}
}).showToast();
Toastify поддерживает высокий уровень контрастности текста относительно фона уведомления. Это критично для пользователей с нарушениями зрения.
.toastify {
background-color: #0055aa;
color: #ffffff;
font-size: 16px;
}
Все уведомления могут содержать скрытые описания,
которые видны только для экранных читалок. Это делается с помощью
CSS-класса sr-only (screen reader only) или через
встроенные ARIA-атрибуты:
Toastify({
text: "Данные сохранены",
ariaLabel: "Уведомление: данные успешно сохранены"
}).showToast();
Такой подход обеспечивает полное понимание контекста уведомления пользователями с визуальными ограничениями.
Длительность отображения toast-уведомления должна быть достаточной, чтобы пользователь успел его воспринять, особенно если он использует экранное устройство. Toastify позволяет задавать индивидуальную длительность:
Toastify({
text: "Файл загружен",
duration: 5000, // 5 секунд
close: true
}).showToast();
Если уведомление содержит важную информацию, можно использовать флаг
close: true, чтобы пользователь сам закрывал toast,
обеспечивая полный контроль.
Основные параметры, влияющие на доступность:
text — текст уведомления.ariaLive — режим озвучки экранными читалками
(polite/assertive).close — возможность ручного закрытия.duration — длительность показа уведомления.onClick — обработка действий с клавиатуры или
мыши.ariaLabel — описание для экранных читалок.Все эти параметры можно комбинировать для создания доступных, гибких и информативных уведомлений, полностью соответствующих стандартам WCAG 2.1.
Toastify легко интегрируется с React, Vue и другими фреймворками, при этом сохраняется поддержка accessibility-first:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
Toastify({
text: "Данные обновлены",
ariaLive: "polite",
duration: 4000,
close: true
}).showToast();
В этом примере уведомление будет корректно озвучено экранной читалкой, а пользователь сможет управлять им через клавиатуру.