颜色对比度问题经常不是在设计稿里爆出来的,而是在真正使用时爆出来:投影仪一亮,浅灰字消失;暗黑模式一开, 品牌蓝压在深色背景上变得发糊;按钮边框在低亮度屏幕上看不见;客服把页面截图发给客户,客户只回一句“这行字看不清”。 这时候再争论“我觉得挺清楚”没有意义。更稳的做法是把前景色、背景色、字号场景和 WCAG 阈值放在一起检查, 用可复查的数值替代纯主观判断,再把设计取舍写进交付记录。

4.5:1
WCAG 正文 AA 常用阈值
3:1
大字号与非文本组件常用阈值
7:1
AAA 正文更高阈值

为什么“看着还行”不够用

颜色对比度最麻烦的一点,是它会被环境放大。你在高亮度 Mac 屏幕上看到的灰色说明文字,到了 Windows 办公屏、低亮度手机、 户外阳光、投影仪、远程会议共享画面里,可能完全是另一回事。更不用说不同用户本来就存在视力差异、色觉差异、疲劳程度和阅读距离差异。 所以我不太赞成把对比度检查当成“无障碍团队才关心的细节”。它更像最基本的阅读质量检查。

真正影响业务的往往不是正文大标题,而是那些被设计成“安静一点”的内容:价格后的补充说明、表单错误提示、禁用态按钮、侧边栏计数、 图表图例、订单状态、免责声明、优惠条件、页脚链接。它们看起来不重要,但用户做决定时经常需要它们。可读性差,轻则让用户多问一句, 重则让人误解状态、漏看限制、点错操作。

  • 设计评审需要知道某组颜色能不能支撑正文、按钮和图标,而不是只看主视觉;
  • 前端还原需要检查 hover、disabled、focus、dark mode 等状态,不只检查默认态;
  • 上线验收需要留下具体数值和截图,避免后来只能翻聊天记录争论;
  • 品牌落地需要知道主色在哪些背景上可用,哪些场景必须换深浅或加描边。
对比度不是审美裁判
WCAG 对比度数值只能回答“这两个颜色放在一起是否达到某个可读性阈值”。它不能告诉你这个配色好不好看,也不能替代真实用户测试、字号检查和内容层级判断。

先把几个 WCAG 阈值说清楚

颜色对比度检测器会按相对亮度公式计算前景色与背景色的比值,并给出 AA、AAA、正文、大字号和界面组件判定。 对日常网页和产品界面来说,最常用的是三组数:普通正文 AA 至少 4.5:1;大字号 AA 至少 3:1;AAA 正文至少 7:1。 图标、输入框边框、按钮轮廓等非文本界面组件,通常参考 3:1 的要求。

这里有一个容易忽略的点:大字号不是“设计师觉得比较大”。WCAG 把 18pt 及以上的常规字,或 14pt 及以上的加粗字,视为大字号。 换算到网页里,大致可以理解为 24px 常规字,或约 18.66px 加粗字。低于这个范围的正文、说明、表格文字、菜单项,最好按 4.5:1 检查。

能力常见阈值适合怎么用
普通正文 AA至少 4.5:1正文、表单标签、表格单元格、提示文案
大字号 AA至少 3:1大标题、加粗大按钮文案、海报式大字
普通正文 AAA至少 7:1长文阅读、政务教育医疗等高可读性页面
大字号 AAA至少 4.5:1希望更稳的标题和强调文字
图形与界面组件至少 3:1图标、输入框边框、状态指示、焦点轮廓
不要把阈值写成法律结论
不同地区、行业和合同可能有不同的无障碍要求。工具能帮助你按 WCAG 规则检查颜色对比度并生成记录,但不能替代法律意见、第三方认证或完整无障碍审计。

一套从设计稿到上线的检查流程

  1. 1
    先列出真实颜色对
    不要只测品牌主色。把正文/背景、次要文字/背景、按钮文字/按钮底色、链接/背景、错误提示/背景、图标/背景、边框/背景都列出来。
  2. 2
    在工具里输入前景色和背景色
    打开 颜色对比度检测器,填入 HEX、RGB 或常见颜色值。页面会立即显示对比度、AA / AAA 判定和可读性预览。
  3. 3
    把字号场景一起记录
    同一个颜色对用于 32px 标题和 14px 注释,要求不一样。检查结果旁边要写清楚它用于正文、大字号、按钮、图标还是边框。
  4. 4
    批量检测调色板
    把主色、辅助色、灰阶和状态色逐行贴进调色板区域,统一检查它们在浅色底或深色底上的表现。不要等开发逐个页面发现问题。
  5. 5
    未达标时先找最小改动
    工具会给出保持色相与饱和度、沿明度方向调整的建议色。先看最小改动是否能保住品牌感,再决定是否换背景、加粗字号或改变组件结构。
  6. 6
    交付前导出报告
    正式评审、客户验收或团队复盘时,Pro PDF 报告能把颜色样本、数值、判定结果、建议色和检测日期放在同一份文件里,后续更容易追溯。

最该检查的不是主按钮,而是边缘状态

