Driver.js использует ARIA (Accessible Rich Internet Applications) атрибуты для обеспечения доступности интерактивных шагов подсказок. Эти атрибуты помогают технологиям вспомогательного доступа, таким как экранные читалки, правильно интерпретировать элементы интерфейса, на которые указывает Driver.js, и предоставлять пользователю корректную информацию.
aria-describedbyКаждый шаг Driver.js может ссылаться на описание через атрибут
aria-describedby. Этот атрибут указывает на ID элемента,
содержащего текст подсказки, который будет озвучен экранной читалкой. В
Driver.js автоматически создаются скрытые контейнеры с уникальными ID,
которые прикрепляются к целевым элементам.
Пример использования:
const driver = new Driver();
driver.defineSteps([
{
element: '#submitButton',
popover: {
title: 'Отправка формы',
description: 'Нажмите эту кнопку для отправки формы.',
position: 'bottom'
}
}
]);
driver.start();
При старте подсказки для кнопки #submitButton будет
автоматически установлен aria-describedby, указывающий на
текст описания. Это гарантирует, что экранные читалки озвучат информацию
о кнопке.
aria-hiddenDriver.js использует aria-hidden="true" для всех
элементов, которые временно перекрываются или затемняются в процессе
тура. Это предотвращает доступ вспомогательных технологий к элементам,
не имеющим отношения к текущему шагу подсказки.
Пример:
aria-hidden="true".Таким образом достигается фокусировка на текущем шаге и минимизируется «шум» для пользователей с ограниченными возможностями.
roleДля всплывающих подсказок Driver.js назначает роль
dialog:
<div role="dialog" aria-modal="true">
<!-- Контент подсказки -->
</div>
Использование роли dialog указывает экранным читалкам,
что это интерактивный модальный элемент. Атрибут
aria-modal="true" сигнализирует, что взаимодействие с
остальной частью страницы временно ограничено.
aria-liveDriver.js поддерживает динамическое обновление текста подсказок через
aria-live. Атрибут aria-live="polite"
обеспечивает постепенное озвучивание содержимого без прерывания текущего
потока:
<div aria-live="polite" id="driver-description-1">
Нажмите эту кнопку для отправки формы.
</div>
Использование aria-live критично для пошаговых туров,
где содержимое подсказки обновляется динамически при переходе между
шагами.
Driver.js позволяет явно управлять ARIA атрибутами через параметры шага:
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Главное меню',
description: 'Меню содержит ссылки на основные разделы сайта.',
aria: {
role: 'dialog',
'aria-describedby': 'menu-description',
'aria-hidden': false
},
position: 'right'
}
}
]);
Параметр aria позволяет:
aria-describedby.aria-hidden.Driver.js автоматически управляет фокусом через ARIA. На текущем шаге:
aria-describedby.aria-hidden="true".При смене шага ARIA атрибуты обновляются, чтобы экранная читалка правильно интерпретировала новый контекст.
Для кастомных компонентов, таких как слайдеры или сложные панели, Driver.js позволяет вручную контролировать ARIA:
role.aria-live при изменении содержимого.Это гарантирует корректное озвучивание при взаимодействии с нестандартными элементами интерфейса.
aria-describedby для каждого
шага.aria-hidden.dialog или tooltip для
модальных подсказок.aria-live="polite" для динамических
подсказок.Эти практики обеспечивают высокий уровень доступности и соответствие стандартам WCAG при использовании Driver.js в веб-приложениях.