颜色对比度不达标怎么改,又不破坏品牌色

对比度问题往往出在设计稿最“高级”的地方:浅灰的说明文字、亮橙色的按钮、几乎看不见的输入框边框。改的时候不用换掉品牌色,换个用法就行。

发布于 · A11yPass 无碍达

在我们抽查的 20 个中国品牌欧洲站里,对比度不足是唯一 20 个都有的问题。它影响的不只是视障用户:在室外用手机、屏幕亮度调低、年纪大一些的用户,都会看不清浅色文字。

WCAG 的要求

内容最低对比度对应条款
正文文字4.5:11.4.3(AA)
大号文字:约 24px,或约 18.7px 粗体3:11.4.3(AA)
按钮、输入框的边界,图标等图形3:11.4.11(AA)
Logo、不可用状态的控件不要求1.4.3 的例外

对比度按两种颜色的相对亮度计算,从 1:1(完全相同)到 21:1(白底黑字)。下面图里的数值都是按 WCAG 公式算出来的。

品牌色放在白底上

以一个常见的亮橙色 #FF7A00 为例,放在白底上只有 2.61:1,用作正文和小字都不合格:

同一段促销文字用三种橙色:原色 #FF7A00 对比度 2.61 比 1,不合格;稍深的 #ED7100 为 3.02 比 1,只够大号文字;再深一点的 #BD5A00 为 4.54 比 1,正文也合格。
同一个色相往深调,到第三档正文就合格了,看起来仍然是品牌橙。

做法是把品牌色分成两档:原色用在大标题、色块、背景这些不要求 4.5:1 的地方;正文、价格、链接用加深的那档。这样页面整体颜色几乎不变。

按钮

白字放在亮橙色按钮上,对比度和橙字放白底一样,只有 2.61:1。两个改法都能保留橙色:

左边是按钮文字:白字配亮橙底 2.61 比 1,不合格;深色字配亮橙底 6.69 比 1,合格;白字配加深的橙色底 4.54 比 1,合格。右边是输入框边框:浅灰 #E5E5E5 为 1.26 比 1,不合格;中灰 #939393 为 3.07 比 1,合格。
按钮可以换深色字或加深底色;输入框边框至少要 3:1。
  • 按钮底色不变,文字改成深色:6.69:1。
  • 文字保持白色,按钮底色改成加深的橙色:4.54:1。

灰色说明文字

价格旁边的“含税”、运费说明、评价数量,常用很浅的灰色。#999999 在白底上只有 2.85:1,#767676 是白底上刚好合格的灰(4.54:1):

同一行说明文字用三种灰色:#999999 对比度 2.85 比 1,不合格;#767676 为 4.54 比 1,合格;#595959 为 7.0 比 1,合格。
浅灰换成 #767676 或更深,视觉上依然是“次要信息”。

输入框和图标

输入框的边框、复选框、图标按钮属于 1.4.11 的非文本对比度,要求 3:1。很多主题用 #E5E5E5 这样的极浅边框,在白底上只有 1.26:1,看不清输入框在哪;换成 #939393 这一档(3.07:1)就够了。焦点框的颜色同样要和背景有足够对比。

在主题里怎么改

  1. 先列出网站实际用到的文字颜色和背景颜色组合,逐个算对比度。我们的在线检测会直接列出不合格的元素。
  2. 在 Shopify 主题编辑器的“主题设置 → 颜色”里调整配色方案;主题没有提供的,在主题代码的 CSS 变量里改。
  3. 按钮、价格、链接这些反复出现的组件先改,一次覆盖全站。
  4. 改完再检测一遍,确认对比度问题清零。

对比度之外的检查项见 WCAG 2.1 AA 检查清单。

常见问题

Logo 的颜色也要改吗?

不用。WCAG 1.4.3 对 Logo 和品牌名称里的文字有豁免,不可用状态的按钮也不在要求内。

Banner 图上的文字算吗?

算。图片里的文字同样要满足对比度,可以给文字加深色底,或者把文字从图片里拿出来做成网页文字。

怎么查自己网站的颜色?

用我们的在线检测,会列出对比度不足的元素;单个颜色可以用浏览器开发者工具里的对比度提示核对。

资料来源

  1. W3C: Web Content Accessibility Guidelines (WCAG) 2.1
  2. W3C WAI: Understanding Success Criterion 1.4.3 Contrast (Minimum)
  3. W3C WAI: Understanding Success Criterion 1.4.11 Non-text Contrast

本文整理技术要求和公开数据,不构成法律意见。涉及诉讼和法律义务的问题,请咨询当地律师。