Атрибут tabindex тега <dd>
Описание
Атрибут tabindex определяет, может ли элемент <dd> получать фокус и его позицию в последовательности перехода по клавише Tab. Хотя <dd> обычно не является фокусируемым элементом, этот атрибут может сделать его частью навигации по странице.
<dl>
<dt>HTML</dt>
<dd tabindex="0">Язык гипертекстовой разметки (можно фокусировать)</dd>
<dt>CSS</dt>
<dd tabindex="-1">Каскадные таблицы стилей (фокус только программно)</dd>
<dt>JavaScript</dt>
<dd tabindex="1">Язык программирования (первый в порядке табуляции)</dd>
</dl>
Значения атрибута:
| Значение | Описание | Поведение |
|---|---|---|
0 |
Включает элемент в естественную последовательность табуляции | Фокус по Tab в порядке DOM |
-1 |
Элемент может получить фокус программно, но не через Tab | Полезно для доступных UI-компонентов |
| Положительное число | Задает явный порядок табуляции (1 → 2 → 3...) | Не рекомендуется (нарушает естественный поток) |
| (не указан) | Элемент не участвует в табуляции (по умолчанию) | Стандартное поведение для <dd> |
Практическое применение:
<dl>
<dt>Доступность</dt>
<dd tabindex="0" id="a11y-def"
style="outline: none;"
onfocus="this.style.backgroundColor='#f0f7ff'"
onblur="this.style.backgroundColor=''">
Обеспечение равного доступа к контенту для всех пользователей
</dd>
</dl>
<script>
// Программный фокус для элемента с tabindex="-1"
document.getElementById('a11y-def').focus();
</script>
Рекомендации по использованию:
- Используйте
tabindex="0"для добавления элементов в естественный поток табуляции - Применяйте
tabindex="-1"для элементов, которым фокус нужен только программно - Избегайте положительных значений - они нарушают логический порядок навигации
- Всегда добавляйте визуальные стили для фокусируемых элементов (outline или альтернативы)
- Сочетайте с ARIA-атрибутами для улучшения доступности
Пример с интерактивным списком:
<style>
dd[tabindex]:focus {
box-shadow: 0 0 0 2px #005fcc;
background-color: #f8f9fa;
}
</style>
<dl>
<dt>React</dt>
<dd tabindex="0">JavaScript-библиотека для создания пользовательских интерфейсов</dd>
<dt>Vue</dt>
<dd tabindex="0">Прогрессивный фреймворк для создания интерфейсов</dd>
<dt>Angular</dt>
<dd tabindex="0">Платформа для построения мобильных и десктопных приложений</dd>
</dl>
Важные замечания:
- Не злоупотребляйте - добавляйте в табуляцию только действительно интерактивные элементы
- Проверяйте порядок навигации с клавиатуры
- Для сложных компонентов управляйте фокусом через JavaScript
- Учитывайте, что screen readers будут объявлять фокусируемые элементы
- Не удаляйте outline без предоставления альтернативного визуального выделения
Примечание: Правильное использование tabindex значительно улучшает доступность вашего сайта для пользователей, которые полагаются на навигацию с клавиатуры. Однако помните, что семантически <dd> не является интерактивным элементом, поэтому перед добавлением его в табуляцию рассмотрите более подходящие альтернативы.