Quy tắc số 1 của ARIA: nếu có phần tử HTML gốc mang sẵn ngữ nghĩa và hành vi bạn cần, hãy dùng phần tử đó thay vì gán role ARIA.
ARIA chỉ đổi cách phần tử được mô tả trong accessibility tree — nó không thêm hành vi nào: không focus, không phím tắt, không xử lý sự kiện.
<!-- Thừa: nav đã có role navigation, button đã có role button -->
<nav role="navigation"><button role="button">Menu</button></nav>
<!-- Đủ -->
<nav><button>Menu</button></nav>Không nên dùng ARIA khi:
- Chỉ để "cho chắc" trên phần tử gốc (<ul role="list">, <input type="checkbox" role="checkbox">) — thừa, và nếu gõ sai role thì làm hỏng ngữ nghĩa vốn đúng.
- Gán role mà không viết kèm phần bàn phím — role="button" trên div mà không có tabindex và xử lý Enter/Space khiến screen reader hứa "đây là nút" nhưng người dùng không bấm được. Đây là ý của câu "no ARIA is better than bad ARIA".
- Đặt aria-hidden="true" lên phần tử đang chứa nội dung focus được — người dùng bàn phím vẫn tab vào được nhưng screen reader không đọc gì.
ARIA hợp lý khi HTML không có sẵn: tab, combobox, live region, aria-expanded, aria-current.