Tooltipster поддерживает расширенные возможности доступности за счёт интеграции ARIA-атрибутов. Использование ARIA позволяет сделать всплывающие подсказки доступными для пользователей с ограниченными возможностями, включая тех, кто использует экранные читалки.
aria-describedby Этот атрибут
применяется к элементу, для которого создаётся тултип. Он указывает на
идентификатор элемента с подсказкой. Tooltipster автоматически назначает
aria-describedby элементу-триггеру и присваивает уникальный
id подсказке.
Пример:
$('.tooltip').tooltipster({
content: 'Это подсказка',
theme: 'tooltipster-light'
});
После инициализации HTML будет выглядеть примерно так:
<button class="tooltip" aria-describedby="tooltipster-content-1">Наведите на меня</button>
<div class="tooltipster-box" id="tooltipster-content-1">Это подсказка</div>
Особенности:
aria-describedby обновляется динамически при изменении
контента тултипа.role="tooltip" Каждая подсказка
автоматически получает ARIA-роль tooltip. Это сообщает
скринридеру, что данный элемент является всплывающей подсказкой и связан
с другим элементом на странице.
<div class="tooltipster-box" role="tooltip" id="tooltipster-content-1">
Это подсказка
</div>
Преимущества использования
role="tooltip:
Tooltipster позволяет управлять ARIA-атрибутами через параметры конфигурации:
$('.tooltip').tooltipster({
content: 'Подсказка с ARIA',
trigger: 'hover',
interactive: true,
functionInit: function(instance, helper) {
// Можно изменить ARIA-атрибуты вручную
$(helper.origin).attr('aria-describedby', 'custom-tooltip-id');
}
});
Параметры, влияющие на доступность:
interactive – если установлено в
true, скринридеры будут учитывать, что пользователь может
взаимодействовать с тултипом.functionReady – вызывается после
открытия подсказки, позволяет динамически обновлять ARIA-ссылки.contentAsHTML – позволяет использовать
разметку внутри подсказки без нарушения ARIA-связей.Для тултипов с динамическим контентом важно поддерживать актуальность ARIA-ссылок. Tooltipster предоставляет методы для обновления содержимого:
var instance = $('.tooltip').tooltipster().tooltipster('instance');
instance.content('Новый контент подсказки');
При обновлении контента aria-describedby сохраняет связь
с новым содержимым, а скринридеры автоматически получают актуальную
информацию.
id для каждого тултипа, чтобы
исключить конфликт ссылок.interactive: true, чтобы экранные читалки корректно
воспринимали содержимое.content или
functionReady.$('.tooltip').tooltipster({
theme: 'tooltipster-light',
interactive: true,
trigger: 'hover',
content: $('<span>Доступная подсказка с ARIA</span>'),
functionReady: function(instance, helper){
$(helper.tooltip).attr('role', 'tooltip');
$(helper.origin).attr('aria-describedby', $(helper.tooltip).attr('id'));
}
});
Такой подход обеспечивает:
Tooltipster позволяет создать максимально доступный интерфейс без сложных дополнительных скриптов, делая ARIA-атрибуты неотъемлемой частью любой реализации всплывающих подсказок.