Semantic HTML trước tiên: <button>, <a>, <nav>, <main>, <label>, heading đúng cấp — chúng có sẵn role, focus, điều khiển bàn phím, và ý nghĩa cho screen reader. Quy tắc ARIA số 1: đừng dùng ARIA nếu đã có element HTML gốc làm được (một <div onClick> không bằng một <button>).
ARIA (Accessible Rich Internet Applications) bổ sung ngữ nghĩa khi buộc phải dùng element phi ngữ nghĩa hoặc widget động: role, aria-label, aria-expanded, aria-hidden, aria-live.
Điểm mấu chốt: ARIA chỉ đổi accessibility tree, không tự thêm hành vi → bạn vẫn phải tự xử lý keyboard và focus. Cơ bản khác: alt cho ảnh, <label> cho input, focus nhìn thấy được, tương phản màu đủ.