很多页面的主按钮其实问题不大,因为它通常用深色底加白字,天然容易达标。真正危险的是“弱化信息”:灰色说明、占位符、禁用按钮、二级标签、 表格辅助列、卡片角标、浅色状态徽章。这些地方一旦对比度不足,用户不是觉得页面更高级,而是觉得信息在躲着自己。

表单:占位符不能替代标签

很多表单只把字段名放在 placeholder 里,颜色又设得很淡。用户一输入,提示就消失;对比度不够时,没输入前也看不清。 更稳的方式是保留独立 label,placeholder 只做示例,错误提示用足够清楚的颜色和文字说明,不要只靠红色边框。

数据表:灰色不是层级的唯一手段

表格里的辅助信息喜欢用浅灰色:单位、更新时间、来源、备注、空值说明。这里如果只靠降低明度来表达层级,很容易掉到 4.5:1 以下。 可以改用字号、字重、间距和列位置做层级,把颜色留在可读范围内。

暗黑模式:浅色主题的主色不一定能直接搬过去

很多品牌色在白底上看起来很好,到了深色背景上反而发虚,尤其是中等亮度的蓝、紫、绿。暗黑模式不是把背景改黑、文字改白就完事, 需要重新检查链接、按钮、分割线、hover、focus、图标和状态色。

图表和图标:非文本也要能被看见

图表线条、图例色块、趋势箭头、输入框边框、开关轨道、焦点轮廓,虽然不是文字,但它们承担信息和交互含义。只要用户需要靠它理解状态或完成操作, 就应该检查它和相邻背景之间是否足够清楚。

实操案例

把一个 SaaS 设置页做成可复查的验收记录

设计稿里设置页看起来很干净,但客户反馈“灰字太淡、暗色模式按钮边框看不到”。团队不想靠截图来回争论。
  1. 1.先把页面分成正文、辅助说明、输入框、主按钮、危险操作、禁用态、暗色模式链接 7 类颜色对。
  2. 2.在颜色对比度检测器里逐一输入前景色和背景色,记录普通正文 AA、大字号 AA、界面组件 3:1 是否通过。
  3. 3.把品牌 teal、错误红、警告黄、信息蓝和灰阶贴进调色板区域,分别检测白底和深色底。
  4. 4.对未达标的浅灰说明文字,优先提高文字明度差;对暗色按钮边框,改成 3:1 以上的描边而不是继续加阴影。
  5. 5.Pro 导出 PDF 报告,随设计稿和前端 PR 一起放进验收记录,标明哪些颜色通过、哪些是有意保留的设计取舍。
得到什么:团队得到的不是一句“已优化颜色”,而是一份能复查的颜色验收记录:颜色值、场景、阈值、结论和修改理由都在里面。

免费检查和 Pro 报告怎么分工

免费版已经能解决大多数即时判断:输入前景色和背景色,查看对比度,复制结论,下载 TXT,生成分享链接;也可以把最多 30 个调色板颜色放进来, 快速看哪些颜色在当前背景上达到 AA 正文。它适合个人自查、开发临时排错、设计评审前快速扫一轮。

Pro 的价值在于“留档”。只要这次检查要交给客户、产品、设计、前端、测试或管理者看,纯复制一段文本就容易丢上下文。 PDF 报告会把当前配色样本、对比度数值、5 项 WCAG 判定、建议色、调色板批量检测结果和检测日期放在同一份 A4 文件里。 它不是为了显得正式,而是为了让后来的人知道:当时到底测了什么,依据什么阈值,结论是什么。

能力免费版Pro
前景/背景对比度计算支持支持
AA / AAA 与界面组件判定5 项即时展示5 项进入报告
未达标建议色一键应用随报告留档
调色板批量检测最多 30 个颜色最多 30 个颜色写入 PDF
复制结论、下载 TXT、分享链接支持支持
A4 PDF 无障碍报告可打印、可归档、可发给客户

升级 Pro,把颜色对比度检查导出成 A4 报告

PRO

适合设计评审、前端验收、客户交付和无障碍复盘:把配色样本、对比度、WCAG 判定、建议色和调色板批量结果留在同一份 PDF。

  • 导出 1 份 A4 PDF 报告用于评审留档
  • 包含 5 项 WCAG 判定与对比度数值
  • 最多 30 个调色板颜色进入批量检测表
  • 报告标注建议色和检测日期,方便复查

品牌色不达标时,先别急着换色

品牌色很少是为了所有阅读场景设计的。一个漂亮的主色,可能适合 Logo、插画和大面积背景,却不适合直接作为 14px 正文链接; 一个轻盈的浅绿,可能适合成功状态背景,却不适合作为按钮文字。发现不达标时,不要第一反应就是“品牌色不行”。更成熟的做法是先判断这个颜色承担什么角色。

  • 用于文字:优先调整明度,让它在目标背景上达到正文 AA;
  • 用于背景:可以保留品牌色背景,但文字换成更深或更浅的中性色;
  • 用于图标:如果图标承担状态含义,至少让它和背景、相邻颜色拉开;
  • 用于装饰:装饰色可以更自由,但不要让用户误以为它是可点击或状态提示;
  • 用于暗黑模式:单独建立 dark token,不要机械反转 light token。
