无障碍与包容性设计规范
让用户能够取得信息、完成操作、理解后果、表达决定,并在出错或中断后继续。无障碍是完整任务的质量,不是附加工具栏或检查分数。
9 条原则 · 55 条规则 · 必须 0 · 应当 0
目录
让用户能够取得信息、完成操作、理解后果、表达决定,并在出错或中断后继续。无障碍是完整任务的质量,不是附加工具栏或检查分数。
本规范适用于 Web、原生应用及具有数字交互界面的设备,覆盖内容、控件、流程、辅助技术、个人设置和服务出路。永久、暂时及情境性障碍都在设计范围内;不要求用户先声明年龄、健康状况或残障身份。
全文按九类设计对象组织 55 条规则。每条回答三个问题:设计要决定什么、实现要保证什么、用户如何知道它生效。配套的 Design Token 表达可复用参数,参考来源 标明依据与证据边界。
Web 以 WCAG 2.2 的 A 与 AA 要求作为基础目标;附录 A 选取易误用的判据,不能替代完整标准评估。原生与设备按目标平台的可访问性机制逐项落实,不把 CSS px 直接当成 dp 或 pt。本文对完整任务、包容性和协助的要求是产品设计要求,不构成法律符合性、医疗诊断或法定代理资格的认定。
1. 原则与规则入口
| 原则 | 设计对象 | 方向 | 规则 |
|---|---|---|---|
| AC1 信息可感知 | 信息与等价表达 | 让信息在不同感官条件下仍然完整、及时、可辨别。 | AC1-1 至 AC1-6 |
| AC2 操作可完成 | 输入动作与焦点 | 让每条任务都有可发现、可退出、不依赖精细操作的完整路径。 | AC2-1 至 AC2-8 |
| AC3 语义可理解 | 名称、角色、结构与状态 | 使辅助技术获得准确语义,并按任务节奏通知变化。 | AC3-1 至 AC3-7 |
| AC4 理解与恢复可承受 | 时间、记忆、认证、错误与出路 | 让用户按自己的节奏理解、决定,并从中断或错误中回来。 | AC4-1 至 AC4-9 |
| AC5 偏好与能力受尊重 | 设置、显示适配与公平获得 | 让用户按效果选择调整,并保留完整任务能力。 | AC5-1 至 AC5-6 |
| AC6 可用性有证据 | 验收范围、方法与声明 | 用规则检查、辅助技术操作和真实用户任务共同支撑结论。 | AC6-1 至 AC6-5 |
| AC7 服务路径可接续 | 帮助、渠道与操作指引 | 用户卡住时仍有可到达、可交接、可验证的服务出路。 | AC7-1 至 AC7-3 |
| AC8 协助不替代本人 | 协助身份、权限与决定归属 | 让帮助可见、可收回,让本人通过可访问方式作决定。 | AC8-1 至 AC8-5 |
| AC9 承诺取得清楚 | 转化、授权、扣款与真实性核对 | 不以认知或操作障碍换取用户并未打算作出的承诺。 | AC9-1 至 AC9-6 |
2. 使用与判定
必须/不得是适用条件成立时的底线;应当是推荐要求,偏离须记录原因、替代措施与验证;可以表示可选择的实现。示例不限定组件或架构。标准阈值、平台建议和本规范的产品要求分别标明,不相互冒充。
先选完整任务,再逐条判定适用性。任何不适用或标准例外都须记录对象、条件、依据、受影响用户和有效替代;“没有相关用户”“第三方做的”“工具没报错”不构成豁免。配置关闭某种能力,只能解除该能力的条件义务,不能取消基础可达性。
验收项使用 通过/不通过/未验证/不适用+理由。判断以实际行为和范围证据为准;资料缺失不能填通过,已知阻断不能被其他项的分数抵消。用户研究支持特定任务与使用情境的可用性判断,不推断所有人都能用。
按任务查规则
| 当前问题 | 优先检查 |
|---|---|
| 状态、图表、媒体难以理解 | AC1 全组、AC3-3 至 AC3-6 |
| 键盘、触摸、语音控制走不完 | AC2 全组、AC3-1 与 AC3-2 |
| 登录、表单、超时或报错卡住 | AC4 全组、AC7 全组 |
| 大字、减少动效或强制配色失效 | AC1-5、AC2-2、AC5 全组 |
| 第三方组件或自动修复引入障碍 | AC3-7、AC6 全组 |
| 他人协助、授权或付费 | AC8 与 AC9 全组 |
3. 规则详解
AC1 信息可感知
让信息在不同感官条件下仍然完整、及时、可辨别。
AC1-1信息不依赖单一感知属性
适用状态、结果、警示、分类和操作指引。
要求必须用文字、形状或结构补足仅靠颜色、位置、方向或声音传递的信息;视觉内容须有可供辅助技术转换的语义。等价按含义与任务结果判断,不按提示形式的数量判断。纯装饰不承担信息义务。
设计应用错误同时给出字段名称、原因与标记;说明“选择提交”,不只说“按右边绿色按钮”。
验证
- 用户侧:关闭声音、去掉颜色差异后仍能辨认结果和下一步。
- 实现侧:检查状态清单中每项的含义、载体、语义和替代入口,不能只有另一种颜色。
反例做不到:红绿灯是唯一成功标识;做过头:每次成功都同时震动、响铃和闪屏。
AC1-2替代文本传达用途与内容
适用图像、图标、图表、画布和图像文字。
要求必须按用途提供文本等价;装饰图从辅助技术读取中排除,功能图说明动作。复杂图表提供摘要及可遍历的数据或结构,保留单位、趋势、异常与不确定性。文字可用真实文本表达时,不以图片替代;自动生成的关键描述必须核验。
设计应用趋势图提供主要结论和数据表;按钮名称说明“下载账单”,不写“向下箭头”。
验证
- 用户侧:不看图也能作出相同决定,能查到支撑结论的数据。
- 实现侧:核对替代内容与图的源数据、筛选条件、语言和更新状态一致。
反例做不到:图表的描述只有“图片”;做过头:给每条装饰线加朗读描述。
AC1-3媒体按信息类型提供等价内容
适用录播、直播、纯音频、纯视频及播放器。
要求必须区分字幕、文字稿与音频描述。Web 采用 AA 目标时,有声录播视频提供同步字幕,直播同步媒体提供实时字幕,录播视频中音轨未说明的重要视觉信息提供音频描述;纯音频和纯视频按各自信息提供替代。文字稿不能普遍替代字幕或 AA 所需音频描述。记录标准允许的具体例外,不以“稍后补字幕”当作通过。
设计应用字幕包括说话人和有意义的非语音声;播放器的暂停、字幕、音量、定位可由键盘和辅助技术操作。
验证
- 用户侧:静音跟随讲解;不看画面仍能理解操作步骤;直播能获知字幕延迟或失效。
- 实现侧:逐段核对同步、遮挡、专名、数字与音频描述覆盖;分开记录媒体资源和播放器测试。
反例做不到:语音说“如图”而无描述;做过头:给无信息的装饰动画制作长篇字幕。
AC1-4提示的含义可获取、可回看
适用声音、震动、灯光、屏幕通知与无屏幕产品。
要求必须定义提示的含义、紧急度、后续动作及各路径覆盖的使用情境。至少支持不依赖视觉和不依赖听觉的取义路径;声明覆盖多重感官障碍时,另验证触觉、盲文或其他可行路径。提示编码须可查询,不能把察觉到震动当作理解了消息。
设计应用设备提示同时留存可访问的事件记录;离身时不把震动记为已送达。
验证
- 用户侧:分别测试静音、不可见、未持握以及声明覆盖的组合,能找到含义和处理入口。
- 实现侧:核对传输、呈现、确认阅读三个状态不混用;用户关闭通道后遵循其选择。
反例做不到:两短一长代表故障但无查询入口;做过头:强制开启全部通道且不能关闭。
AC1-5文字与控件可辨别
适用文本、图形、控件边界和各交互状态。
要求必须满足附录 A 中适用的对比度底线;按实际前景背景组合和透明度合成结果测试,覆盖浅色、深色、选中、悬停、错误及聚焦状态。禁止将占位文字当作唯一标签。豁免元素须逐项说明,不能将低对比度的可用控件标成禁用规避检测。
设计应用颜色按用途成对定义;错误含文字;背景图片上的文本有稳定底色。
验证
- 用户侧:低视力用户可识别必要信息;强制配色下仍能分辨选中与焦点。
- 实现侧:计算真实渲染组合的对比度并检查边界,不能只验证调色板中的孤立色值。
反例做不到:输入提示太浅看不清;做过头:将所有装饰分隔线都加粗到抢占注意力。
AC1-6等价内容随事实同步
适用摘要、图表、字幕、翻译、导出文件与替代路径。
要求主内容变化时,必须同步更新所有承载同一任务事实的等价表达。生成失败或尚未核实的内容须标明不可用或待核实,提供有效替代;不能把失效内容当作当前等价信息。第三方组件和导出文档须纳入任务范围。
设计应用筛选图表时同步更新数据表;报告下载保留标题、表格关系与阅读顺序。
验证
- 用户侧:切换筛选后,从视觉和非视觉路径读到同一结果。
- 实现侧:对照源对象、生成状态和发布检查;记录无法同步时的阻断与替代方案。
反例做不到:图已更新而描述仍引用旧数据;做过头:重复播报每一处无意义的排版变化。
AC2 操作可完成
让每条任务都有可发现、可退出、不依赖精细操作的完整路径。
AC2-1任务有完整的键盘与替代输入路径
适用具有可操作界面的任务,包括登录、设置、提交、撤销与退出。
要求Web 功能必须可通过键盘接口操作且不要求特定按键时序;原生产品须支持所声明平台的辅助输入。路径必须覆盖全过程,不以“首页可用”推定第三方支付也可用。仅对功能本质依赖移动轨迹的部分记录例外,配套设置与提交仍须可达。
设计应用先画一条不使用鼠标的完整任务路径,再检查开关控制与语音控制。
验证
- 用户侧:仅用目标输入方式完成任务并退出,无必须找人代点的步骤。
- 实现侧:检查事件绑定、禁用状态和第三方嵌入;验证不是只给元素加可聚焦属性。
反例做不到:表单可填但验证码只能拖动;做过头:让每个静态段落都进入 Tab 序列。
AC2-2焦点可见且不被遮挡
适用键盘输入焦点、复合控件活动项、浮动栏和软键盘。
要求必须分别管理输入焦点与容器活动项,不强行同步辅助技术阅读位置。键盘焦点须有明确视觉指示并可编程确定。Web AA 至少不得完全被作者创建内容遮挡;本规范进一步要求必要操作目标完整可见,出现浮层、软键盘或固定栏时主动容纳。焦点外观的 AAA 阈值不得冒充 AA 条件。
设计应用聚焦输入框时调整滚动位置;用轮廓或形态配合颜色标出焦点。
验证
- 用户侧:放大后逐项导航,始终知道所在位置和将触发的操作。
- 实现侧:核对焦点矩形与遮挡区域;测试高对比配色、嵌套滚动和屏幕边缘。
反例做不到:焦点位于固定页脚后;做过头:随朗读位置不断强制滚屏。
AC2-3顺序与结构一致
适用多列布局、菜单、工具栏、表单和复合控件。
要求焦点顺序必须保持意义与操作顺序;视觉重排不得破坏理解。普通页面采用自然顺序,复合控件按角色使用方向键与活动项管理;不得用大批正 tabindex 修补结构。静态内容通过阅读导航访问,必要的标题定位可程序聚焦。
设计应用工具栏按模式提供一个 Tab 入口及组内方向键;标题顺序反映层级。
验证
- 用户侧:能预测下一步焦点且跳过重复导航,无几十次 Tab 才到正文。
- 实现侧:对照 DOM/语义树、视觉顺序和键盘序列;覆盖窄屏与语言方向变化。
反例做不到:视觉第一项最后才聚焦;做过头:为统一 Tab 行为破坏菜单的方向键操作。
AC2-4模态可退出、焦点不被抢占
适用对话框、抽屉、编辑器、媒体和嵌入内容。
要求不得由广告、后台刷新或普通通知抢焦点。真正模态开启时把焦点放入合适位置,限制背景交互与辅助技术访问,并提供可操作的退出方式;关闭后返回触发控件或合理替代位置。非模态浮层不能仅因视觉覆盖就隐藏整页语义。
设计应用对话框可用关闭按钮和适用的 Escape 退出;长说明可先聚焦标题。
验证
- 用户侧:从原位置进入、操作、取消并回到原任务;同一输入方式能进也能出。
- 实现侧:检查模态层栈、背景 inert 等行为、嵌入边界及关闭后焦点;不能只画遮罩。
反例做不到:焦点进入第三方编辑器后出不来;做过头:普通提示也锁住整页。
AC2-5内容变化后有合理落点
适用删除、分页、步骤切换、局部加载及动态列表。
要求由用户动作引发结构变化时必须定义下一焦点;删除当前项后定位到相邻项或列表容器,步骤切换定位到新步骤,触发器消失时选择有意义的替代点。展开行内内容通常保留触发点,不一律跳入。后台变化保留当前位置,必要结果通过状态消息通知。
设计应用删除最后一项后聚焦空状态中的新增入口;分页后定位列表起点。
验证
- 用户侧:操作后知道发生什么且能继续,不退回无关的页面顶部。
- 实现侧:按变化事件验证节点卸载后的焦点、活动项和播报去重。
反例做不到:删除后焦点丢到 body;做过头:每次自动保存都把焦点移到成功提示。
AC2-6复杂动作有简单替代
适用拖拽、多点、路径手势、长按与设备动作。
要求拖拽必须同时提供键盘路径与单指免拖拽路径;二者不能相互替代。多点或路径手势提供单指简单操作,动作输入可关闭且有控件替代,功能本质或辅助技术自身操作的例外单独记录。替代可以是多次简单点击,不要求把所有任务压成一步。
设计应用排序提供“上移/下移”或选择目标位置;地图提供缩放按钮。
验证
- 用户侧:分别用键盘和单指点击完成同一操作,替代入口可发现。
- 实现侧:测试手势关闭后结果一致;时间判定参数遵循平台设置或有非限时替代。键盘路径与单指非拖动路径分别形成证据,不互相代替。自动扫描只能发现部分标记错误,不能替代完整任务中的焦点理解、读屏顺序与辅助操作测试;对未覆盖的设备与辅助技术保留范围说明,不从一种组合外推全部可访问。
反例做不到:只有拖拽和键盘快捷键,没有点击替代;做过头:为了免手势删除全部便捷手势。
AC2-7靶区可命中且误触可取消
适用按钮、图标、链接、滑块和触摸交互。
要求实际命中区域须满足附录 A 的平台底线且互不重叠。单指操作优先在抬起时完成,按下后允许移出取消;须在按下时触发的必要操作提供取消或撤销并记录理由。扩大命中区不能遮住旁边控件。
设计应用小图标保留视觉尺寸但扩大命中区;删除操作在抬起时执行并可撤销。
验证
- 用户侧:手部不稳定时仍能选择目标;按下后移开不会误提交。
- 实现侧:测实际 hit area 而非图标尺寸;覆盖目标邻接、边缘、滚动冲突和指针取消。
反例做不到:相邻图标的隐形热区重叠;做过头:无限扩大热区导致空白处误触。
AC2-8快捷键与悬浮内容可控制
适用字符快捷键、Tooltip、悬浮卡片和焦点弹出内容。
要求仅字符键触发的快捷键必须可关闭、重映射为含非字符键,或仅在对应控件聚焦时生效。额外悬浮内容须可关闭、可移入、持续显示至用户移开或主动关闭等适用条件成立;不能要求用户在短暂时间窗内追逐内容。
设计应用语音输入时不触发全局“删除”键;浮层可用 Escape 关闭且能移入点击链接。
验证
- 用户侧:放大后阅读浮层、移入并操作;听写文本不会误触功能。
- 实现侧:验证键盘、指针、辅助输入下的触发范围与关闭;保留标准允许的必要例外。
反例做不到:说一个字母就触发快捷键;做过头:禁用所有平台快捷键。
AC3 语义可理解
使辅助技术获得准确语义,并按任务节奏通知变化。
AC3-1语义与真实行为一致
适用原生和自制控件。
要求必须优先使用适合用途的原生语义。自制控件一旦声明角色,就须实现相应键盘行为、状态和值;不能靠 ARIA 名称修复缺失的交互。不得隐藏仍可聚焦的元素或让装饰元素成为可操作对象。
设计应用开关同时有名称、开关角色、开关状态;自制菜单实现预期导航。
验证
- 用户侧:听到的角色与按键操作的结果一致。
- 实现侧:检查语义树并实际操作,角色声明和监听事件两者都验。
反例做不到:div 声明按钮却不响应空格;做过头:覆盖原生按钮语义使其变成菜单项。
AC3-2名称包含可见标签与必要上下文
适用按钮、字段、重复列表操作和语音控制。
要求可访问名称必须说明用途,含可见标签的完整词序;可追加对象上下文。相同动作可重用名称,但对象不同时须能凭名称及可编程上下文区分。必填、无效、展开、选中、禁用和值须真实可获取,不把状态硬塞进无法同步的名称。
设计应用“删除 张三的地址”保留可见的“删除”;字段标签常驻。
验证
- 用户侧:说出看到的名称即可定位;读屏可区分多个删除按钮的对象。
- 实现侧:检查计算后的名称来源和状态,切换语言与状态后再次核对。
反例做不到:屏幕写“保存”,读屏叫“继续”;做过头:名称重复朗读角色和整段说明。
AC3-3状态变化通知适度
适用异步提交、进度、错误、通知和后台完成。
要求不移动焦点的必要状态消息必须可被辅助技术感知。普通结果排队通知,需立即处理的紧急事件才打断;进度可聚合,不能吞掉最终结果、错误或待处理事项。提供持久查询位置,避免焦点通知与 live region 重复播报。
设计应用提交成功礼貌通知一次并保留回执;失败通知原因和重试入口。
验证
- 用户侧:填写期间不被百分比反复打断,但能知道提交失败。
- 实现侧:测试真实读屏输出和状态事件,检查忙碌状态结束、播报去重及空到非空变化。
反例做不到:视觉出现错误但无语义更新;做过头:所有通知都用 assertive。
AC3-4结构与关系可遍历
适用标题、区域、表单、表格、列表和长页面。
要求必须提供真实标题层级、区域和可跳过的重复内容;字段标签、说明、错误、组标题及表头关系可编程确定。复杂数据表保留行列上下文,布局容器不伪装成数据表。跨页搜索或目录应帮助用户定位长内容。
设计应用表单使用组标题;错误摘要可跳到对应字段;数据表说明单位。
验证
- 用户侧:能按标题定位、按表头理解数值,不逐项遍历整页。
- 实现侧:检查关系 ID 是否有效、表格合并关系和跳转目标;移动布局仍保留意义。
反例做不到:表格只是若干对齐的 div;做过头:每个小卡片都做顶层 landmark。
AC3-5语言、方向与输入目的可确定
适用多语言页面、混合语言、双向文字与个人信息表单。
要求Web 须声明页面和必要片段的语言;原生使用平台对应机制。语言切换须同步名称、说明与错误。日期、数字、地址按语境明确格式;双向文本正确隔离,不能倒置金额或账号。能识别输入用途的字段提供适当自动填充语义,不限制合理姓名与地址形式。
设计应用姓名允许合理字符;国际电话明确区号;解释示例日期的年月日顺序。
验证
- 用户侧:读屏正确读出不同语言;用户可填入真实姓名并识别格式。
- 实现侧:检查 lang、dir、autocomplete 或平台等价属性,测试长译文和混合方向。
反例做不到:中文页面被当英文读;做过头:为每个外来专名强制切换语音。
AC3-6流式与虚拟化内容可导航
适用实时日志、聊天、流式生成、无限列表和虚拟网格。
要求必须保留稳定的当前阅读项与操作对象;不得因回收离屏节点丢失用户位置。流式内容按完整语义片段或阶段通知,提供暂停跟随、回看、最终结果和中止状态;不能逐字播报。虚拟列表暴露合理的位置与总量,未知总量须如实表达;必要时提供可用的分页或按需加载路径。
设计应用用户向上阅读后停止自动贴底;新消息用“有新内容”入口提示。
验证
- 用户侧:读旧内容时新内容不夺走位置,最终结果完整可访问。
- 实现侧:模拟高频更新、节点回收、断流及恢复;核对活动项引用始终有效。
反例做不到:阅读中节点被复用成另一条消息;做过头:为了稳定位置永远冻结结果。
AC3-7第三方与修复方案承担同等要求
适用组件库、嵌入控件、覆盖层和自动语义修复。
要求必须验收最终交互与语义,不能因安装某工具就声明可用。修复不得覆盖用户偏好或制造重复控件;可选辅助层关闭后基础任务仍须可达。第三方阻断关键路径时须修复、替换或提供等价入口,声明限制不能代替完成路径。
设计应用采购播放器前测试键盘和字幕;替换不可访问的验证码。
验证
- 用户侧:关闭辅助插件后仍能注册和提交。
- 实现侧:检查注入前后语义树、事件和焦点冲突,并追踪缺陷负责方。
反例做不到:用工具栏代替修复表单;做过头:原生可用控件被强行叠加另一套界面。
AC4 理解与恢复可承受
让用户按自己的节奏理解、决定,并从中断或错误中回来。
AC4-1时间限制可调且到期不丢进度
适用认证有效期、业务时限和草稿保留。
要求必须分别说明三类期限及起算点。可调时限提供关闭、调整或到期前延长等符合适用标准的路径;不可调项逐项记录实时事件、必要性等实际例外,不能只写“安全需要”。到期前可感知告知;认证到期不继续用失效凭证,重新认证后恢复允许保留的非敏感输入。
设计应用倒计时与“延长”入口可被读屏获知;草稿不与认证同时销毁。
验证
- 用户侧:停顿、切换应用后能继续;需要重新登录时不重填整张表。
- 实现侧:用可控时钟注入临界到期,核对延长次数、提示窗口与状态保全。
反例做不到:无提示自动清空;做过头:为保进度让过期授权继续有效。
AC4-2跨步骤信息不重复索取
适用多步表单、比较与确认。
要求同一流程中已输入或提供的信息必须自动填入或允许选择;任务必要、安全需要或已失效的例外须明确记录。需比较的信息在当前位置可得;不能把“再次输入”当作默认确认方法。
设计应用确认页展示可修改摘要,保留地址选择而不强迫记忆。
验证
- 用户侧:不抄写、不来回记数字即可核对和修改。
- 实现侧:检查前后步骤数据绑定、来源、失效判断和返回后保留。
反例做不到:下一步要求再输入同一地址;做过头:将无关历史数据全部自动带入。
AC4-3认证不以认知测试为唯一通路
适用登录、多因素认证、找回账号与人机校验。
要求必须支持无需记忆、转录或解谜的有效路径,或提供可完成该认知步骤的辅助机制;允许密码管理器、自动填充和粘贴,验证码支持完整粘贴或平台填充。每一步分别验证。不能只在视觉谜题之外再加听觉谜题。本规范优先不依赖辨认图片的路径,不能把标准允许的识图例外称为全面可用。
设计应用密码字段语义正确;提供可访问的凭据或设备确认路径及账号找回。
验证
- 用户侧:无需记住密码、手抄验证码即可登录,并能在设备不可用时找回。
- 实现侧:检测 paste 拦截、拆分输入框、多因素跳转和风控拦截后的替代入口。
反例做不到:禁止粘贴且只能背验证码;做过头:以无障碍为由取消全部身份核验。
AC4-4说明清晰且尊重用户
适用任务文案、术语、确认、错误与内容表达。
要求必须在行动处给出必要条件和后果,不藏在长协议里;应当用熟悉词语和明确动作解释术语。简明表达不得删去限制、费用或不确定性;不以年龄、能力、语言水平作贬损或幼儿化称呼。重要信息应允许按需展开和反复阅读。
设计应用“地址缺少门牌号,请补充”替代“非法参数”;首次出现解释专业缩写。
验证
- 用户侧:目标使用者能说明将发生什么以及下一步怎么做。
- 实现侧:逐条核对按钮、说明和实际动作;用任务访谈检查理解,不能只靠可读性分数。
反例做不到:只有内部错误码;做过头:为“简单”隐藏关键风险。
AC4-5错误可定位、改正与重试
适用输入校验、提交失败和部分成功。
要求必须说明出错对象、原因与可行下一步,并建立错误与字段的程序关系。提交后可聚焦错误摘要或首个错误,避免重复打断;改正时保留其他有效输入。结果未知时先核对实际状态再重试,不能误报失败后重复扣款或提交。
设计应用错误摘要链接到字段;结果未知显示查询与恢复入口。
验证
- 用户侧:能自行改好错误而不重做;知道哪些项已成功。
- 实现侧:注入校验失败、网络断开与部分提交,核对持久状态及防重复机制。
反例做不到:红框无说明且清空表单;做过头:每输入一个字符就打断朗读报错。
AC4-6干扰可抑制、闪烁受约束
适用动画、轮播、声音、自动刷新和动态背景。
要求自动开始、持续超过 5 秒且与其他内容并行的移动、闪烁、滚动内容须可暂停、停止或隐藏,必要活动例外须证明;自动更新信息按标准提供控制。自动声音超过 3 秒须有暂停、停止或独立音量控制。本规范默认不自动播放声音。减少动效时保留静态状态与进度;闪烁采用附录 A 的限制。
设计应用加载用静态文案或低干扰进度;轮播提供暂停,减少动效时停止装饰位移。
验证
- 用户侧:无需先承受长时间运动或声音才能找到关闭入口。
- 实现侧:检查动效关闭前后信息一致;逐个检查自动活动与闪烁素材。
反例做不到:减少动效只是把动画加快;做过头:把加载状态一起隐藏。
AC4-7短暂提示可再取、撤销不靠手速
适用Toast、通知条、确认回执和撤销。
要求关键结果和必要告知必须有持久位置;提示消失不能成为撤销期限。影响风险与可撤回性分别判断,执行前说明适用的撤回范围和时限;无法确认结果时显示待核实。高后果操作至少具备适用的撤销、提交前检查或确认保护,避免对所有动作一律多次确认。
设计应用删除提示消失后仍可从记录撤销;明确取消未来订阅与撤销已扣款的区别。
验证
- 用户侧:慢速阅读者仍能找到结果和可用的纠错动作。
- 实现侧:检查通知 TTL 与业务撤销截止点独立,回执与执行状态一致。
反例做不到:三秒后撤销入口永久消失;做过头:低风险选择也反复确认。
AC4-8中断后恢复且不推定能力
适用长流程、保存、来电、切换应用与暂时离开。
要求必须明确保存范围、保留时间和恢复入口;用户停顿、求助或重试本身不能视为放弃、能力不足或自动降级依据。恢复时展示所在步骤和已完成内容,并重新核对失效事实;敏感内容可不保留但须事先说明和提供可行重入。
设计应用恢复草稿后提示“已填到联系方式”,不重新提交已执行动作。
验证
- 用户侧:中断后知道从哪里继续,并能修改保存内容。
- 实现侧:模拟退出、离线、认证失效与重复恢复,检查草稿和已执行结果分离。
反例做不到:离开页面就清空;做过头:未经选择永久保存敏感输入。
AC4-9高后果流程可预览、帮助可直接发起
适用付款、授权、删除、复杂申请及用户卡住的步骤。
要求应当提供无真实后果的预览或预演,清晰区分真实执行。必须有不要求描述技术细节的求助入口,登录故障时可在未登录状态发起一般帮助;涉及私人数据再采用可访问认证。帮助入口位置一致,转交上下文只传必要且已告知的信息。
设计应用“这一步遇到问题”自动附带步骤标识;预演结束说明未提交。
验证
- 用户侧:无需知道错误码即可求助;不把预演当作已办理。
- 实现侧:确认预演无真实写入;未登录求助不能读取他人信息,转交前核对共享范围。
反例做不到:登录不上却必须登录联系客服;做过头:每位用户先被迫完成教程。
AC5 偏好与能力受尊重
让用户按效果选择调整,并保留完整任务能力。
AC5-1响应平台偏好而不伪造选择
适用文本大小、减少动效、对比、强制配色和辅助技术。
要求必须通过平台公开机制读取或继承相关偏好,并支持运行中变化。平台未提供、读取失败、用户未选择须区别记录,不一律当作“全部开启”。不得覆盖用户自选辅助技术的设置;产品显式偏好仅控制自身支持的属性,不能关闭平台强制配色或拦截浏览器缩放。
设计应用默认跟随系统;动效读取失败时采用少动效呈现,但不把它记为用户选择。
验证
- 用户侧:改系统设置后产品响应;不被要求重新声明残障或辅助技术使用情况。
- 实现侧:检查来源、解析值、未知原因及变更事件;强制配色下仍保留边框和状态。
反例做不到:系统已减动效但产品继续视差;做过头:读取失败就反转颜色、放大全部文字。
AC5-2缩放、重排与文字间距不丢内容
适用页面、弹窗、标签、表格、文字与表单。
要求Web 须满足附录 A 的文字缩放、重排与间距覆盖测试;原生支持平台文字缩放。不得禁止用户缩放或固定字号上限来躲避布局问题。确需二维布局的区域可局部滚动并说明,不能据此让整页横向滚动;字幕、长名称与错误信息同样检查。
设计应用容器随内容增高;按钮文字可换行;数据表在单独区域滚动。
验证
- 用户侧:放大后仍能阅读、确认、取消;长译文和用户字距不裁切。
- 实现侧:分别执行文本放大、窄视口重排、间距覆盖,不将三种测试合并为截图检查。
反例做不到:200% 字体后确认按钮被裁掉;做过头:为塞进一屏反向缩小字体。
AC5-3设置可发现、可组合、可恢复
适用产品提供的可调项和预设。
要求必须按效果命名并逐项可调,不以“先选老年人/残障模式”作为入口。至少提供可在当前任务中访问的设置或明确的平台设置指引;保留当前输入和返回位置。临时设置与持久偏好区分,支持恢复跟随系统;组合预设不锁死单项。
设计应用“增大文字”“减少动效”可分别选择;临时调整不写入账号默认。
验证
- 用户侧:遇到困难时能调整并回到原处,不被迫丢草稿。
- 实现侧:检查设置入口可达、存储主体、退出登录及共用设备清除行为。
反例做不到:只有一个大字模式且关闭所有高级功能;做过头:每一步弹出一整页设置。
AC5-4适配不削减权益与功能
适用大字、简明布局、辅助输入、低带宽与替代路径。
要求启用可访问性设置不得降低可完成任务、内容时效、额度或服务待遇,不增加无关收费、身份证明与数据采集。简化呈现仍提供完整能力的可达入口;客观限制须说明并提供不要求关闭必要设置的有效替代。
设计应用大字模式能办理与默认模式相同的业务,复杂选项按需展开。
验证
- 用户侧:同一任务在不同设置下结果与服务条件一致。
- 实现侧:用任务清单比对功能、费用、限额、更新时效与数据要求。
反例做不到:开读屏后禁用付款;做过头:为保持布局相同拒绝允许用户重排。
AC5-5不以推定身份改变待遇
适用辅助技术检测、行为分析、推荐与自动适配。
要求不得将辅助技术在场、停顿、失误或求助推断为能力不足并降级功能或待遇,也不得为开启可调项索取健康证明。必要的兼容性适配应限于实现差异;用户数据采集须目的明确且最少化。系统提出调整应可拒绝,不能覆盖显式偏好。
设计应用提示“可以增大文字”而非“您似乎视力有问题”;不把辅助技术判成自动化攻击。
验证
- 用户侧:能拒绝建议继续使用,且不会被持续追问。
- 实现侧:核对自动分支与风控输入来源,测试辅助技术正常输入及误拦截申诉。
反例做不到:停顿久就自动进入少功能界面;做过头:为了“不区分用户”连系统字号也不遵循。
AC5-6适应语言、文化与使用情境
适用跨地域表单、方向、设备姿态和受限网络。
要求必须避免无必要的单一语言、读写方式、姓名结构或设备方向限制;方向锁定仅在功能本质必要时采用并说明。应当在低带宽、单手、临时损伤、噪声和强光条件下检查关键任务。用户不需公开能力或文化身份才能取得基础能力。
设计应用允许合理姓名与地址;长表单保留离线草稿,错误消息不只依赖语音。
验证
- 用户侧:用户能按真实信息办理,在声明支持的姿态与环境中完成任务。
- 实现侧:覆盖语言、方向、输入法、断网和设备旋转;核对例外是否确为任务所需。
反例做不到:所有姓名必须符合两段拉丁字母;做过头:按国籍自动替用户选能力档位。
AC6 可用性有证据
用规则检查、辅助技术操作和真实用户任务共同支撑结论。
AC6-1三类证据分别取得
适用设计交付、实现验收与对外声明。
要求必须区分自动检查、人工规则与辅助技术检查、目标用户任务测试。自动检查可发现部分缺陷,不能独立证明符合性或任务可用;用户完成任务也不能免除可检测的规则缺陷。每项结论须绑定测试范围和证据,不把工具分数当总体可用率。
设计应用一条表单任务同时检查语义、键盘和真人完成情况。
验证
- 用户侧:真实用户能完成任务并理解结果,问题未被工具通过掩盖。
- 实现侧:建立规则项、执行记录、用户观察之间的关联,保留失败和未验证状态。
反例做不到:扫描零错误就声称完全无障碍;做过头:有真人测试就不做规则检查。
AC6-2关键任务覆盖真实组合
适用注册、登录、主要业务、修改、撤销、求助和退出。
要求必须显式列出任务起终点与成功条件,覆盖实际使用的辅助技术、输入方式、语言和设备组合。招募具有相关使用经验的人,包含不使用辅助工具的认知、听觉或动作需求;不得以模拟残障替代。独立完成、提示后完成、代操作完成分别记录;研究参与条件与报酬公平。
设计应用覆盖读屏、放大、键盘和开关控制等目标组合,并记录选择依据。
验证
- 用户侧:用户以日常方法完成真实任务,能报告障碍而不被研究员代办。
- 实现侧:记录样本、环境、配置、任务、阻断点、协助和局限;不能由少数人推断所有人。
反例做不到:只让开发者开读屏试一次;做过头:要求穷尽所有设备才允许修复已知缺陷。
AC6-3严重障碍不被平均分抵消
适用验收判断和发布门槛。
要求关键路径不可完成、焦点陷阱、必要信息缺失、超时丢失工作、误触产生重大后果、适配导致歧视性限制等出现即判受影响范围不通过。可记录有明确边界的受限使用,但不能据此声称该范围已通过;替代方式需实际验证且不增加不合理负担。
设计应用分别列“通过/不通过/未验证/不适用及依据”,逐项指定责任人与复测条件。
验证
- 用户侧:用户不会因为其路径用户少而被排除在修复之外。
- 实现侧:发布检查查看阻断项与证据,而非汇总平均分。
反例做不到:读屏注册失败被其他高分抵消;做过头:轻微非阻断缺陷被夸大为所有路径不可用。
AC6-4声明与反馈可核对
适用无障碍声明、帮助中心与反馈通道。
要求必须说明已测任务、支持环境、已知限制及求助路径。反馈本身须可访问,提供感官依赖互补的方式,并含不要求自由撰写技术描述的入口;记录确认、处置和进度查询。不得将反馈量少视为障碍少,也不以符合性声明替代真人测试。
设计应用用户可选择出错步骤并提交,或使用语音、回拨等方式求助。
验证
- 用户侧:能报告障碍并获知后续处理,不先通过不可访问验证码。
- 实现侧:抽查反馈能进入缺陷流程,对外每个结论可追溯至测试记录。
反例做不到:反馈表本身不可提交;做过头:强迫用户披露诊断信息证明问题。
AC6-5受影响机制变化后重新验证
适用样式、语义、内容、流程、认证、第三方与平台行为变化。
要求必须按受影响任务重新检查,不能沿用已不适用的测试结论。复测至少覆盖变化本身及其焦点、语义、偏好和恢复连带影响;无需无差别重做所有测试。将真实阻断反馈转为可复现用例,注明环境和触发条件。
设计应用调整按钮样式后复测对比度、焦点和靶区;替换认证组件后重走完整登录。
验证
- 用户侧:修复确实解决日常组合中的障碍,未引入另一条路径的失败。
- 实现侧:核对变更影响、复测范围与未覆盖项;保存执行证据。
反例做不到:组件替换后仍引用过往通过结论;做过头:文案错字修正触发无关的全量研究。
AC7 服务路径可接续
用户卡住时仍有可到达、可交接、可验证的服务出路。
AC7-1帮助入口与指引对应当前任务
适用帮助、教程、术语解释与操作指引。
要求重复出现的帮助入口必须保持相对顺序,指引与实际界面一致,指向用户可访问的位置。失效说明须修正或明确停止使用;不能让用户根据不存在的按钮完成流程。帮助应在任务中可达且不清空输入。
设计应用错误旁提供该步骤的帮助;教程支持文字和可访问媒体。
验证
- 用户侧:能按指引找到真实入口并返回原任务。
- 实现侧:抽查指引链接、控件名称、语言和操作路径。
反例做不到:说明要求点击已不存在的入口;做过头:每次使用都强制重看教程。
AC7-2基础服务提供可行替代渠道
适用政务、医疗预约、公用服务等基本服务及已承诺的人工渠道。
要求必须按关键任务列出可行的人工、电话、线下或其他替代方式,说明办理范围、开放条件与剩余障碍;无替代须如实记录并解决排除风险,不能标为“已覆盖”。电话不是听障用户的通用替代,线下不是行动受限者的通用替代。
设计应用按任务给出实际可办理渠道和无文字描述的求助方式。
验证
- 用户侧:不用被阻断的数字路径也能发起办理,不被不同渠道互相推回。
- 实现侧:实测渠道接通与承办范围,比较额外费用、等待和信息要求。
反例做不到:所谓替代渠道只让用户回到 App;做过头:所有在线操作都必须去线下确认。
AC7-3交接保留必要进度和责任
适用自助转人工、远程协助、跨入口继续与服务中断。
要求交接必须说明转给谁、带去哪些信息、接下来如何继续;传递范围最少必要,经用户知情选择。接收方确认接手前不宣称已完成交接;失败时保留可查询的请求与恢复入口,不能要求用户重复提供可安全复用的资料。
设计应用生成可访问的办理摘要,用户可删去不必要内容后交给客服。
验证
- 用户侧:能知道谁在处理、不必从头讲述且可停止共享。
- 实现侧:模拟接收失败、超时和重复接手,核对归属、数据与提交状态。
反例做不到:转人工后所有内容丢失;做过头:默认发送整个账号记录。
AC8 协助不替代本人
让帮助可见、可收回,让本人通过可访问方式作决定。
AC8-1协助会话可感知且可终止
适用产品提供的远程查看或代操作能力。
要求必须持续呈现协助方身份、能力范围和结束入口;本人可使用其输入方式终止,协助方不能隐藏入口或阻止终止。连接、进行、已终止须反映真实状态,不将断开画面等同权限已回收。产品无需识别现实中旁观的人。
设计应用会话栏可被读屏定位,结束后有回执。
验证
- 用户侧:不依靠协助方同意即可结束会话。
- 实现侧:检查控制消息和服务端会话状态,断网时限制协助继续操作。
反例做不到:关闭窗口后对方仍有控制权;做过头:没有远程功能也要求摄像头识别旁人。
AC8-2权限按任务授予并真实回收
适用远程协助、代填、家庭协作和子账号。
要求默认无代操作权限;授权绑定协助人、对象、操作和期限,不自动包含支付、授权、账号安全或导出。结束、到期、撤回时阻止后续操作;已经提交的动作说明结果与可补救范围。共用设备不等于共享全部权限,不能靠共享密码实现协助。
设计应用仅授予当前申请的填写权限,提交仍回本人确认。
验证
- 用户侧:能看懂谁可以做什么,并随时收回。
- 实现侧:核对服务端权限、在途请求和撤权竞态,防止仅关闭前端按钮。
反例做不到:一次协助留下常驻权限;做过头:每填一个普通字段都重复授权。
AC8-3本人决定有可访问的表达方式
适用付款、签署、授权、账号注销和关键身份资料修改。
要求这些决定必须由本人以可归因的方式表达,不能仅凭协助方声称同意。允许开关、语音或其他辅助输入,不把“本人决定”等同本人能亲手点击。未确认时不执行;法定代理适用独立授权核验和真实身份记录,不能伪装成本人操作。
设计应用协助方代填后,本人用自己的可访问控制方式确认清晰摘要。
验证
- 用户侧:无需独立完成所有动作也能表达或拒绝决定。
- 实现侧:核对决定主体、授权来源、操作主体和回执,不以操作者设备替代意愿证据。
反例做不到:子女代点就记为本人确认;做过头:只认可手指点击,拒绝开关输入。
AC8-4协助只开放必要信息
适用远程共享、协助表单与客服交接。
要求与任务无关的敏感信息默认隐藏,单项开放须本人当次选择。密码、验证码及认证秘密不向协助方展示;允许用户自己的辅助技术和密码管理器正常处理认证,不能为遮蔽协助方而同时阻断本人读屏。
设计应用共享视图遮蔽余额与凭证,本人本地安全输入可操作。
验证
- 用户侧:协助方能帮忙但不能看到不相关信息,本人仍能完成认证。
- 实现侧:分别检查本人呈现、远端传输、日志和录屏,而非只加视觉马赛克。
反例做不到:画面遮了但 DOM 或网络仍泄露;做过头:将本人输入也从所有辅助技术隐藏。
AC8-5行为可查且不混淆主体
适用代操作回执、记录与争议查询。
要求必须记录实际操作人、决定人、对象、时间与结果;本人可独立查询,协助方不能删改。公开保留范围并最少化数据,不默认完整录屏;共享账号场景不得将无法识别的操作者标为已核实的本人。
设计应用显示“协助方填写,本人确认,申请已提交”。
验证
- 用户侧:本人能事后核对发生了什么和如何求助。
- 实现侧:核对记录与实际请求关联、访问权限及敏感字段脱敏。
反例做不到:记录只对协助方可见;做过头:为留痕记录全部密码输入和家庭对话。
AC9 承诺取得清楚
不以认知或操作障碍换取用户并未打算作出的承诺。
AC9-1不使用诱导和伪装
适用注册、营销、订阅、推广与系统提示。
要求不得用虚假倒计时、恐惧文案、预勾选增购、伪装关闭或反复纠缠取得同意;第三方内容须有可感知的来源标识,不能冒充系统提示。真实时限可说明但不得伪造重置。
设计应用拒绝和关闭可发现且实际生效,广告标识可被读屏读到。
验证
- 用户侧:能准确区分产品告知、第三方内容和推广。
- 实现侧:逐条审查关键转化路径、默认值、点击区域和关闭结果。
反例做不到:点关闭却打开购买页;做过头:真实时限也不告知使用户错过办理。
AC9-2费用与授权事实在确认前可得
适用付款、续订、权限与持续安排。
要求必须在确认步骤直接呈现金额、对象,以及适用的周期、后续价格、扣款时间和取消方式;一次性操作不填虚构周期。授权须说明主体、范围、期限、转授和撤回。允许缩放后的单向滚动,不以“一屏放下”缩小文字;信息缺失时不提供可执行确认。
设计应用确认页同时呈现优惠期和后续价格;必要字段未取得时说明并停在预览。
验证
- 用户侧:能说明将向谁支付多少、持续多久以及如何取消。
- 实现侧:检查摘要与真实提交参数一致,长内容和大字号下仍可访问。
反例做不到:只突出首月价格;做过头:把整份协议塞进每次确认。
AC9-3取消与拒绝不被人为加难
适用退订、解绑、撤权、拒绝和注销。
要求不得隐藏入口、强迫解释、反复挽留或人为增加步骤;比较发现、理解、操作和等待的总负担,不仅数点击。确有结算或身份核验需求时说明理由、时间与进度。取消未来安排与撤销既有结果分别说明;未表达选择不构成新增同意。
设计应用取消入口与管理订阅同处,可跳过一次可选说明。
验证
- 用户侧:无需关闭无障碍设置或必须打电话才能取消线上开通服务。
- 实现侧:用同一辅助输入走开通与取消,核对实际生效和待处理状态。
反例做不到:开通在线一键,退订只能听语音菜单;做过头:为追求相同步数删掉必要的资金核验。
AC9-4浏览和自动推进不产生新承诺
适用页面访问、焦点、选项变化、倒计时与自动流程。
要求浏览、滚动、聚焦、停留或关闭不得触发付款、授权或订阅。输入变化不意外改变上下文,必要的自动变化事前告知;会形成新承诺的步骤需明确动作。有效授权范围内的自动履行可继续,超范围或撤回后必须停止并核对未完成事项。
设计应用上传完成可显示结果,不能自动勾选并提交下一项服务。
验证
- 用户侧:能阅读所有选项而不担心意外执行。
- 实现侧:测试 onfocus、onchange、定时器与重试事件,不以浏览记录充当同意。
反例做不到:停留十秒视为接受条款;做过头:已授权周期任务每次执行都重复索取相同确认。
AC9-5持续安排可单独确认与解除
适用订阅、代扣、免密、生物特征绑定及持续授权。
要求必须让用户辨认每项持续后果、主动选择并独立解除,不与普通浏览或一次性交易捆绑。确认质量取决于事实和意图,不以机械增加点击次数代替。范围、对象、期限或费用超出已确认条件时重新取得决定,不能继承更宽权限。
设计应用付款默认不勾选代扣;开通前有完整摘要和明确动作。
验证
- 用户侧:知道一次性付款与持续安排的差别,能单独关闭后者。
- 实现侧:核对实际授权边界、取消生效点和后续调用拦截。
反例做不到:付款顺带开免密;做过头:清楚的一次确认被改成连续五次确认。
AC9-6真实性可核对且结论不夸大
适用产品发送的消息、通知、来电与扣款。
要求必须提供可独立到达的官方查询或支持入口;核对结果区分已确认来自本产品、未查到与无法判断。来源属实不等于内容或交易无风险,不能宣称覆盖外部欺诈。高后果核验须采用实际可用的独立验证依据,同时保证可访问的恢复路径。
设计应用从 App 内消息记录核对通知,不要求点击可疑链接。
验证
- 用户侧:能自己找到核对入口并理解未知结果。
- 实现侧:核对来源查询的覆盖范围、数据时效、冒用场景和恢复方式。
反例做不到:未查到就宣称绝对安全;做过头:任何普通提示都要求用户多设备认证。
4. 术语
| 术语 | 本文含义 | 不应混淆 |
|---|---|---|
| 等价路径 | 在目标情境中取得相同必要信息、完成相同任务的另一方式 | 两种形式同时存在不证明等价;等价不要求体验逐项相同 |
| 可访问名称 | 辅助技术用来识别元素用途的名称 | 不只是屏幕上的文字,也不是完整帮助说明 |
| 输入焦点 | 当前接收键盘等输入的对象 | 与控件内活动项、读屏阅读位置可以不同 |
| 状态消息 | 不改变上下文但告知结果、进度或错误的消息 | 不是每个 DOM 更新都要播报 |
| 关键任务 | 其失败使用户不能取得产品主要服务的完整流程 | 不只测试首屏和正常成功路径 |
| 偏好 | 用户已表达的显示或操作选择 | 默认回退不是用户选择,检测环境不等于获知诊断 |
| 行为参数 | 产品可以复用的行为决策 | 不是实际权限、运行结果或验收结论 |
| 本人决定 | 能归因于本人意愿的决定 | 不要求本人独立完成所有物理动作 |
| 受限使用 | 明确列出尚不支持情境的暂定服务范围 | 不将被排除用户或失败路径计入通过 |
附录 A:可测量底线与适用边界
以下是选定判据的实施摘要,完整成功准则与例外以链接的标准原文为准。标为“产品默认”的数值是设计起点,不是新的符合性等级;达到数值也须验证完整任务。
| 检查项 | 判据与适用范围 | 依据 |
|---|---|---|
| Web 普通文本 | 前景与背景对比度至少 4.5:1;大文本至少 3:1。大文本为至少 18 pt,或至少 14 pt 且加粗;不是任意 18 CSS px。装饰、标志及非活动内容等例外逐项核对 | SC 1.4.3,AA |
| Web 非文本 | 识别活动控件、状态和有意义图形所需部分,对相邻颜色至少 3:1;并非每个装饰边框都适用。用户代理决定且未修改的控件等例外单列 | SC 1.4.11,AA |
| 文字放大 | 除字幕与图像文字的标准例外外,文字放大至 200% 不丢内容或功能,中间档位同样检查 | SC 1.4.4,AA |
| 重排 | 横排内容在 320 CSS px 宽度、竖排内容在 256 CSS px 高度下,不要求二维滚动且不丢信息;确需二维关系的表格、地图等可局部例外。1280 CSS px 宽视口放大 400% 是一种测试方式 | SC 1.4.10,AA |
| 文字间距覆盖 | 用户将行高设为字号的 1.5 倍、段后距 2 倍、字距 0.12 倍、词距 0.16 倍时不丢内容或功能。仅测试该语言及书写体系适用的属性;这是覆盖后的容纳测试,不要求默认排版全部取这些值 | SC 1.4.12,AA |
| Web 指针靶区 | 最少 24×24 CSS px,或满足标准规定的间距、同页等价控件、行内、用户代理、必要性例外。间距例外按以不足尺寸靶区为中心的直径 24 CSS px 圆与相邻靶区/对应圆不相交判定,不是统一留 24 px 间隔 | SC 2.5.8,AA |
| 触摸设计起点 | 本文 Web 常用触摸控件默认 44×44 CSS px;这是产品默认而非 AA 强制值。Android 官方建议至少 48×48 dp;不能把 dp、pt、物理像素和 CSS px 等同 | Android 官方指南 |
| 焦点外观与遮挡 | AA 要求键盘焦点可见,且不完全被作者内容遮挡;本规范要求必要操作目标完整可见。2 CSS px 周长等效面积及聚焦前后同像素 3:1 对比属于 AAA 的焦点外观判据,不能只用“outline 2px”宣称满足 | SC 2.4.11,AA、SC 2.4.13,AAA |
| 时限的延长方式 | 采用“警告后延长”路径时,给至少 20 秒以简单动作延长,且至少允许延长 10 次;关闭、事前广范围调整及实时/必要等例外是其他路径,不能把 20 秒当全流程统一超时 | SC 2.2.1,A |
| 闪烁 | 内容每秒不超过三次闪烁,或满足通用闪烁和红色闪烁阈值。两者是标准允许的不同判定方式;本产品默认不使用闪烁。素材面积、亮度与红色条件须纳入测试,不只数动画帧 | SC 2.3.1,A |
附录 B:联合验收与交付
最小设计记录
一项任务保留一份记录即可,不要求为每条规则另建文档:
| 记录项 | 内容 |
|---|---|
| 任务与结果 | 起点、终点、成功条件、失败或中断后继续方式 |
| 使用情境 | 输入方式、感官条件、语言、辅助技术、设备与网络 |
| 设计决定 | 信息等价、焦点、语义、时间、偏好、后果与协助边界 |
| 配置 | 使用的 Token、解析值、来源、单位、生效时点与依赖 |
| 证据 | 规则检查、辅助技术操作、真实用户任务记录 |
| 结论 | 通过、不通过、未验证、不适用依据,以及问题责任人与复测条件 |
故障注入清单
| 情境 | 必须观察的结果 | 主要规则 |
|---|---|---|
| 关闭声音、不看图、去掉颜色差异 | 必要信息和任务含义不丢失 | AC1-1 至 AC1-6 |
| 只用键盘,再只用单指免拖拽 | 两条路径分别走完;没有焦点陷阱 | AC2-1、AC2-4、AC2-6 |
| 固定页脚、软键盘、放大文字同时出现 | 焦点、错误、确认与取消仍可达 | AC2-2、AC5-2 |
| 开启减少动效与强制配色 | 运动受抑制,状态、边界、焦点仍可见 | AC4-6、AC5-1 |
| 流式更新中阅读较早内容 | 不抢位置、不逐字打断、最终结果可查 | AC3-3、AC3-6 |
| 密码管理器、验证码粘贴与账号恢复 | 每个认证阶段都有可完成路径 | AC4-3 |
| 认证过期、断网、重复点击提交 | 输入保全、结果核对、防重复产生后果 | AC4-1、AC4-5、AC4-8 |
| 协助中撤权且有请求在途 | 未提交操作停止,已提交结果如实显示 | AC8-1 至 AC8-5 |
| 误触、拒绝、取消、求助 | 不新增承诺,能改错或到达有效帮助 | AC4-7、AC7、AC9 |
| 第三方组件失效或关闭辅助层 | 基础任务仍可完成,或明确阻断并给有效替代 | AC3-7、AC6-3 |
检查不仅找“做不到”,也找“做过头”:重复播报、强制多重确认、自动改写偏好、为帮助而过量采集,以及为了单一数字阈值破坏整个任务。
证据边界
本文件是设计与验收要求,未对具体产品开展辅助技术实测或用户研究。样本数量、字幕质量目标、播报聚合窗口、草稿期限与服务响应时限须由项目依据任务风险和目标使用情境确定,并说明测量方法;不以无出处的统一数值代替验证。完整来源及标准、解释性资料和产品设计选择的区别见 参考来源。
实施验收场景
以下场景把已有条款转成可复核的验收输入,不另设通用性能阈值。按产品适用能力选取,补充真实设备、用户、输入序列和证据;不适用记录原因,未执行不得记为通过。
| 条款 | 测试输入与异常 | 预期行为与失败判据 |
|---|---|---|
| AC2-2 | 浮层出现后滚动页面并切换高对比模式。 | 焦点可辨且可操作,关闭浮层返回有意义的位置。 |
| AC2-6 | 不用鼠标完成拖放等价任务,再不用拖动用单指完成。 | 分别验证两类替代;不可只验证其中一种。 |
| AC1-6 | 图表过滤改变但替代描述更新失败。 | 不展示旧描述为当前事实,说明失败并提供可访问的有效数据。 |
每个场景分别核对配置的有效值、执行记录与用户可理解的结果。保留版本、目标、事件时点、失败范围和恢复结果;外部结果未知不填作成功或失败。
本字典把无障碍设计决定表达为可复用配置,包含 10 类、41 个字段。表现值控制颜色、尺寸与时长;行为参数控制焦点、播报、恢复与协助。字段有值不代表能力已经实现,也不代表任务已经通过验收。
要求与判定见 设计规范,标准依据见 参考来源。所有字段以 a11y. 开头,表内字段与类别前缀拼接,例如 a11y.visual.focus.width。
1. 配置模型
哪些东西属于 Token
| 对象 | 保存内容 | 示例 |
|---|---|---|
| 表现值 | 可复用的颜色、尺寸、时间、比例或引用 | 焦点宽度、正文行高 |
| 行为参数 | 产品支持的行为和可选择策略 | 播报优先级、草稿期限 |
| 实现契约 | 控件、事件、任务和数据字段的定义 | 删除后焦点落点解析规则 |
| 运行事实 | 本次实际值、身份、状态与结果 | 系统偏好读取失败、本次授权、当前焦点 |
| 验收记录 | 执行证据和范围结论 | 读屏测试失败、参与者遇到的障碍 |
后面三类不伪装成视觉 Token 或“已完成”开关。配置可引用契约标识;实际授权、私人数据和测试结果不放入共享 Token 包。行为字段采用本字典的应用配置语义,不宣称可直接作为标准视觉 Token 交换文件导入所有工具。
级别与解析状态
- 必选:基础决定必须解析完整,可继承产品预设,不要求用户填写。
- 条件:具备相应能力就必须明确;无该能力须记不适用及依据。
- 可选:已有可用的默认或仅在差异化需求时配置;采用后仍须满足依赖。
| 状态 | 处理 |
|---|---|
| 有显式合法值 | 使用该值,仍执行底线校验 |
| 未配置但有默认 | 从表中默认或明确的产品预设继承,保留来源 |
| 未配置且无默认 | 适用项为配置错误,不能宣称该能力可用;修复前保留已验证的基础路径 |
| 不适用 | 条件不成立且记录依据;不是 0、false 或空集合 |
| 合法关闭值 | 仅关闭该字段控制的可选行为,不解除基础义务 |
| 空集合 | 仅在字段允许时成立,例如协助范围为空表示尚无可授予动作 |
| 未知 | 用于运行事实,不是普通配置值;按属性回退并保留未知原因 |
| 非法值或失效引用 | 拒绝配置,报告路径与原因;不得静默按最宽松值执行 |
类型与单位
Dimension 为 {"value": 数值, "unit": 单位};Duration 同形,单位限定 ms/s/min/h/d。时长可换算后比较,CSS px、dp、pt 和 sp 不直接互换。颜色使用标准 sRGB 字符串或类型匹配的引用;引用须解析到存在的、唯一的对象并禁止循环。
集合无重复成员,不自动全选。记录数组的字段名、枚举与条件必需项按各表约束。实现引用以注册表中的稳定 ID 解析,不能写“按实际情况”。表中默认数值仅在声明的平台生效;其他平台须提供适合的预设,不能直接继承 Web 单位。
谁决定、何时生效
- 先确定平台与能力,读取产品基础预设,再应用被允许的任务配置。
- 对可由用户选择的呈现属性,解析“本次显式选择 → 本产品持久选择 → 系统选择 → 产品回退”。只有用户实际表达才能占用前两层;策略不能冒充用户。
- 平台强制配色、浏览器缩放和其他不可由产品覆盖的机制始终保留;最低对比度、可达路径、真实权限与必要通知不因配置层级而失效。
- 解析单位、引用和依赖后再检查固定底线。偏好变化在当前界面生效且不丢输入;焦点结构改变先保留或转移到有意义的位置。缩短正在运行的业务期限不能静默生效;实际授权仍以当次批准为准。
每个解析值保留 value / source / scope / applies_when / effective_at / dependencies。证据另以引用关联;“系统未知而采用 reduce”必须记录 source 为 fallback,不能写成 user。
2. 字段字典
| 类别 | 前缀 | 字段数 |
|---|---|---|
| 视觉与动作表现 | a11y.visual | 10 |
| 输入与焦点 | a11y.operation | 5 |
| 语义与播报 | a11y.semantics | 3 |
| 媒体与等价内容 | a11y.media | 3 |
| 时间与恢复 | a11y.cognition | 6 |
| 偏好与适配 | a11y.preference | 4 |
| 帮助与交接 | a11y.service | 2 |
| 协助边界 | a11y.assist | 3 |
| 后果与回执 | a11y.integrity | 2 |
| 验证范围 | a11y.assurance | 3 |
2.1 视觉与动作表现
前缀:a11y.visual
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 条件 | 颜色配对 | color.pairs | 颜色对数组:{id, foreground, background, usage, state};颜色为合法 sRGB 值或可解析的颜色引用。无通用默认色。 | 呈现有意义的视觉内容时必填,usage 为 text/large_text/non_text;相同用途在各状态逐对测试,透明色按合成结果计算。AC1-5。 |
| 条件 | 对比度配置 | contrast.profile | 枚举:web_aa/web_enhanced/platform_ref。Web 默认 web_aa;platform_ref 必须另有平台依据记录。 | web_aa 的文字/大文本/非文本阈值分别为 4.5/3/3;web_enhanced 为 7/4.5/3,后者是局部增强配置,不宣称整站 AAA。字体是否为大文本须依据实际尺寸和字重判定。AC1-5。 |
| 条件 | 焦点轮廓宽度 | focus.width | Dimension,单位 CSS px/dp/pt 按平台声明,值 > 0。Web 默认 {value:2, unit:"CSS px"},为产品起点。 | 存在键盘焦点时必填;不能因 2px 就推定满足焦点面积、对比度或可见性。平台原生焦点可用已核实的 token 引用。AC2-2。 |
| 可选 | 焦点轮廓偏移 | focus.offset | Dimension,单位同 focus.width,值 ≥ 0;Web 默认 2 CSS px。 | 自制轮廓时使用;容器不得裁切外偏移,内轮廓实现另做可见性验证。AC2-2。 |
| 条件 | 焦点颜色 | focus.colors | 对象:{light, dark, forced};前两项为颜色或引用,forced 为平台系统色引用。无通用默认值。 | 自制焦点样式时必填;单色不能覆盖复杂背景时采用双层轮廓并逐背景验证。强制配色不能只依赖 box-shadow。AC2-2、AC5-1。 |
| 条件 | 命中区域最小值 | target.min | 对象:{width:Dimension, height:Dimension}。Web 默认两轴 24 CSS px;Android 触摸预设两轴 48 dp。 | 存在指针输入时必填。小于 Web 底线只在逐项登记并实测标准例外后接受,不通过全局下调规避。热区不得重叠。AC2-7。 |
| 可选 | 常用触摸目标值 | target.preferred | 对象同 target.min;Web 产品默认两轴 44 CSS px,Android 触摸预设两轴 48 dp;两轴均不得小于 target.min。 | 常用触摸操作推荐使用;平台单位必须相同才能比较。此项不是所有平台的强制门槛。AC2-7。 |
| 可选 | 正文起始字号 | text.base_size | 可缩放 Dimension 或平台文本样式引用。Web 产品起点 1 rem;Android 用 sp/文本样式;iOS 使用平台可缩放文本样式。 | 不定义通用最小字号;不锁定根字号、不限制系统缩放,不将标题或图片文字当正文替代。AC5-2。 |
| 可选 | 正文行高 | text.line_height | Number,值 > 0,无单位,表示字号倍数;产品起点 1.5。 | 允许按字体与语言调整;不是 WCAG 强制默认值,间距覆盖后的容纳仍必须验证。AC5-2。 |
| 可选 | 常规过渡时长 | motion.duration | Duration,值 ≥ 0,单位 ms;产品起点 160 ms。 | 仅用于普通非必要过渡。减少动效解析后以静态/淡变替代,不统一压缩为极快运动;不控制状态消息 TTL 或业务时限。AC4-6。 |
2.2 输入与焦点
前缀:a11y.operation
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 支持的输入路径 | paths | 非空枚举集合:keyboard/switch/voice/pointer/touch/platform_navigation。Web 必含 keyboard,其他无默认;按任务声明覆盖。 | 清单是支持承诺,不能代替实现;只配置 voice 不能自动推出键盘或开关路径成立。AC2-1。 |
| 条件 | 结构变化落点 | focus.landing | 非空记录数组:{event, target_ref, fallback_ref};event 为 open_modal/close_modal/delete_current/step_change/page_change。无默认。 | 有相应结构变化时必填对应事件;ref 指向当前任务中可解析的控件或定位规则,fallback 必须可达。后台更新不得借此抢焦点。AC2-4、AC2-5。 |
| 条件 | 焦点限制范围 | focus.scope | 枚举:non_modal/modal;默认 non_modal。 | 出现模态时必须显式 modal,并验证背景不可交互、可访问的退出和返回;不能只靠枚举生效。AC2-4。 |
| 条件 | 复杂动作替代 | gesture.alternatives | 非空记录数组:{action, keyboard_ref, single_pointer_ref};动作和两类入口引用均不能为空。无默认。 | 存在拖拽或复杂手势时填写;同一入口可以承担两类,但须分别验证。必要性例外放入例外记录,不填虚构入口。AC2-6。 |
| 条件 | 字符快捷键策略 | shortcut.mode | 枚举:disabled/remappable/focused_only;默认 disabled。 | 有字符快捷键时必填;remappable 提供关闭或含非字符键的映射,focused_only 限对应控件。不能拦截系统和辅助技术快捷键。AC2-8。 |
2.3 语义与播报
前缀:a11y.semantics
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 名称生成方式 | name.policy | 枚举:visible_exact/visible_with_context;默认 visible_with_context。 | 有可见文字时包含其词序,重复操作可加对象上下文;无可见文字的图标仍需用途名称。AC3-2。 |
| 条件 | 状态通知路由 | announcement.routes | 非空记录数组:{event, priority, surface_ref};priority 为 polite/assertive/query_only。无默认。 | 存在异步或状态消息时必填;关键结果不能 query_only,assertive 仅限需立即处理;surface_ref 为持久位置。错误和最终结果不可被节流丢弃。AC3-3、AC4-7。 |
| 可选 | 进度聚合窗口 | announcement.window | Duration,值 > 0,单位 ms;无通用默认。 | 仅聚合非关键的高频进度,按内容速率及辅助技术实测确定;不延迟紧急错误、不截断最终结果。AC3-3、AC3-6。 |
2.4 媒体与等价内容
前缀:a11y.media
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 条件 | 字幕显示偏好 | captions.default | 枚举:system/on/off;默认 system。 | 存在字幕轨时必填;off 只控制初始显示,不能删除必需字幕或隐藏开启入口。系统未知时采用产品默认 on,记录为回退而非用户选择。AC1-3、AC5-1。 |
| 条件 | 文字稿呈现方式 | transcript.mode | 枚举:inline/adjacent_link。无默认。 | 有需提供文字稿的内容时必填;链接可直接获取可访问文本,不能只给截图或把文字稿当必需字幕的替代。AC1-2、AC1-3。 |
| 条件 | 视觉信息的声音表达 | description.mode | 枚举:integrated_audio/selectable_track/described_media。无默认。 | 录播视觉信息未在音轨说明且适用描述要求时必填;须验证信息已表达,模式名不构成证据。AC1-3。 |
2.5 时间与恢复
前缀:a11y.cognition
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 条件 | 时限处理 | timeouts | 记录数组:{kind, duration, starts_on, adjustment, warning, extension, max_extensions, expires_to}。kind 为 auth/business;adjustment 为 off/adjustable/extend/exception;duration 等字段按第 3 节条件校验。无默认。 | 存在时限时必填;无时限允许空数组并说明。extend 必有至少 20 s 的 warning、正 extension、至少 10 的 max_extensions;其他路径见解析契约。认证与业务各自登记。AC4-1。 |
| 条件 | 草稿保留期限 | draft.retention | Duration,值 > 0,单位 s/min/h/d,或枚举 session。无通用默认。 | 有长表单/多步输入时必填,起算点为最后一次显式修改;session 表示会话结束时清除,须在界面告知,不能对宣称跨会话恢复的任务使用。AC4-8。 |
| 条件 | 可保留内容 | draft.fields | 非空字段标识集合;无默认;只能含任务中真实存在、允许保存的字段。 | 与 draft.retention 同时配置,认证秘密禁止纳入。未列字段不承诺恢复,敏感字段不保留须告知并提供重入。AC4-1、AC4-8。 |
| 条件 | 可访问认证路径 | auth.paths | 非空枚举集合:password_manager/paste_autofill/passkey/accessible_device_confirmation/assisted_recovery。无默认。 | 存在认证时必填,每阶段都要有实际可走通的方法;只列 assisted_recovery 不足以证明常规认证可用,不得跳过身份核验。AC4-3。 |
| 条件 | 持久反馈位置 | feedback.surface | 枚举:inline_result/task_history/notification_center;无默认。 | 产生任务结果时必填;记录主体、查询权限及保留策略在实现契约中说明,不将 Toast 当作唯一结果。AC3-3、AC4-7。 |
| 可选 | 预演方式 | rehearsal.mode | 枚举:none/preview/sandbox;默认 none。 | 高后果任务应选择 preview 或 sandbox,none 须说明替代保护。预演无真实后果且不自动转为执行。AC4-9。 |
2.6 偏好与适配
前缀:a11y.preference
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 动效偏好 | motion.mode | 枚举:system/reduce/full;默认 system。 | full 只表示产品内显式选择,不覆盖平台不可覆盖的限制;系统未知回退 reduce,不伪造用户选择。无论哪档都满足闪烁与自动活动控制。AC4-6、AC5-1。 |
| 必选 | 对比呈现偏好 | contrast.mode | 枚举:system/standard/enhanced;默认 system。 | 未知回退符合已采用 contrast.profile 的 standard;该偏好不得放宽产品已选的对比度目标。平台强制配色优先生效,enhanced 不等于反转颜色,不等于整站 AAA。AC1-5、AC5-1。 |
| 必选 | 产品内文字缩放 | text.scale | 枚举 system 或 Number,范围 1 至 2;默认 system。数值表示用户在产品内选择的倍率,不是平台缩放上限。 | 数值档只作用于产品内文字控制,不限制系统/浏览器进一步放大;不得与平台倍率重复相乘造成意外双重放大。AC5-1、AC5-2。 |
| 必选 | 偏好保存范围 | persistence | 枚举:session/device/account;默认 device。 | 说明作用主体;共用设备不自动共享账号偏好。账号持久化需明确选择与清除入口;session 不回写长期设置。AC5-3。 |
2.7 帮助与交接
前缀:a11y.service
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 可到达的帮助渠道 | help.channels | 非空记录数组:{kind, entry_ref, needs_login, available_when};kind 为 contextual_request/text/voice/callback/in_person。无默认。 | 至少一条一般求助 needs_login=false,且不要求技术叙述;渠道集合满足声明用户的感官条件。私人信息服务另做认证。AC4-9、AC6-4、AC7。 |
| 条件 | 交接信息范围 | handoff.fields | 字段标识集合;默认空集合。 | 有人工或协助交接时必填;只允许用户已知的必要任务字段,实际传输仍须核对当次选择和接收方。空集合表示不转交数据,不表示没有帮助服务。AC7-3、AC8-4。 |
2.8 协助边界
前缀:a11y.assist
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 支持的协助能力 | mode | 枚举:none/view/operate;默认 none。 | view 与 operate 都须实现身份提示、终止、隐私遮蔽和真实回收;none 不等于用户不需要帮助。AC8-1。 |
| 条件 | 可授予的协助操作 | scope | 操作枚举集合:view_task/fill_fields/navigate/submit_non_reserved。默认空集合。 | assist.mode 非 none 时填写;view 模式只能含 view_task。是产品允许授予的上限,不是实际授权;付款、签署、授权等本人决定不可凭此放行。AC8-2、AC8-3。 |
| 条件 | 协助最长时长 | ttl | 正 Duration,或枚举 task;默认 task。 | assist.mode 非 none 时填写;起算为本人批准时,最迟在任务结束、撤回、断开或到期时失效,不静默续期。需后台机制执行。AC8-1、AC8-2。 |
2.9 后果与回执
前缀:a11y.integrity
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 条件 | 确认机制 | confirmation.policy | 记录数组:{action, impact, reversibility, mechanism};impact 为 low/high;reversibility 为 immediate/limited/manual/none;mechanism 为 undo/review/explicit_confirmation。无默认。 | 存在会改变外部状态的操作时必填;组合需匹配后果。高影响或持续安排不能仅凭可撤销就省略必要事实与明确决定;未知事实不落为 low。AC4-7、AC9-2 至 AC9-5。 |
| 条件 | 操作回执位置 | receipt.surface | 枚举:inline_result/task_history;无默认。 | 存在提交、付款、授权或协助操作时必填;按实际事实说明未执行、已提交、已完成或待核实,保留查询入口。AC8-5、AC9-2。 |
2.10 验证范围
前缀:a11y.assurance
| 级别 | 设计决定 | 字段 | 类型、合法取值与默认 | 适用条件、依赖与约束 |
|---|---|---|---|---|
| 必选 | 采用的判定目标 | profile | 枚举:web_aa/platform/mixed;Web 默认 web_aa,其他无默认。 | platform 与 mixed 须在依据登记中说明平台和适用判据;mixed 不能用原生结果替代 Web 结果。选择目标不产生通过结论。AC6-1。 |
| 必选 | 关键任务范围 | tasks | 非空任务标识集合;无默认。 | 任务标识关联起点、终点和成功条件;登录、修改、恢复、取消与求助按实际能力纳入。引用任务定义,不把实测结果存为 Token。AC6-2。 |
| 必选 | 目标验证环境 | environments | 非空环境标识集合;无默认。 | 环境记录含平台、浏览器、辅助技术、输入、语言、设置及测试时点的可复现信息;未测组合仍是未验证。AC6-2、AC6-4。 |
3. 依赖与固定底线
| 能力或配置 | 必须同时成立 | 不成立时 |
|---|---|---|
| 任何完整任务 | operation.paths、语义、帮助、任务范围和环境范围明确 | 不接受“工具通过”或字段齐全作为任务通过证据 |
| 自制视觉控件 | 颜色对、焦点样式、目标尺寸适用项齐备 | 保留原生可用样式或修复;不能移除焦点补丁后继续发布缺陷 |
| 拖拽或复杂手势 | gesture.alternatives 的两类入口真实可用 | 停用有问题的增强交互,保留可用的基础操作 |
| 模态 | focus.scope=modal、开启与关闭落点、背景隔离、退出控制 | 不能把仅显示遮罩算模态已实现 |
| 异步与流式内容 | 状态路由、持久位置;高频进度有经过验证的聚合策略 | 保留关键结果通知;不得因缺少节流配置而静默丢消息 |
| 认证与限时流程 | 每阶段认证路径、时限及到期处置完整 | 不开放不可完成的必经认证;过期凭证不能继续使用 |
| 多步输入与恢复 | 草稿字段、期限、保存机制与恢复入口一致 | 不宣称已自动保存;修复或提供明确可用的替代 |
| 远程协助 | mode、scope、ttl、终止、遮蔽、实际授权和回执齐备 | 未获实际授权不连接/不操作;不能用产品预设代替本人批准 |
| 外部提交或持续安排 | 确认政策、完整事实、当次决定、查询回执和停止机制 | 保留草稿或预览,事实未知不按成功处理 |
| 产品作可用性声明 | 规则检查、辅助技术操作、真人任务与范围局限分别有证据 | 未测范围写未验证,已知失败不能通过缩小统计分母隐藏 |
以下要求不能配置关闭:信息与任务的等价路径、正确语义、键盘焦点可见与无陷阱、复杂动作的适用替代、最低视觉底线、必要结果可获取、真实授权、不诱导承诺、偏好不被劫持、独立帮助与范围真实的验收。禁用清单和标准成功准则是约束,不做成可以少选几项的 Token 集合。
时限记录的条件校验
cognition.timeouts 是运行策略,不是统一的“会话秒数”:
off:不施加该时限;duration/warning/extension/max_extensions均省略,不能填 0 表示禁用。adjustable:duration为初值,另给adjustment_range(min/max正时长),允许事前在至少为默认值十倍的范围内调整,按 SC 2.2.1 的适用条件验证;不填延长警告字段。extend:duration、warning、extension、max_extensions均必填;警告在到期前发出,响应窗口不小于warning,至少给 20 秒且至少可延长 10 次。实际时长要容纳警告窗口,不能出现 10 秒时限却填 20 秒警告的无效组合。exception:duration必填,额外的exception_ref必须指向具体标准例外与必要性证据;不能把缺少接口能力写成例外。仍说明到期后如何保存与恢复允许的内容。
各档均须有 kind / starts_on / adjustment / expires_to;expires_to 为 reauthenticate/stop_and_save/end_without_sensitive_draft。认证到期不得继续持有权限;end_without_sensitive_draft 不能用来删除仍可安全保留的非敏感工作。草稿期限由独立字段控制。
4. 表单任务的配置与实现示例
以下是一个 Web 表单的局部配置片段,不是全产品预设,也不构成可用性证明。省略的适用必需项必须由产品预设解析;未用到的媒体、手势、远程协助等能力在适用性记录中写明。示例中的 5 分钟和 1 天是展示语义的产品选择,须根据任务实测调整。
{
"a11y.visual.contrast.profile": "web_aa",
"a11y.visual.color.pairs": [
{"id": "body.light", "foreground": "#1F2937", "background": "#FFFFFF", "usage": "text", "state": "default"},
{"id": "body.dark", "foreground": "#F9FAFB", "background": "#111827", "usage": "text", "state": "default"}
],
"a11y.visual.focus.width": {"value": 2, "unit": "CSS px"},
"a11y.visual.focus.offset": {"value": 2, "unit": "CSS px"},
"a11y.visual.focus.colors": {"light": "#005FCC", "dark": "#FFDD00", "forced": "Highlight"},
"a11y.visual.target.min": {"width": {"value": 24, "unit": "CSS px"}, "height": {"value": 24, "unit": "CSS px"}},
"a11y.visual.target.preferred": {"width": {"value": 44, "unit": "CSS px"}, "height": {"value": 44, "unit": "CSS px"}},
"a11y.operation.paths": ["keyboard", "pointer", "touch"],
"a11y.semantics.name.policy": "visible_with_context",
"a11y.semantics.announcement.routes": [
{"event": "save_success", "priority": "polite", "surface_ref": "application.result"},
{"event": "save_failed", "priority": "polite", "surface_ref": "application.error_summary"}
],
"a11y.cognition.timeouts": [
{
"kind": "auth",
"duration": {"value": 5, "unit": "min"},
"starts_on": "authentication_succeeded",
"adjustment": "extend",
"warning": {"value": 30, "unit": "s"},
"extension": {"value": 5, "unit": "min"},
"max_extensions": 10,
"expires_to": "reauthenticate"
}
],
"a11y.cognition.draft.retention": {"value": 1, "unit": "d"},
"a11y.cognition.draft.fields": ["application.subject", "application.description"],
"a11y.cognition.auth.paths": ["password_manager", "paste_autofill"],
"a11y.cognition.feedback.surface": "inline_result",
"a11y.preference.motion.mode": "system",
"a11y.preference.contrast.mode": "system",
"a11y.preference.text.scale": "system",
"a11y.preference.persistence": "device",
"a11y.assist.mode": "none",
"a11y.assurance.profile": "web_aa",
"a11y.assurance.tasks": ["application.submit", "application.correct", "application.resume", "application.help"],
"a11y.assurance.environments": ["desktop.keyboard", "desktop.screen_reader", "mobile.screen_reader", "desktop.zoom"]
}
引用解析要求:application.result 和 application.error_summary 指向可访问的持久区域;任务与环境 ID 必须在项目注册表中存在。例中环境名只示意分类,真正记录须有可重现的设备、软件标识和设置,不能只有“已测读屏”。颜色对只覆盖所列正文状态,不证明全部控件、焦点和主题已经通过。
表现值的 Web 映射
以下 CSS 演示焦点、命中区和少动效的局部消费方式。只有绑定 .a11y-control 的控件使用该目标尺寸;行内链接等情境按适用判据处理。正常浅色与深色背景须分别匹配色值,复杂背景另做测试。
:root {
--a11y-focus-width: 2px;
--a11y-focus-offset: 2px;
--a11y-focus-color: #005fcc;
--a11y-target-preferred: 44px;
--a11y-motion-duration: 160ms;
}
[data-theme="dark"] { --a11y-focus-color: #ffdd00; }
.a11y-control {
min-inline-size: var(--a11y-target-preferred);
min-block-size: var(--a11y-target-preferred);
}
.a11y-control:focus-visible {
outline: var(--a11y-focus-width) solid var(--a11y-focus-color);
outline-offset: var(--a11y-focus-offset);
}
.optional-motion { transition-duration: var(--a11y-motion-duration); }
[data-motion="reduce"] .optional-motion {
animation: none;
transition: none;
transform: none;
}
@media (prefers-reduced-motion: reduce) {
:root:not([data-motion="full"]) .optional-motion {
animation: none;
transition: none;
transform: none;
}
}
@media (forced-colors: active) {
.a11y-control {
border: 1px solid ButtonText;
forced-color-adjust: auto;
}
.a11y-control:focus-visible { outline-color: Highlight; }
}
data-motion 来自偏好解析结果;示例类只用于可去除的装饰运动,不能直接套在依靠 transform 定位的业务控件上。状态、错误和进度采用独立文本与语义表达,不依赖动画结束事件才出现。减少动效的 JavaScript 行为也需同步,CSS 片段不能控制所有运动。
5. 配置验收
必须拒绝的输入
| 错误例 | 拒绝原因与处理 |
|---|---|
target.min=16 CSS px 且无逐项例外 | Web 底线被全局放宽;恢复有效尺寸或验证具体例外 |
target.preferred 用 dp、target.min 用 CSS px | 不可直接比较;先选定平台并正确解析单位 |
announcement.routes 将错误设为 query_only | 关键结果不能只等用户主动找;设置合适通知与持久位置 |
auth.paths=[] 但登录是必经步骤 | 认证依赖缺失;必须实现可完成路径 |
assist.mode=operate、scope=[fill_fields],据此直接操作 | 配置仅是上限,缺少本人当次授权,不得执行 |
timeouts 为 extend 且 warning=5s | 不满足所采用延长路径;加足响应时间或采用其他有效路径 |
draft.fields 包含密码或验证码 | 认证秘密不得进入可恢复草稿 |
text.scale=2 被当作浏览器缩放上限 | 配置只控制产品内倍率,不能拦截用户进一步放大 |
系统读取失败后把 motion.mode 保存为用户选择 reduce | 混淆回退与偏好;保留 unknown 原因与 fallback 来源 |
用配置字段写 passed=true | 字典无此字段;运行证据和验收结论另行记录 |
从配置到证据
- 静态校验字段、枚举、单位、引用、范围和依赖;这是配置正确性检查。
- 在运行界面观察焦点、语义、内容、授权与状态是否与解析值一致;参数本身不能实现这些机制。
- 用真实辅助技术组合走正常、失败、中断、恢复和拒绝路径,记录实际输出。
- 由目标使用者验证任务能否完成及结果能否理解;不能由 JSON 合法、CSS 编译通过或自动工具零错误代替。
正文缩放、重排、文字间距覆盖、对比度、焦点遮挡和靶区的选定数值与例外见 设计规范附录 A。固定要求由标准和规范确定,项目只记录采用的目标及证据,不提供“关闭无障碍”的配置档。
配置交付与校验
焦点宽度有合法值不证明焦点实际可见。产品还需验证轮廓面积、前景背景、裁切、遮挡及强制配色;本示例只检查有限正尺寸与明确单位。平台单位不自动换算;实际任务测试和设计值校验分别记录。
随附的可执行样例只覆盖 a11y.visual.focus.width,其余字段按本字典逐项校验;未覆盖不等于不适用或已通过。样例是所选字段的格式正反例,不是可直接启用全部能力的产品预设。完整产品交付另外包含适用性、依赖、证据、执行映射及进行中操作的生效边界。
字段名、类型或含义变更时更新引用方与验收样例;仅修改说明且不改变合法行为的,保留已有字段名。调用方读取解析后的有效配置,不由 UI 控件、动画或模型文字反推权限、测量或完成事实。参见对应场景。
参考来源
本文记录本目录规则和参数所采用的外部依据。来源分为正式标准、官方解释与模式、平台指南、补充研究指导。链接中的标准标识用于准确定位判据。
核验范围:已打开下列资料并核对所用主题;没有对具体产品进行辅助技术操作、真人任务测试或法律符合性评估。W3C Understanding 是解释性资料,成功准则的规范效力来自 WCAG 正文;APG 示例需要按实际浏览器和辅助技术组合验证。网页可打开不等于其中每个示例均已实测。
1. 标准目标
Web Content Accessibility Guidelines(WCAG 2.2) 是 Web 基础目标的正式来源。采用 AA 目标须满足所有适用的 A 与 AA 成功准则及符合性要求,不是只通过本目录列出的选定检查项。完整页面、完整流程、依赖技术及不干扰要求仍需按标准核对。
正文中有些要求比标准选定底线更强,例如必要操作目标完整可见、基础任务的真人验收、协助会话中的本人决定。这些明确作为本规范的产品设计选择,不能表述为 WCAG 对所有产品的逐字要求。
2. 感知、媒体与视觉判据
| 官方来源 | 本目录采用的知识点 | 使用边界 |
|---|---|---|
| Contrast (Minimum),SC 1.4.3 | 普通文字与大文本的不同对比度底线;大文本尺寸与例外 | 测前景背景组合,不测孤立颜色;pt 与 CSS px 不混用 |
| Contrast (Enhanced),SC 1.4.6 | 增强文字对比度目标 | Token 的增强配色不是整体 AAA 符合性声明 |
| Non-text Contrast,SC 1.4.11 | 有意义的控件和图形相对邻接颜色的辨别 | 不把所有装饰边界纳入同一阈值 |
| Resize Text,SC 1.4.4 | 文本放大与功能保持 | 与重排、间距覆盖分别测试 |
| Reflow,SC 1.4.10 | 窄视口重排与确需二维布局的例外 | 局部例外不豁免整页 |
| Text Spacing,SC 1.4.12 | 用户调整间距后的内容容纳 | 不是默认排版强制值;按文字体系适用属性测试 |
| Captions (Prerecorded),SC 1.2.2 | 有声录播视频的字幕及有意义声响 | 字幕与文字稿用途不同,需核对实际同步 |
| Captions (Live),SC 1.2.4 | 实时同步媒体字幕 | 声明延迟或质量局限不等于自动豁免 |
| Audio Description (Prerecorded),SC 1.2.5 | 录播视觉信息的音频描述 | AA 的适用要求不能一律用文字稿代替 |
| Three Flashes or Below Threshold,SC 2.3.1 | 闪烁频率或阈值判定 | 不仅看频率;本文默认不用闪烁是产品选择 |
| CSS Color Adjustment:Forced Colors | 系统强制配色、系统色及作者样式适配 | 保留边框与焦点;不能保证自定义阴影和背景色仍显示 |
3. 操作、焦点与语义
| 官方来源 | 本目录采用的知识点 | 使用边界 |
|---|---|---|
| Keyboard,SC 2.1.1 | 键盘接口可操作与本质轨迹输入例外 | 不是要求每个静态元素都进入 Tab 序列 |
| Dragging Movements,SC 2.5.7 | 单指免拖拽替代 | 与键盘要求分别成立,不能相互抵消 |
| Target Size (Minimum),SC 2.5.8 | 24 CSS px 最小靶区及各类例外 | 间距采用几何判断,不是统一加固定 padding |
| Pointer Cancellation,SC 2.5.2 | 按下与抬起、撤销及必要例外 | 不能给所有 pointerdown 执行动作以“响应快”为理由豁免 |
| Focus Not Obscured (Minimum),SC 2.4.11 | 聚焦组件不能完全被作者内容遮挡 | 本目录完整可见的目标比该 AA 最低要求更强 |
| Focus Appearance,SC 2.4.13 | 焦点指示面积与聚焦前后对比 | 这是 AAA 条件,2px 样式本身不能证明满足 |
| Character Key Shortcuts,SC 2.1.4 | 字符快捷键可关、可改或限制激活范围 | 尤其检查听写输入与全局快捷键冲突 |
| Content on Hover or Focus,SC 1.4.13 | 额外内容可关闭、可移入与持续显示 | 按标准条件和例外处理,不将所有浏览器自带提示当作者浮层 |
| APG:Read Me First | 角色是行为承诺;错误 ARIA 会误导;示例须兼容性测试 | 只加角色不会自动添加键盘操作,不将模式代码当实测证明 |
| Status Messages,SC 4.1.3 | 不移动焦点的状态消息可被辅助技术识别 | 不要求每个界面更新都朗读,不保证辅助技术一定立即发声 |
| Language of Parts,SC 3.1.2 | 必要片段语言可确定及专名等例外 | 不将语言属性当翻译质量或文化适配的证明 |
| Orientation,SC 1.3.4 | 不无必要限制设备方向 | 功能本质必要的场景须记录,不能仅凭设计稿竖屏作限制 |
4. 认知、认证与验收
| 官方来源 | 本目录采用的知识点 | 使用边界 |
|---|---|---|
| Timing Adjustable,SC 2.2.1 | 关闭、事前调整、延长及适用例外 | 20 秒和十次延长只对应特定路径,不是通用超时值 |
| Redundant Entry,SC 3.3.7 | 同一流程已提供的信息自动填入或可选择 | 必要、安全及信息失效例外需具体核对 |
| Accessible Authentication (Minimum),SC 3.3.8 | 认证中的认知测试、辅助机制与多阶段覆盖 | 密码管理器和粘贴可帮助完成;最小准则允许的例外不等于对所有人可用 |
| Pause, Stop, Hide,SC 2.2.2 | 自动运动和更新的控制 | 活动类型、时长及必要性分别核对 |
| Audio Control,SC 1.4.2 | 自动播放声音的控制 | 默认静音是产品选择,不是此准则的唯一实现 |
| Error Prevention,SC 3.3.4 | 法律、财务及数据操作的检查、可逆或确认保护 | 不要求所有低风险动作增加多次确认 |
| Consistent Help,SC 3.2.6 | 重复帮助机制的相对顺序一致 | 本目录对有效服务出路的要求更广,是产品设计选择 |
| Making Content Usable for People with Cognitive and Learning Disabilities | 理解、专注、记忆负担、纠错与研究参与 | 补充指导,不是 WCAG 新增符合性准则;不据此制定统一认知分数 |
| Involving Users in Evaluating Web Accessibility | 在评估中纳入残障使用者,并与标准评估结合 | 用户任务与规则检查互补;小样本不证明所有用户均可完成 |
| Android:Make apps more accessible | 触摸目标 48 dp、语义说明、对比度与测试 | 是平台指南,不把 dp 直接换作 Web CSS px |
5. 产品选择与尚需验证的内容
以下是设计判断,没有被包装成外部标准事实:
- 以完整任务为验收单位,严重阻断不能被平均分抵消;真实任务测试的具体人群、规模与环境由产品依据服务范围设计。
- Web 触摸目标 44 CSS px、焦点轮廓 2 CSS px、偏移 2 CSS px、正文起点 1 rem、行高起点 1.5、过渡 160 ms 是预设起点。不是通用最优值,也不构成整体符合性。
- 状态播报的优先级、聚合窗口和持久回执是实现政策;须在真实辅助技术下检验,不能只检查 HTML 属性。
- 对设置不收费、不根据推定能力削减功能、本人决定归属、协助期限与秘密遮蔽、取消路径不被加难,是本规范明确采取的产品要求;并不表示这些要求都是 WCAG 条文。
- 无屏幕设备、多重感官障碍、协助撤回的在途状态、低带宽恢复和跨语言理解,需要具体产品实测,不能由通用参数表推断结果。
- 示范 JSON 与 CSS 仅展示配置和消费关系;没有运行产品、用户样本或现场服务的验收证据。
Apple Accessibility 指南 在本次读取中仅返回需要 JavaScript 的页面,未据此引用 Apple 的具体尺寸或阈值。iOS 实施须由项目核对可读取的官方依据及平台实际行为。本目录未核验各法域法律或行业认证要求,不以未取得的法条、研究全文或统计数字支撑强制要求。