Chọn một màu chữ và một màu nền để xem tỷ lệ tương phản, có đạt chuẩn WCAG AA và AAA cho chữ thường và chữ lớn hay không, cùng bản xem trước.
File không bao giờ rời khỏi thiết bị của bạn
Tỷ lệ tương phản
4.48:1
AA · Cỡ chữ thườngKhông đạt
AAA · Cỡ chữ thườngKhông đạt
AA · Chữ lớnĐạt
AAA · Chữ lớnKhông đạt
Con cáo nâu nhanh nhẹn nhảy qua con chó lười biếng.
Con cáo nâu nhanh nhẹn
Tỷ lệ tương phản thật ra đo điều gì
Tỷ lệ tương phản so sánh độ chói tương đối của hai màu — một giá trị độ sáng tính từ các kênh sRGB
qua công thức mô phỏng cách mắt phản ứng với ánh sáng, chứ không phải trung bình đơn giản của số
RGB. Kết quả luôn ít nhất là 1:1, khi hai màu giống hệt nhau, và nhiều nhất là 21:1, đen trên
trắng. Mọi trường hợp thực tế đều rơi vào khoảng giữa, và thứ tự hai màu không quan trọng — chữ
trên nền hay nền trên chữ đều ra cùng một tỷ lệ, đó là lý do nút Đổi chỗ ở trên dùng thoải mái mà
không sợ đổi kết quả.
Hai ngưỡng cần nhớ
WCAG định nghĩa hai mức đạt chuẩn, mỗi mức lại có ngưỡng riêng cho cỡ chữ thường và chữ lớn:
Mức
Cỡ chữ thường
Chữ lớn
AA (tối thiểu)
4.5:1
3:1
AAA (nâng cao)
7:1
4.5:1
Phần lớn các đợt kiểm tra khả năng tiếp cận chỉ soi theo AA; AAA là ngưỡng khắt khe hơn mà một số
sản phẩm cam kết cho phần nội dung chính, nhưng nó khó đạt đến mức nhiều thiết kế thực tế đạt AA
thoải mái mà vẫn trượt AAA.
Một cặp màu đứng đúng trên vạch
#777777 trên nền trắng ra 4.48:1 — vừa dưới ngưỡng 4.5:1 của AA, nên trượt với cỡ chữ thường, dù
vẫn đạt ngưỡng 3:1 cho chữ lớn. #767676 trên nền trắng, tối hơn một chữ số xám, ra 4.54:1 và đạt
AA cho cỡ chữ thường. Hai màu xám này nhìn gần như không phân biệt được cạnh nhau; chỉ có tỷ lệ mới
cho biết một cái đạt chuẩn còn cái kia thì không.
Mẹo:Một màu trượt chuẩn chỉ vì thiếu 0.02 không phải là màu nên bỏ qua "vì cũng gần đạt rồi." Giảm độ sáng trong HSL xuống vài phần trăm rồi kiểm tra lại — thường chỉ cần vậy là đủ vượt 4.5:1 mà mắt thường không thấy màu đổi khác đi.
Thế nào được tính là "chữ lớn"
Ngưỡng 3:1 cho chữ lớn áp dụng cho chữ 18pt thường (24px trên đa số trình duyệt) hoặc chữ 14pt in
đậm (khoảng 18,66px) trở lên — một định nghĩa dựa trên cỡ chữ point và độ đậm do chuẩn quy định,
không phải cảm nhận to nhỏ trên màn hình của bạn. #1e90ff trên nền trắng là 3.24:1: nó trượt
ngưỡng 4.5:1 của cỡ chữ thường nhưng đạt 3:1, nên màu xanh đó là lựa chọn hợp lệ cho một tiêu đề
lớn và là lựa chọn tệ cho một đoạn văn bản cùng màu.
Mẹo:Chữ nhỏ in đậm không tự động được tính là "chữ lớn". Nó phải đạt đồng thời cả hai điều kiện: 14pt (khoảng 18,66px) trở lên và in đậm. Một nhãn chữ đậm cỡ 13px vẫn phải đạt ngưỡng 4.5:1 của cỡ chữ thường.
Vì sao tỷ lệ không phải là cảm nhận của mắt
Độ chói được tính qua một đường cong gamma, không phải đường thẳng, nên tỷ lệ bị nén ở vùng sáng và
giãn ra ở vùng tối. #ffd700 — một màu vàng kim rực — trông nổi bật và bắt mắt trên trang, nhưng
trên nền trắng chỉ đo được 1.40:1, vì màu vàng vốn có độ chói gần với trắng bất kể độ rực nhìn bằng
mắt thế nào. So với #008000, một xanh lá bình thường, lại đạt 5.14:1 trên nền trắng — vượt xa AA
— dù đọc là một màu trầm hơn, "ồn ào" ít hơn. Độ bão hòa và độ rực không phải thứ tỷ lệ này đo;
khoảng cách độ chói mới là thứ nó đo, và hai đại lượng đó có thể chỉ về hai hướng khác nhau.
Màu chữ
Trên nền trắng
Tỷ lệ
AA cỡ chữ thường
AA chữ lớn
#000000
trắng
21.00:1
Đạt
Đạt
#595959
trắng
7.00:1
Đạt
Đạt
#767676
trắng
4.54:1
Đạt
Đạt
#777777
trắng
4.48:1
Không đạt
Đạt
#1e90ff
trắng
3.24:1
Không đạt
Đạt
#ffd700
trắng
1.40:1
Không đạt
Không đạt
Câu hỏi thường gặp
Tỷ lệ tương phản thật ra đo cái gì?
Đo độ lệch giữa độ chói tương đối (relative luminance) của hai màu — một giá trị độ sáng tính từ các kênh sRGB qua một công thức mô phỏng cách mắt người phản ứng với ánh sáng, không phải trung bình cộng đơn giản của số RGB. Kết quả luôn từ 1:1 (hai màu giống hệt, không có tương phản) đến 21:1 (đen tuyệt đối trên trắng tuyệt đối, mức tối đa màn hình có thể cho).
Ngưỡng 4.5:1 và 3:1 khác nhau ở đâu?
4.5:1 là mức tối thiểu của WCAG AA cho cỡ chữ thường; 3:1 là mức tối thiểu AA cho chữ lớn, vốn dễ đọc hơn ở độ tương phản thấp hơn vì nét chữ to hơn thì dày hơn. AAA nâng cả hai ngưỡng lên: 7:1 cho cỡ chữ thường và 4.5:1 cho chữ lớn.
Chữ lớn theo chuẩn WCAG được định nghĩa cụ thể ra sao?
Cỡ chữ 18pt thường (khoảng 24px trên đa số trình duyệt) hoặc 14pt in đậm (khoảng 18,66px) trở lên. Nhỏ hơn mức đó, dù trông có to trên màn hình phân giải cao đến đâu, vẫn bị soi theo ngưỡng cỡ chữ thường khắt khe hơn — định nghĩa này dựa trên cỡ chữ point và độ đậm, không phải cảm giác to nhỏ khi hiển thị.
Vì sao #777777 trên nền trắng không đạt còn #767676 lại đạt?
Vì hai màu này nằm ở hai phía của ngưỡng 4.5:1, chỉ cách nhau một chút — #777777 trên trắng là 4.48:1, còn #767676 trên trắng là 4.54:1. Chỉ một chữ số xám khác đi đã đủ đẩy tỷ lệ qua vạch, và đó chính là lý do cần công cụ đo thay vì nhìn mắt thường hai màu gần như giống hệt nhau.
Một cặp màu đạt AA thoải mái thì có chắc dễ đọc không?
Thường là có, nhưng tỷ lệ chỉ là ngưỡng sàn, không phải điểm đánh giá độ dễ đọc toàn diện. Nó không nói gì về độ đậm chữ, khoảng cách chữ, độ dài dòng hay tông màu cụ thể — hai cặp cùng tỷ lệ vẫn có thể đọc khác nhau, nên xem việc đạt chuẩn là mức tối thiểu, không phải bằng chứng chữ đã dễ đọc.
Tỷ lệ cao hơn có luôn nghĩa là mắt thấy tương phản nhiều hơn theo đúng tỷ lệ đó không?
Không hẳn. Độ chói tương đối được tính qua một hàm phi tuyến, nên đi từ tỷ lệ 4:1 lên 8:1 không có nghĩa là mắt thấy khác biệt gấp đôi — thang đo bị nén ở vùng sáng và giãn ở vùng tối, một phần lý do vì sao hai cặp màu đọc thoải mái như nhau vẫn có thể có tỷ lệ chênh lệch rõ rệt.
Nếu màu nền có độ trong suốt thì tính sao?
Tỷ lệ được tính như thể màu đó đục hoàn toàn, vì WCAG định nghĩa tương phản dựa trên thứ thật sự hiển thị trên màn hình — mà điều đó phụ thuộc vào cái gì nằm phía sau lớp trong suốt. Hãy làm phẳng màu đó với nền thật của nó trước khi kiểm tra nếu bạn cần một con số chính xác.