把颜色分成 token,而不是到处复制 HEX
真实项目里更建议维护 text-primary、text-muted、border-subtle、action-primary、danger-text、success-bg 这类语义 token。这样一次对比度修正可以同步到多个页面,不用逐个组件找颜色。

分享链接适合讨论,PDF 适合定稿

工具支持生成带参数的分享链接,适合在评审中快速让同事打开同一组前景色和背景色。这个链接回答的是“你现在看到的这组颜色是什么”。 但如果要作为交付物,分享链接还不够,因为它不天然包含检测日期、批量结果、建议色和当时的结论。定稿阶段最好导出 PDF,把报告附在 PR、验收单或客户邮件里。

我的习惯是:讨论中发分享链接,方便大家改色;定稿时导出 PDF,避免改来改去之后没人知道最后通过的是哪一版。 如果后续还要检查页面 SEO、分享卡或响应头,可以接着用 网页 SEO 分析做页面级检查; 如果只是需要把颜色值转换成 RGB、HSL 或 CSS 变量,可以用 颜色格式转换整理交付格式。

几个常见误区,最好一开始就避开

误区一:只测白底,不测深色底

现在很多产品都有暗黑模式、深色侧边栏、图片蒙层和品牌色横幅。只测白底等于只测了一半。尤其是 hover、active、selected、disabled 这些状态, 往往会因为颜色变浅或透明度变化而掉线。

误区二:把 alpha 颜色直接当最终颜色测

对比度基于最终显示出来的颜色。半透明黑、半透明白、毛玻璃背景、图片遮罩都需要先和实际背景混合,再拿最终颜色检查。 工具会提示 alpha 不应直接作为最终结论使用,这一点在设计稿和代码还原之间尤其容易出错。

误区三:认为 AAA 才算“合格”

AAA 更严格,但不是所有界面都必须追求 AAA。长文阅读、教育、政务、医疗、老年用户占比高的页面,可以更接近 AAA; 高密度工作台、品牌视觉页和临时活动页,则需要在信息层级、品牌表达和可读性之间取舍。关键是把取舍写清楚,而不是假装没有取舍。

误区四:只改颜色,不改结构

有些问题不是换个颜色就能解决。比如按钮太小、错误提示离输入框太远、图标没有文字标签、卡片层级靠浅灰线硬撑。 对比度能帮你发现问题,但修复可能需要字号、字重、间距、布局、图标和文案一起调整。

一份可复制的颜色对比度验收清单

  • 普通正文、表格文字、表单标签至少按 4.5:1 检查;
  • 大标题、粗体大字和主按钮文案确认是否满足大字号条件;
  • 图标、输入框边框、按钮轮廓、焦点环和状态标记按 3:1 检查;
  • 浅色模式和暗黑模式分别检查,不共用一份结论;
  • hover、disabled、selected、error、warning、success 状态都要抽样;
  • 品牌主色、辅助色、灰阶和状态色放进调色板批量检测;
  • 半透明颜色先和真实背景混合,再检查最终颜色;
  • 分享链接用于讨论,PDF 报告用于定稿和留档;
  • 结论里写清颜色用途,不要只写一个对比度数值。

常见问题

颜色对比度怎么算才符合 WCAG?

先把前景色和背景色转换成相对亮度,再计算两者的对比度,结果范围从 1:1 到 21:1。日常网页正文通常看 AA 的 4.5:1,大字号看 3:1,AAA 正文看 7:1。 你可以直接在 颜色对比度检测器输入颜色值,让工具自动完成公式和判定。

按钮文字达到 3:1 就可以了吗?

不一定。3:1 适用于大字号文字或非文本界面组件。普通按钮文字如果字号不够大,仍应按 4.5:1 检查。 按钮边框、图标、焦点轮廓可以参考 3:1,但按钮上的小号文字不要偷换成组件要求。

暗黑模式需要重新测颜色对比度吗?

需要。浅色模式达标的主色,放到深色背景上不一定达标;半透明背景、边框、hover 和禁用态也会改变最终颜色。暗黑模式最好单独维护颜色 token,并对正文、链接、按钮、图标和状态色重新检查。

品牌色不符合 AA 是否必须更换?

不一定。先看它承担的角色:如果是正文、链接或按钮文字,建议调整明度或换承载方式;如果只是装饰,可以保留更多品牌表达。重要的是不要把不达标颜色用于必须阅读或必须操作的信息。

PDF 对比度报告适合放在哪里?

适合放在设计评审记录、前端 PR、上线验收单、客户交付附件或无障碍复盘文档里。报告能保留颜色样本、对比度、5 项判定、建议色、批量调色板结果和日期,比单独贴一个数值更容易复查。

颜色对比度通过后就代表页面无障碍了吗?

不能这么说。颜色对比度只是无障碍的一部分。页面还需要关注键盘可用性、焦点顺序、语义标签、表单提示、图片替代文本、动态内容提示和屏幕阅读器体验。工具报告可以作为颜色证据,但不是完整合规结论。