跳转到内容

无障碍

系统以 WCAG 2.2 AA 为目标。下面这些规则已经做进 token 和组件里;每个组件额外做了什么,见各自的页面。

下面的表格是这个网站构建时从 token 文件算出来的,两种主题都有。正文需要 4.5:1;大字,以及控件的组成部分(比如状态圆点)需要 3:1。

浅色主题里有好几组不达标,表格里逐一标出:珊瑚色的链接、珊瑚色按钮上的白字、最浅的次要文字、卡片上的次要文字,以及青色、琥珀色和状态色的标记。深色主题几乎全部达标。浅色暂时按品牌交付包原样保留。在改之前:最浅的次要文字只用于提示和重复别处信息的标签;链接的意思要写在文字里,不要只靠颜色;每个标记旁边都配上文字。

前景背景浅色深色
--text-ink--surface-canvas17.50:1AA17.01:1AA
--text-body-strong--surface-canvas14.58:1AA15.79:1AA
--text-body--surface-canvas10.35:1AA13.67:1AA
--text-muted--surface-canvas5.13:1AA6.62:1AA
--text-muted-soft--surface-canvas3.23:1仅大字4.30:1仅大字
--text-link--surface-canvas2.96:1不足5.74:1AA
--text-ink--surface-card15.26:1AA14.88:1AA
--text-body-strong--surface-card12.71:1AA13.81:1AA
--text-body--surface-card9.02:1AA11.96:1AA
--text-muted--surface-card4.48:1仅大字5.79:1AA
--text-muted-soft--surface-card2.82:1不足3.76:1仅大字
--text-link--surface-card2.58:1不足5.02:1AA
前景背景浅色深色
--text-on-dark--surface-dark17.01:1AA13.78:1AA
--text-on-dark-soft--surface-dark6.62:1AA5.36:1AA
--text-on-dark--surface-dark-soft15.82:1AA12.65:1AA
--text-on-dark-soft--surface-dark-soft6.16:1AA4.92:1AA
--text-on-dark--surface-dark-elevated14.88:1AA11.42:1AA
--text-on-dark-soft--surface-dark-elevated5.79:1AA4.44:1仅大字
前景背景浅色深色
--color-on-primary--color-primary3.12:1仅大字3.12:1仅大字
--color-on-primary--color-primary-active5.06:1AA5.06:1AA

状态圆点和点缀标记不是文字,标准是 3:1。浅色主题里大多数低于这条线,所以圆点不能只靠颜色表达意思:旁边要有看得见的文字。

前景背景浅色深色
--accent-teal--surface-canvas2.25:1不足7.57:13:1
--accent-amber--surface-canvas2.00:1不足8.50:13:1
--status-success--surface-canvas2.33:1不足7.31:13:1
--status-warning--surface-canvas2.25:1不足7.54:13:1
--status-error--surface-canvas4.59:13:13.70:13:1

每个链接和按钮在键盘聚焦时(:focus-visible)显示 2px 的珊瑚色外框,外移 2px,键盘用户随时知道自己在哪。输入框改为画自己的 --focus-ring 光圈。

屏幕窄于 768px 时,所有标了 data-ds-tap 的元素都放大到 --tap-min,也就是手指需要的 44px:列表里的行变高,图标按钮这类单元格长宽都变大。正文里的链接是唯一的例外,44px 的框会打乱它周围的行距。文件树也不标:文件夹能折叠,文件不能点,所有行都保持 28px,两者才对得齐。

系统设置了减少动效,或者网站自己的开关打开时,动效都缩短到 1ms,所以动效从不单独传达信息。见动效。

只要有原生元素,组件就用原生元素:真正的 <button>,能折叠的用 <details>,名称和值成对的用 <dl>,图片用 <figure> 和 <figcaption>。用颜色或圆点表示的状态,也会写成文字给读屏软件。组件里固定的文字(例如 “Copy code”“Required”)用英文。