Tài liệu & Hướng dẫn chuyên sâu: Kiểm tra độ tương phản WCAG (Contrast Checker)
1. Tổng quan & Nguyên lý hoạt động
Màu chữ xám nhạt trên nền trắng trông đẹp nhưng có thể khiến người cao tuổi, người kém thị lực hoặc người dùng ngoài trời nắng không đọc được. Bộ hướng dẫn WCAG 2.x của W3C quy định tỉ lệ tương phản tối thiểu giữa chữ và nền để nội dung dễ tiếp cận. Công cụ này tính tỉ lệ tương phản theo đúng công thức độ sáng tương đối của WCAG (dùng thư viện `colord`), đánh giá đạt/không đạt AA và AAA cho chữ thường, chữ lớn và thành phần giao diện, đồng thời gợi ý màu chữ gần nhất đạt chuẩn AA.
2. Ưu thế kiến trúc & Tính năng nổi bật
Hiển thị ngay kết quả cho chữ thường (AA 4.5:1, AAA 7:1), chữ lớn (AA 3:1, AAA 4.5:1) và thành phần giao diện/đồ họa (AA 3:1) với huy hiệu xanh/đỏ dễ nhìn.
Chấp nhận hex (#RGB, #RRGGBB), rgb(), hsl() và tên màu CSS (ví dụ rebeccapurple); có cả bộ chọn màu trực quan và nút đổi chỗ chữ/nền.
Khi cặp màu chưa đạt AA, công cụ điều chỉnh độ sáng của màu chữ (giữ nguyên sắc độ) đến khi đạt 4.5:1 và cho bạn áp dụng chỉ với một cú nhấp. Phần xem trước hiển thị chữ lớn, đoạn văn và nút để bạn cảm nhận thực tế.
3. Ngưỡng tương phản theo WCAG 2.x
Tỉ lệ tối thiểu (chữ so với nền) để đạt từng mức tuân thủ:
| Loại nội dung | Mức AA | Mức AAA |
|---|---|---|
| Chữ thường (< 24px hoặc < 18.66px đậm) | 4.5 : 1 | 7 : 1 |
| Chữ lớn (≥ 24px hoặc ≥ 18.66px đậm) | 3 : 1 | 4.5 : 1 |
| Thành phần giao diện, biểu tượng, viền input | 3 : 1 | — |
| Logo và chữ trang trí thuần tuý | Không yêu cầu | Không yêu cầu |
4. Câu hỏi thường gặp (FAQ)
Giải đáp các thắc mắc phổ biến của lập trình viên khi sử dụng tiện ích Kiểm tra độ tương phản WCAG (Contrast Checker).
5. Công cụ liên quan
- Trình tạo Theme shadcn/uiChọn một màu chủ đạo, tự động sinh trọn bộ biến CSS HSL cho theme shadcn/ui (Light & Dark) với độ tương phản chuẩn WCAG.
- Chuyển đổi CSS sang TailwindDán CSS thuần, nhận ngay class Tailwind CSS tương ứng — xử lý hoàn toàn trên trình duyệt.
- Nén ảnh WebP / AVIFNén và đổi định dạng ảnh sang WebP, AVIF, JPEG hoặc PNG bằng canvas ngay trên trình duyệt — ảnh không bao giờ được tải lên.