颜色对比度检查器
输入前景色和背景色,检查器会返回 WCAG 对比度(1:1 到 21:1),并根据 WCAG 2.1 AA 和 AAA 阈值,对普通文本、大文本和非文本元素给出通过/未通过判定。其底层使用 WCAG 亮度公式,计算虽然简单,但对无障碍至关重要。通过微调明度来修复未通过项,直到对比度超过你需要的阈值。
对比度是如何计算的
-
1
输入两种颜色
两种颜色均使用 3 位或 6 位 HEX。每种颜色都配有取色器。
-
2
分别计算相对亮度
L = 0.2126·R + 0.7152·G + 0.0722·B,其中每个通道都从 sRGB 线性化。
-
3
对比度
(L_较亮 + 0.05) / (L_较暗 + 0.05)。比值介于 1:1 和 21:1 之间。
-
4
通过/未通过徽章
AA(普通文本 4.5:1,大文本/UI 3:1),AAA(普通文本 7:1,大文本 4.5:1)。大文本 = ≥18pt 常规字重或 ≥14pt 粗体。
WCAG 对比度阈值
| 内容类型 | AA 阈值 | AAA 阈值 |
|---|---|---|
| 普通文本 | 4.5:1 | 7:1 |
| 大文本(≥18pt 常规或 ≥14pt 粗体) | 3:1 | 4.5:1 |
| 非文本(UI 组件、焦点环) | 3:1 | - |
| 偶然文本(装饰性、禁用、徽标) | 豁免 | 豁免 |
“大文本”指 18pt+ 常规字重(CSS 中约 24px)或 14pt+ 粗体(约 19px 粗体)。
对比度示例
| 颜色对 | 对比度 | AA 普通 | AA 大 | AAA 普通 |
|---|---|---|---|---|
| 白底黑字 | 21:1 | 通过 | 通过 | 通过 |
| 白底 #333 | 12.6:1 | 通过 | 通过 | 通过 |
| 白底 #666 | 5.7:1 | 通过 | 通过 | 未通过 |
| 白底 #888 | 3.5:1 | 未通过 | 通过 | 未通过 |
| 白底 #AAA | 2.3:1 | 未通过 | 未通过 | 未通过 |
| #1976D2 底白字(Material blue 700) | 4.6:1 | 未通过 | 通过 | 未通过 |
| #2196F3 底白字(Material blue 500) | 3.1:1 | 未通过(普通) | 通过 | 未通过 |
常见的无障碍陷阱
- 白底灰色正文,颜色为 #999 或更浅时无法通过 AA。白底正文请使用 #767676 或更深的颜色。
- 灰底蓝色链接:由于两种颜色都处于中等亮度,常常无法通过。
- 品牌色上的白色文字:较深色调(≥ 4.5:1)可通过,中等色调的品牌色则无法通过。请使用更大的文字或更深的品牌色。
- 占位符文本为了“提示“通常对比度较低,但如果用户需要阅读占位符,WCAG 依然适用。
- 禁用状态:WCAG 2.2 要求禁用文本与控件背景的对比度达到 3:1,除非该状态本身已通过其他方式传达。
WCAG 没有告诉你的
- WCAG 2.x 使用的是 1988 年的公式。现代的 APCA(高级感知对比度算法)能更好地反映实际可读性,但尚非法定基准。请将数值略高于 WCAG 最低要求,以兼顾 APCA 和边界情况。
- 对比度并非无障碍的唯一维度。如果字体只有 9px、行距过窄,或者用红绿色传达含义,21:1 的对比度也毫无意义。
改善未通过的颜色对
- 深色背景上用更亮的前景,浅色背景上用更暗的前景。
- 增大字号或字重,大文本的阈值更低。
- 在图片上的文字后面添加背景(叠加层、渐变)。
- 绝不要通过淡化到仍然无法通过的灰色来修复对比度,请一直调整到达到 AA。
每次调整后都要重新检查,工具会实时重新计算对比度,明度的一点小变化就可能很快改变判定结果。
常见问题
AA 是大多数司法管辖区的法定基准(美国 Section 508、欧盟 EN 301 549),也是大多数审计工具标记的标准。AAA 是进阶目标,仅在特定无障碍场景(面向低视力用户的教育内容)中强制要求。以 AA 为目标,把 AAA 当作加分项。
不支持,它只接受不透明的 HEX 颜色,3 位或 6 位。请先将 RGB 或 HSL 转换为 HEX,或使用取色器,它输出的永远是 HEX。
WCAG 2.1 SC 1.4.11 要求非文本 UI 组件和图形对象的对比度达到 3:1。这适用于焦点指示器、输入框边框、纯图标按钮以及各种状态(悬停、激活)。默认状态和焦点状态都要检查。
请分别测试每种模式,浅色主题和深色主题的对比度是相互独立的。许多在浅色模式下通过的配色,在相同相对明度的深色模式下会失败。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
BBCode 转 HTML 转换器
将 BBCode(论坛标记)转换为干净的 HTML。支持格式标签、列表、引用、代码、图片和链接。
布尔代数化简器
计算布尔表达式在每种输入组合下的值,并显示完整的真值表。支持最多五个变量和 &、|、!、^ 运算符。