Shepherd.js предоставляет встроенную поддержку ARIA-атрибутов, что делает ваши туры доступными для пользователей с ограниченными возможностями. Основная цель использования ARIA — обеспечить корректное взаимодействие с экранными читалками и другими ассистивными технологиями, а также улучшить навигацию с клавиатуры.
Shepherd автоматически назначает некоторые ключевые атрибуты для шагов тура, но их можно настраивать вручную. Среди наиболее важных:
dialog для модальных подсказок и
tooltip для простых подсказок.Каждый шаг Shepherd можно конфигурировать с помощью объекта
steps, где атрибуты ARIA задаются в параметре
attachTo или в modalOverlayOptions.
Пример настройки:
const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: {
enabled: true
},
scrollTo: { beh * avior: 'smooth', block: 'center' },
aria: true
}
});
tour.addStep({
id: 'step-1',
text: 'Это первый шаг с ARIA-настройками',
attachTo: {
element: '#button1',
on: 'bottom',
// Настройка ARIA через attachTo
aria: {
label: 'Главная кнопка',
describedby: 'step1-description'
}
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
В этом примере:
aria.label задает короткое описание элемента.aria.describedby указывает на блок с полным текстом
инструкции.modalOverlay для улучшения доступностиShepherd.js поддерживает модальные оверлеи
(modalOverlay), которые блокируют взаимодействие с
остальными элементами страницы. При этом оверлей автоматически получает
атрибут aria-hidden="true" для всех элементов страницы, не
относящихся к шагу тура.
Пример:
const tour = new Shepherd.Tour({
useModalOverlay: true,
defaultStepOptions: {
aria: true
}
});
Использование модального оверлея делает туры более доступными для пользователей, использующих клавиатуру и экранные читалки, поскольку фокус перемещается только на активный шаг.
Shepherd автоматически управляет фокусом для шагов:
Next, Back,
Cancel) доступны через клавиши Tab.Если необходимо, можно настроить явное управление фокусом:
tour.addStep({
id: 'step-2',
text: 'Шаг с кастомной фокусировкой',
attachTo: '#input-field',
when: {
show: () => {
document.querySelector('#input-field').focus();
}
}
});
aria по умолчанию:
Shepherd обеспечивает базовую доступность, но добавление собственных
меток улучшает пользовательский опыт.aria-label.Shepherd.js сочетает в себе простоту создания интерактивных туров с мощными инструментами для обеспечения доступности. ARIA-атрибуты обеспечивают корректное взаимодействие с пользователями, которым необходимы ассистивные технологии, и делают интерфейс более дружелюбным для всех.