WCAG 颜色对比度检查

一次性检查两个颜色对 WCAG 2.1 所有档位的达标情况,并用真实文字实时预览,全部在浏览器本地算。

大号标题文字正常字号的正文,这才是更难达标的那一种。
5.35:1满分是 21:1
  • 通过AA 级,正文4.5:1
  • 通过AA 级,大字(18pt,或 14pt 加粗)3:1
  • 未通过AAA 级,正文7:1
  • 通过AAA 级,大字4.5:1
  • 通过图标、描边、表单边框3:1

对比度检查 怎么用

  1. 1填入文字颜色和背景颜色。十六进制、rgb()、hsl() 都可以。
  2. 2读出对比度数值,再看下面列表里哪些档位通过了。
  3. 3用预览区对着两个字号的真实文字复核一下结果。

对比度检查到底在量什么

相对亮度,不是颜色在你眼里显出来的明亮程度。

WCAG 用一个加权公式把每个颜色折算成一个亮度值,其中绿色的权重远高于蓝色,因为人眼对绿色敏感得 多。对比度则是"较亮的亮度加 0.05"除以"较暗的亮度加 0.05",取值落在完全相同的 1:1 和黑底白字的 21:1 之间。

这就是为什么靠眼睛估不靠谱。HSL 明度相同的两个颜色,相对亮度可能差三倍;而高饱和的蓝色看起来 比它实测的要亮得多。纯蓝配白底是 8.6:1,纯黄配白底是 1.07:1、基本等于看不见——两者都是满饱和的 原色。

wcag 对比度的几个档位,以及该在意哪一个

4.5:1,正文 AA。 真正要紧的那个。大多数无障碍法规引用的是 WCAG AA,而任何页面上大部分文字都 是正文,所以把它当地板而不是目标。

3:1,大字 AA。 适用于 18pt(约 24px)以上,或 14pt 加粗(约 18.66px)以上。字形越大笔画越粗, 所以门槛更低。

7:1 和 4.5:1,AAA。 需要长时间阅读的内容值得往这儿做,通常不是法律要求。

3:1,非文字。 出自 WCAG 1.4.11,覆盖任何控件的可视边界:输入框描边、聚焦环、开关状态、承载 含义的图标。这一档被漏掉的频率极高,因为设计师查了文字,却忘了 1.5:1 的输入框边框对很多人来说 根本不存在。

值得点名的那个陷阱

大字过了,正文没过。这事之所以常发生,是因为设计师查了标题,看到通过,就过去了。标题从来不是问题: 它又大又粗,很容易过。真正需要有人盯着看两分钟的,是那段灰了一点点的 15px 段落,而它才是没过的 那个。

先查正文颜色。正文过了,标题几乎必然也过。

预览区为什么存在

数字是答案,但一个比值并不能告诉你结果看起来对不对。上面的预览用你那两个颜色渲染两个字号的真实 文字,让你亲眼看到这个比值在描述的东西。

一切都在这个标签页里、从你输入的两个值算出来。没有文件、没有上传、没有请求。

常见问题

为什么正文要求 4.5:1,大字只要 3:1?
因为字形越大笔画越粗,同样的对比度就更容易读。WCAG 把"大字"定义为 18pt(24px)以上,或 14pt(18.66px)以上的加粗。低于这个就按正文标准。
我看着挺清楚的,为什么不达标?
因为判据是相对亮度,不是颜色在你眼里显得多亮。HSL 明度相同的两个颜色,相对亮度可能差好几倍;蓝色尤其看起来比它测出来的要亮得多。你自己的眼睛加你自己那块校准过的屏,并不是这套标准要保护的那种情况。
图标和描边也管吗?
管。最后一行是 WCAG 1.4.11 的 3:1 档,适用于控件的可视边界:输入框的描边、开关的状态、承载含义的图标。文字的那些比值不适用于它们。
该对着哪一档做?
正文的 AA 是大多数法规引用的那一档,应该当成地板。长文阅读值得往 AAA 做。只过了"大字 AA"是个常见陷阱:那意味着你的标题没问题,而你的段落有问题。

更多免费工具