Атрибут role тега <thead>
Описание
Атрибут role в теге <thead> определяет семантическую роль группы заголовков таблицы для технологий доступности (скринридеров). Этот атрибут помогает правильно интерпретировать назначение элемента.
<table>
<thead role="rowgroup">
<tr role="row">
<th role="columnheader">Заголовок 1</th>
<th role="columnheader">Заголовок 2</th>
</tr>
</thead>
<tbody role="rowgroup">
<tr role="row">
<td role="cell">Данные 1</td>
<td role="cell">Данные 2</td>
</tr>
</tbody>
</table>
Основные роли для <thead>:
| Роль | Описание | Когда использовать |
|---|---|---|
rowgroup |
Группа строк (значение по умолчанию для <thead>) | Всегда для семантически правильных таблиц |
none |
Игнорировать семантику элемента | Когда таблица используется для макета |
Особенности работы:
- Стандартная семантика <thead> уже включает роль
rowgroup - Явное указание роли улучшает поддержку в старых браузерах
- Должен сочетаться с правильными ролями для <tr> и <th>
- Поддерживается современными скринридерами
Рекомендации:
- Используйте вместе с
aria-labelдля сложных таблиц - Сочетайте с атрибутами
aria-sortдля сортируемых заголовков - Для таблиц данных всегда указывайте
role="rowgroup" - Тестируйте с различными скринридерами
Пример с ARIA-атрибутами:
<table aria-label="Финансовый отчет">
<thead role="rowgroup">
<tr role="row">
<th role="columnheader" aria-sort="ascending">Дата</th>
<th role="columnheader">Сумма</th>
</tr>
</thead>
<tbody role="rowgroup">
<tr role="row">
<td role="cell">2025-01-15</td>
<td role="cell">1 200₽</td>
</tr>
</tbody>
</table>
Ограничения:
- Избыточное использование может ухудшить доступность
- Требует точного соответствия реальной структуре таблицы
- Разная поддержка в старых браузерах
Примечание: Для сложных таблиц:
- Используйте
aria-describedbyдля связей с описаниями - Добавляйте
aria-liveдля динамически изменяемых таблиц - Реализуйте клавиатурную навигацию