看得清 · 配色对比度检查器
输入两个色值,直接得出 WCAG 2.2 的对比度比值与达标结论;支持半透明叠层先复合再计算, 也能检查暗色界面的层级台阶。全部运算在浏览器本地完成,不上传任何色值。
双色对比度
WCAG 2.2 的两个阈值:正文 4.5:1、大号文字与图形 3:1。不透明色直接用;前景带透明度时,先按背景复合成实际颜色再算。
正常字号正文示例 18px
大号文字与图形示例 14px —— 这一行用来对照“大字”阈值
结论:AAA
半透明叠层:同一张卡,位置不同结果不同
这是多数检查器不做的部分。带 alpha 的卡片压在渐变背景上时,它的实际颜色取决于底色,因此对比度不是一个固定值,而是一组。下面用三个底色采样演示。
卡片(带透明度)
背景采样(三个位置)
| 位置 | 底色 | 卡片复合后 | L* | 文字比值 |
|---|---|---|---|---|
| 起点 | #00090c | #011417 | 5.1 | 10.40:1 |
| 中段 | #021707 | #021915 | 6.9 | 10.05:1 |
| 末端 | #170300 | #0a1213 | 4.9 | 10.44:1 |
同一张卡片,三个位置的复合色并不相同,比值也随之变化。所以半透明卡片的对比度, 应该按“最差的那一个位置”来验收,而不是取一个中间值。
暗色层级台阶
暗色界面最常见的问题不是对比度不够,而是几层背景看起来一样。用 CIE L* 的差值衡量比用比值可靠:差值小于 3,人眼基本分不出层。
差值标红的那一级,说明它和上一级几乎同色。暗色界面要建立层级,把 ΔL* 拉到 3 以上; 浅色界面可用的差值更小,因为浅底的亮度变化本来就更容易被察觉。
「正文文字与背景的对比度至少 4.5:1;大号文字至少 3:1。」
为什么这件事必须用数值判断
同一组色值,在设计稿里、在设计师的高色域显示器上、在用户的户外手机屏上,呈现出的可读性差别很大。 实测经验是:亮度越低越容易骗人,暗色界面上的深灰字,做稿时看着清楚,到了亮度调低的手机上会整片糊掉。 所以对比度不该由「我觉得还行」决定——根据 WCAG 2.2 的算法,它有一个能算出确定数值的答案。
W3C 给出的阈值是两个:正文 4.5:1,大号文字与图形 3:1。实际上,这两个数不是随手定的, 换算成相对亮度后,前者比后者严格 50%。换句话说,同一组配色在正文里不合规, 放到 24px 以上的标题里可能就合规了——所以判断前先明确这段文字是什么字号, 再去看它该对哪一条。
半透明叠层:为什么算不出一个固定值
真实界面里的卡片很少是纯色。带透明度的卡片压在渐变背景上时,它的实际颜色由底层的颜色决定, 于是同一张卡在屏幕左上和右下并不是同一个颜色。比如 64% 不透明的深青卡片, 压在接近黑的起点和压在偏亮的末端,复合后的 L* 会相差两个点左右——肉眼看不出, 但对比度这个指标会跟着变。
关键在于计算顺序:浏览器合成页面时,先把卡片色与其下方底色按 alpha 参数复合,得到实际的十六进制色值, 再用它去和文字色算比值。跳过这一步直接拿卡片的名义色去算,得到的数字没有意义。 这也是很多在线工具给出的结论与实际观感对不上的原因——它们只接受不透明色。
| 使用场景 | 最低比值 | 不达标时的典型表现 |
|---|---|---|
| 正文与说明文字(18.66px 以下常规字重) | 4.5:1 | 长时间阅读眼睛发酸,低亮度屏上直接糊成一片 |
| 大号文字(24px 以上,或 18.66px 加粗) | 3:1 | 远处看不清标题,缩略图状态下失去层次 |
| 图标 / 边框 / 焦点框等非文本元素 | 3:1 | 控件边界消失,键盘操作时找不到焦点位置 |
| AAAA 级正文(增强) | 7:1 | 强光环境下仍可读,属于增强项而非常规要求 |
暗色界面的真正问题在层级,不在对比度
做深色主题时,最容易出问题的不是「字看不清」,而是三层背景看不出区别:页面底、卡片、浮层挤在 很窄的亮度区间里,导致整个界面像一块平整的板。用对比度这个指标衡量层级是失效的, 因为比值在极暗区间会被压缩——两个都很暗的颜色,比值可能只有 1.2,但亮度差其实不小。
说白了,判断层级要看 CIE L* 的绝对差值,而不是比值。经验口径是:暗色界面每一级相差 3 以上 才看得出分层,浅色界面可以更小。举个例子,底色 L* 3.4、卡片 L* 8.0,差 4.6,这一组是成立的; 若卡片只到 L* 6,差 2.6,多数人会说「这两层好像一样」。
修法通常比想象中简单:不要靠加边框去强调分层,直接把相邻层的 L* 拉开到 3 以上, 边框只在需要「切一刀」的地方用。这样即使外层换成浅色主题,层级关系也不会塌。
配色方案、字阶与间距这些不需要计算的层,整理在设计规范生成器里;这一页只负责两件可算的事——比值与亮度差。两边用的是同一套算法,结论不会互相打架。 文末的参考来源逐条标了出处,其中 W3C 的规范是这些阈值的原始依据。
参考来源
- 万维网联盟(W3C):Web Content Accessibility Guidelines (WCAG) 2.2—— 成功标准 1.4.3 规定正文对比度最低 4.5:1、大号文字 3:1;1.4.11 规定非文本元素 3:1
- MDN:CSS 颜色值与色彩空间(oklch / color() 函数说明)—— OKLCH 的明度、彩度、色相定义,本站修色建议即在该空间内只调明度
- 国际照明委员会 CIE 1976 L*a*b* 色彩空间(L* 明度定义)—— L* 的取值与计算口径,本站层级台阶采用该明度差衡量
- 本站设计规范生成器(配色与字阶部分)—— 本站自有页面,含配色方案、字阶与间距规范
本页数据与口径更新日期:2026-10-22