Правило первой линии
Сначала нативный HTML, потом ARIA. ARIA не добавляет поведения — только семантику для AT.
Когда ARIA уместна
- Кастомный виджет без нативного аналога (сложный tabs/combobox) — и вы реализуете клавиатуру по APG.
- Дополнить связи:
aria-labelledby, aria-describedby, aria-controls.
- Live-обновления:
aria-live / role="status".
- Поправить роль, когда визуальный UI не совпадает с нативным элементом (осторожно).
Когда не стоит
Вешать role="button" на <div> вместо <button>; дублировать нативную семантику; «лечить» плохую вёрстку тоннами aria-*.
Итог
ARIA — усилитель семантики при правильном JS/HTML, не замена кнопкам, полям и заголовкам.