Keyboard accessibility: focus order, tabindex và lỗi hay gặp

KP
Khoi Pro

Keyboard accessibility quyết định người dùng có thể đi khắp giao diện bằng tab hay không. Bài viết này gom các lỗi hay gặp về focus order, tabindex, skip link và modal or drawer.

Accessible UI không thể chỉ dùng được bằng chuột. Nếu người dùng không tab được tới control, không thấy focus state, hoặc bị kẹt trong modal, trang đó chưa đạt chuẩn operable của WCAG.

A11y illustration

Keyboard accessibility illustration
A keyboard flow with tab order markers and a highlighted focus ring.

Tab order • Focus ring • Skip link • No trap focus

Chỉ dùng bàn phím để test là cách nhanh nhất để bắt các lỗi accessibility “ẩn”.

Tab order là gì?

Tab order là thứ tự focus khi người dùng bấm TabShift + Tab. Thứ tự này nên phản ánh cấu trúc giao diện tự nhiên, không nên bị bẻ cong bởi tabindex dương.

Nếu muốn đọc thêm từ nguồn chính thức, MDN có trang Keyboard accessible rất rõ.

Checklist focus tối thiểu

  • Mọi control tương tác đều focus được bằng keyboard.
  • Focus style nhìn thấy rõ, không chỉ đổi màu quá nhẹ.
  • Không xóa outline nếu chưa thay bằng style khác tốt hơn.
  • Không dùng tabindex dương, trừ khi có lý do rất đặc biệt.
  • Skip link hoặc link bỏ qua nội dung lặp được đặt ở đầu trang.

Lỗi hay gặp

  • Dùng div gắn click handler nhưng không hỗ trợ Enter/Space.
  • Modal không trả focus về nút mở sau khi đóng.
  • Dropdown / drawer làm focus bị kẹt hoặc “bay mất”.
  • Element có thể focus nhưng không có hành vi tương tác rõ ràng.

Test nhanh bằng tay

  1. Đặt tay khỏi chuột.
  2. Tab từ trên xuống dưới toàn bộ flow.
  3. Quan sát focus có đi đúng thứ tự không.
  4. Kiểm tra modal, menu, drawer có trap focus hợp lý không.
  5. Thử lại với zoom lớn để xem focus có bị che bởi layout không.

Bài nên đọc tiếp

SEO checklist trước khi publish

  • Keyword chính xuất hiện trong title và intro.
  • Internal links trỏ tới các bài nền tảng frontend hiện có.
  • Code sample ngắn, đúng ngữ cảnh.
  • Media có caption rõ nghĩa, không chỉ để làm đẹp.
  • Phần kết có checklist để người đọc dễ áp dụng ngay.