Библиотека Tooltipster предоставляет мощный инструмент для создания подсказок в интерфейсах, но без внимательного тестирования доступности использование всплывающих подсказок может нарушать стандарты WCAG и ухудшать опыт пользователей с ограниченными возможностями. Тестирование доступности включает проверку взаимодействия с клавиатурой, совместимости с экранными читалками и корректного управления фокусом.
Tooltipster позволяет настраивать события открытия и закрытия подсказки. Для обеспечения доступности важно, чтобы подсказки были доступны без мыши. Основные принципы:
focus для отображения подсказки.$('.tooltip').tooltipster({
trigger: 'focus'
});
blur.При тестировании необходимо убедиться, что подсказки не блокируют доступ к другим элементам и не теряют фокус при переключении между элементами формы.
Tooltipster генерирует DOM-элементы для подсказок динамически, поэтому важно, чтобы их содержимое было читаемо экранными читалками:
aria-describedby для привязки подсказки к элементу.$('.tooltip').tooltipster({
contentAsHTML: true,
functionInit: function(instance, helper){
helper.origin.setAttribute('aria-describedby', instance.content().attr('id'));
}
});
aria-hidden="true" при скрытии и удалять
атрибут при показе, чтобы читалка не озвучивала скрытое содержимое.При использовании интерактивных подсказок (например, с кнопками внутри) важно правильно управлять фокусом:
function handleFocus(instance, helper){
const firstButton = helper.tooltip.querySelector('button');
if(firstButton) firstButton.focus();
}
hide через клавишу Esc.Для проверки доступности подсказок необходимо использовать:
Для регулярного контроля доступности удобно использовать инструменты автоматизации:
import axe from 'axe-core';
axe.run(document, {}, (err, results) => {
if(results.violations.length > 0){
console.log(results.violations);
}
});
viewportAware: true.functionBefore,
functionReady и functionAfter позволяют
внедрять дополнительные проверки доступности при каждом открытии
подсказки.При внедрении Tooltipster в проект следует сочетать ручное тестирование клавиатурой и читалками с автоматизированными проверками. Особенно важно контролировать:
Такой подход обеспечивает, что подсказки будут доступны для пользователей с ограниченными возможностями, не нарушая стандартов WCAG и улучшая общий UX интерфейса.