Атрибут aria-* тега <th>
Описание
Атрибуты aria-* в теге <th> предоставляют дополнительную семантическую информацию для вспомогательных технологий (скринридеров) о заголовках таблицы. Они улучшают доступность сложных табличных структур.
<table>
<tr>
<th aria-sort="ascending" aria-label="Название продукта">Продукт</th>
<th aria-describedby="price-desc">Цена</th>
</tr>
<tr>
<td>Ноутбук</td>
<td>45 000₽</td>
</tr>
</table>
<div id="price-desc" hidden>Цены указаны в рублях без учета налогов</div>
Основные ARIA-атрибуты для <th>:
| Атрибут | Описание | Пример значения |
|---|---|---|
aria-sort |
Указывает направление сортировки | "ascending", "descending", "none", "other" |
aria-label |
Альтернативный текст для заголовка | "Сортировка по дате" |
aria-describedby |
Связывает с дополнительным описанием | ID элемента с описанием |
aria-colindex |
Позиция столбца в сложных таблицах | "1", "2", "3" |
aria-selected |
Указывает выбранный заголовок | "true", "false" |
Особенности работы:
- Не изменяют визуальное отображение
- Работают только с вспомогательными технологиями
- Должны отражать реальное состояние элемента
- Лучше работают в сочетании с нативными HTML-атрибутами
Рекомендации:
- Используйте
aria-sortдля сортируемых таблиц - Добавляйте
aria-labelдля иконок сортировки - Применяйте
aria-describedbyдля сложных заголовков - Тестируйте с реальными скринридерами (NVDA, VoiceOver)
Пример сложной таблицы:
<table aria-labelledby="table-title">
<caption id="table-title">Финансовый отчет Q2 2023</caption>
<tr>
<th aria-sort="none"
aria-colindex="1"
id="col1">Месяц</th>
<th aria-sort="ascending"
aria-colindex="2"
id="col2"
aria-describedby="currency-desc">Доход</th>
</tr>
<tr aria-rowindex="1">
<td headers="col1">Апрель</td>
<td headers="col2">1,200,000₽</td>
</tr>
</table>
<div id="currency-desc" hidden>Все суммы в рублях</div>
Ограничения:
- Избыточное использование может ухудшить доступность
- Требует актуального состояния (динамическое обновление)
- Разная поддержка в старых браузерах
- Не заменяет правильную HTML-структуру
Примечание: Для динамических таблиц:
- Обновляйте ARIA-атрибуты при изменении состояния
- Используйте
aria-liveдля важных изменений - Добавляйте клавиатурную навигацию