Tooltipster изначально разработан как библиотека для создания настраиваемых всплывающих подсказок в веб-интерфейсах. Однако доступность интерфейса и корректная работа со скринридерами требуют особого внимания при интеграции. Tooltipster предоставляет ряд механизмов для улучшения восприятия подсказок пользователями с нарушениями зрения.
Для совместимости с технологиями чтения с экрана важно использовать правильные ARIA-атрибуты. Основные из них:
aria-describedby – связывает элемент с
подсказкой. Tooltipster автоматически добавляет этот атрибут к триггеру,
указывая на ID контейнера тултипа. Это позволяет скринридеру озвучивать
содержимое всплывающей подсказки, когда элемент получает фокус.role="tooltip" – устанавливается на
сам контейнер тултипа. Скринридеры используют этот атрибут, чтобы
корректно интерпретировать содержимое как подсказку, а не как
статический текст страницы.aria-hidden – Tooltipster динамически
управляет этим атрибутом, скрывая подсказку от скринридеров, когда она
не видна. Это предотвращает озвучивание скрытых элементов.Пример корректной разметки с Tooltipster:
В данном примере кнопка автоматически получает
aria-describedby, а контейнер тултипа —
role="tooltip".
Для скринридеров важно, чтобы появление тултипа сопровождалось возможностью его прочтения без изменения поведения клавиатурной навигации. Tooltipster поддерживает два ключевых подхода:
trigger: 'focus' подсказка появляется при получении
элементом фокуса. Это гарантирует, что скринридер озвучит содержимое
автоматически.$('#infoButton').tooltipster({
trigger: 'focus'
});
interactive: true, чтобы
пользователь мог взаимодействовать с тултипом (например, ссылками или
кнопками) с помощью клавиатуры.$('#infoButton').tooltipster({
interactive: true
});
Эти настройки критически важны для пользователей, полагающихся на скринридеры.
Слишком короткая задержка появления подсказки может привести к тому, что скринридер не успеет озвучить содержимое. Tooltipster предоставляет параметры:
delay – задержка перед отображением
подсказки. Для доступности рекомендуется установить значение не меньше
200–300 мс.animationDuration – длительность
анимации появления. Если анимация слишком длинная, скринридер может
интерпретировать появление как опоздание.$('#infoButton').tooltipster({
delay: 250,
animationDuration: 200
});
Эти настройки обеспечивают баланс между визуальной эстетикой и корректной озвучкой.
Tooltipster поддерживает динамическое изменение текста подсказки
через метод content. Для скринридеров важно, чтобы после
обновления контента триггер оставался связан с новым тултипом:
$('#infoButton').tooltipster('content', 'Обновленная информация');
После обновления содержимого Tooltipster автоматически поддерживает
aria-describedby, обеспечивая озвучивание обновленной
информации.
role="tooltip" для контейнера.trigger: 'focus' для интерактивных
элементов.interactive: true.Tooltipster предоставляет гибкий набор инструментов для соблюдения стандартов доступности, но корректная интеграция требует внимательного управления атрибутами ARIA и поведением фокуса.