| name | html-css-accessibility |
| description | null |
Accessibility (HTML/CSS)
Category: html-css · Status: 🟢 Active
When to use
Khi xây UI cần đảm bảo a11y nền tảng cho mọi người dùng.
Steps
- Ảnh nội dung có
alt mô tả; ảnh trang trí để alt="".
- Mọi input gắn
label (qua for/id hoặc bọc trong); không dùng placeholder thay label.
- Đảm bảo focus thấy rõ; không xóa
outline nếu chưa thay bằng style khác.
- Tương phản text đạt WCAG AA (≥4.5:1 thường, ≥3:1 cho chữ lớn).
- Mọi thao tác dùng được bằng bàn phím; thứ tự tab hợp lý (
tabindex không >0).
- Dùng HTML ngữ nghĩa trước; chỉ thêm ARIA khi không thẻ gốc nào diễn đạt được.
Template
<label for="email">Email</label>
<input id="email" type="email" required />
<img src="chart.png" alt="Doanh thu tăng 20% so với quý trước" />
<img src="divider.svg" alt="" />
<button aria-expanded="false" aria-controls="menu">Menu</button>
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
Example
Good: input có label, focus rõ, contrast AA, ARIA chỉ khi cần.
Avoid: outline: none, placeholder làm label, div onclick không focus được.
Checklist