Атрибут tabindex тега <map>
Описание
Атрибут tabindex для тега <map> определяет порядок перехода между интерактивными элементами (областями <area>) с помощью клавиши Tab. Это полезно для улучшения доступности и управления фокусом.
<img src="control-panel.jpg" alt="Панель управления" usemap="#panel">
<map id="panel" tabindex="0">
<area shape="rect" coords="0,0,100,50" alt="Кнопка 1" href="#btn1" tabindex="1">
<area shape="rect" coords="100,0,200,50" alt="Кнопка 2" href="#btn2" tabindex="2">
</map>
Значения атрибута:
| Значение | Поведение | Рекомендация |
|---|---|---|
tabindex="0" |
Элемент включается в естественный порядок перехода | Для стандартной навигации |
tabindex="-1" |
Элемент исключается из последовательности перехода | Для программного управления фокусом |
tabindex="1+" |
Определяет явный порядок перехода (1 → 2 → 3...) | Используйте осторожно |
Динамическое управление:
<img src="menu.png" alt="Меню" usemap="#nav-map">
<map id="nav-map">
<area shape="rect" coords="0,0,100,50" alt="Главная" href="#home" tabindex="1">
<area shape="rect" coords="100,0,200,50" alt="О нас" href="#about" tabindex="2">
</map>
<button onclick="changeTabOrder()">Изменить порядок
Рекомендации по использованию:
- Используйте
tabindex="0"для естественного порядка навигации - Избегайте значений больше 0 - это может нарушить логику навигации
- Тестируйте с клавиатурной навигацией
- Убедитесь, что фокусируемые элементы имеют визуальное состояние focus
Пример с CSS для фокуса:
<style>
area:focus {
outline: 2px solid blue;
}
</style>
<img src="interface.png" alt="Интерфейс" usemap="#ui-map">
<map id="ui-map">
<area shape="rect" coords="0,0,100,50" alt="Опция 1" href="#opt1" tabindex="0">
<area shape="rect" coords="100,0,200,50" alt="Опция 2" href="#opt2" tabindex="0">
</map>
Ограничения и совместимость:
- Поддерживается всеми современными браузерами
- Поведение может отличаться в сложных интерактивных картах
- Не заменяет семантически правильную HTML-разметку
- Для сложных сценариев лучше использовать JavaScript
Примечание: Хотя атрибут tabindex можно применять к <map>, чаще его используют непосредственно для элементов <area>. Для сложных интерактивных изображений рассмотрите использование ARIA-атрибутов для улучшения доступности.