Атрибут tabindex тега <tbody>
Описание
Атрибут tabindex для элемента <tbody> позволяет управлять порядком фокусировки группы строк таблицы при навигации с клавиатуры (Tab/Shift+Tab). В обычных условиях элементы таблицы не получают фокус.
<table>
<tbody tabindex="0">
<tr>
<td>Фокус на группе строк</td>
<td>Нажмите Tab</td>
</tr>
</tbody>
</table>
Значения атрибута:
| Значение | Описание | Когда использовать |
|---|---|---|
-1 |
Позволяет фокусироваться программно, но исключает из последовательной навигации | Для динамических таблиц с управлением через JS |
0 |
Включает в естественный порядок навигации | Для интерактивных табличных блоков |
положительное число |
Определяет явный порядок перехода (1 → 2 → 3) | Не рекомендуется (нарушает естественный поток) |
Особенности работы:
- По умолчанию элементы таблицы не фокусируемы
- Фокус применяется ко всей группе строк (
<tbody>) - Можно стилизовать состояние
:focusчерез CSS - Поддерживается современными браузерами
Пример с CSS-стилизацией:
<style>
tbody:focus {
outline: 2px solid #0066cc;
box-shadow: 0 0 5px rgba(0,102,204,0.3);
}
</style>
<table>
<tbody tabindex="0">
<tr><td>Фокусируемая группа строк</td></tr>
</tbody>
</table>
Рекомендации:
- Используйте
tabindex="0"для интерактивных табличных блоков - Избегайте положительных значений (нарушают логику навигации)
- Всегда добавляйте визуальные стили для состояния фокуса
- Тестируйте навигацию с клавиатуры
Ограничения:
- Не делает фокусируемыми отдельные ячейки
- Может нарушить логику навигации при неправильном использовании
- Требует дополнительных ARIA-атрибутов для полной доступности
Примечание: Для сложных интерактивных таблиц лучше использовать специализированные библиотеки с полной поддержкой доступности.