# 专业无障碍访问审查框架 ## 六层无障碍审查金字塔 ``` ┌─────────────────────────────────────────────────────────┐ │ 第六层:社会影响层(包容性与合规) │ │ • 法律合规性 │ │ • 社会责任履行 │ │ • 品牌包容性形象 │ ├─────────────────────────────────────────────────────────┤ │ 第五层:技术实现层(开发可行性) │ │ • 无障碍API实现 │ │ • 辅助技术兼容性 │ │ • 测试与验证体系 │ ├─────────────────────────────────────────────────────────┤ │ 第四层:用户体验层(功能完整性) │ │ • 多样化用户需求覆盖 │ │ • 可预测与可控性 │ │ • 容错与恢复机制 │ ├─────────────────────────────────────────────────────────┤ │ 第三层:感知认知层(信息可获取性) │ │ • 信息多通道传达 │ │ • 认知负荷控制 │ │ • 学习与记忆支持 │ ├─────────────────────────────────────────────────────────┤ │ 第二层:技术合规层(标准符合性) │ │ • WCAG 2.1标准执行 │ │ • 平台规范遵循 │ │ • 行业最佳实践 │ ├─────────────────────────────────────────────────────────┤ │ 第一层:基础保障层(基础必查) │ │ • 键盘导航完整性 │ │ • 屏幕阅读器支持 │ │ • 对比度与可读性 │ └─────────────────────────────────────────────────────────┘ ``` --- ## 第一层:基础保障层(基础必查) ### 1.1 键盘导航完整性检查 **WCAG 2.1.1 键盘要求:** - 所有功能必须能通过键盘接口操作,无需特定时间完成 **键盘导航核心检查项:** - [ ] 所有可交互元素可通过Tab键访问 - [ ] Tab顺序符合视觉顺序和逻辑顺序 - [ ] 焦点指示器清晰可见(对比度≥3:1) - [ ] 支持常用快捷键(Enter、Space、Esc、箭头键) - [ ] 提供"跳过导航"链接(Skip to main content) - [ ] 模态对话框可键盘关闭(Esc键) - [ ] 下拉菜单可通过键盘导航和选择 **焦点管理要求:** - [ ] 焦点不丢失(不会因交互而失去焦点) - [ ] 焦点不陷入陷阱(用户能移出所有组件) - [ ] 焦点顺序逻辑合理(从左到右、从上到下) - [ ] 动态内容获得焦点时通知用户 ### 1.2 屏幕阅读器支持检查 **WCAG 4.1.2 名称、角色、值要求:** - 对于所有用户界面组件,名称和角色可以通过编程方式确定 **屏幕阅读器核心检查项:** - [ ] 所有非文本内容有替代文本(alt、aria-label、aria-labelledby) - [ ] 表单字段有标签(label、aria-label、aria-labelledby) - [ ] 按钮有描述性文本(避免"点击这里"、"更多"等) - [ ] 使用语义化HTML元素(button、nav、main、article等) - [ ] 状态变化通过ARIA属性通知(aria-live、aria-atomic、aria-relevant) - [ ] 错误信息可通过屏幕阅读器访问 - [ ] 复杂组件有ARIA角色和属性描述 **ARIA使用原则:** - [ ] 优先使用原生HTML语义元素 - [ ] ARIA仅用于增强现有语义 - [ ] ARIA属性值有效且符合规范 - [ ] 避免ARIA属性冲突 ### 1.3 对比度与可读性检查 **WCAG对比度要求:** - **正常文本:** ≥4.5:1(AA级),≥7:1(AAA级) - **大文本:** ≥3:1(AA级),≥4.5:1(AAA级) - **非文本对比度:** ≥3:1(UI组件、图标、图形) **可读性检查清单:** - [ ] 所有文本内容满足对比度要求 - [ ] 字体大小可调整至200%不失功能 - [ ] 行高至少1.5倍字号 - [ ] 段落间距至少2倍行高 - [ ] 避免纯装饰性文本 - [ ] 重要信息不单独依赖颜色传达 - [ ] 链接文本有视觉区分(下划线或明显颜色差异) --- ## 第二层:技术合规层(标准符合性) ### 2.1 WCAG 2.1 AA级标准检查 **四大原则检查清单:** #### 可感知性(Perceivable) - [ ] **1.1.1 非文本内容:** 所有非文本内容都有文本替代 - [ ] **1.2.1 纯音频和纯视频:** 提供替代方案 - [ ] **1.2.2 字幕:** 同步音频内容提供字幕 - [ ] **1.2.3 音频描述:** 视频提供音频描述 - [ ] **1.3.1 信息和关系:** 信息、结构和关系可通过编程确定 - [ ] **1.3.2 有意义的顺序:** 阅读和导航顺序合理 - [ ] **1.4.1 颜色使用:** 颜色不单独传达信息 - [ ] **1.4.3 对比度(最小):** 文本对比度4.5:1,大文本3:1 - [ ] **1.4.4 文字大小调整:** 文字可放大到200% - [ ] **1.4.10 重排:** 支持320px宽度的垂直滚动 #### 可操作性(Operable) - [ ] **2.1.1 键盘:** 所有功能可通过键盘操作 - [ ] **2.1.2 无键盘陷阱:** 焦点不会陷入组件中 - [ ] **2.2.1 可调节时间:** 时间限制可调整或关闭 - [ ] **2.2.2 暂停、停止、隐藏:** 移动、闪烁、滚动内容可控制 - [ ] **2.3.1 三次闪烁以下:** 内容不包含每秒闪动3次以上的区域 - [ ] **2.4.1 跳过块:** 提供跳过重复内容的机制 - [ ] **2.4.2 页面标题:** 页面有描述性标题 - [ ] **2.4.3 焦点顺序:** 导航顺序合理 - [ ] **2.4.4 链接目的:** 链接目的从链接文本可理解 - [ ] **2.4.6 标题和标签:** 标题和标签描述主题或目的 #### 可理解性(Understandable) - [ ] **3.1.1 页面语言:** 页面语言可通过编程确定 - [ ] **3.2.1 聚焦时:** 聚焦不自动改变上下文 - [ ] **3.2.2 输入时:** 输入不自动改变上下文 - [ ] **3.2.3 一致性导航:** 导航机制在整个网站一致 - [ ] **3.2.4 一致性标识:** 相同功能的组件有一致标识 - [ ] **3.3.1 错误识别:** 错误可识别且描述错误 - [ ] **3.3.2 标签或说明:** 表单有标签或说明 - [ ] **3.3.3 错误建议:** 错误时有纠正建议 #### 健壮性(Robust) - [ ] **4.1.1 解析:** 标记语言元素有完整开始和结束标签 - [ ] **4.1.2 名称、角色、值:** 所有组件名称、角色、值可通过编程确定 ### 2.2 平台规范遵循检查 **不同平台无障碍规范:** - **iOS VoiceOver:** 支持动态类型、标签、提示、特性 - **Android TalkBack:** 支持内容描述、状态描述、无障碍节点 - **Windows Narrator:** 支持UI自动化、辅助技术API - **Web ARIA:** W3C无障碍丰富互联网应用规范 **平台适配检查清单:** - [ ] 遵循目标平台的无障碍编程接口 - [ ] 支持平台特定的辅助技术 - [ ] 平台特有功能的无障碍实现 - [ ] 跨平台无障碍体验一致性 ### 2.3 行业最佳实践检查 **无障碍设计模式:** - [ ] 使用语义化HTML5元素 - [ ] 实现渐进增强(基础功能无需JavaScript) - [ ] 支持高对比度模式 - [ ] 提供无障碍主题选项 - [ ] 遵循无障碍组件库模式 **移动端最佳实践:** - [ ] 触摸目标尺寸≥44×44px - [ ] 手势操作有替代方案 - [ ] 支持摇动撤销 - [ ] 支持系统字体大小设置 - [ ] 支持减少动画设置(prefers-reduced-motion) --- ## 第三层:感知认知层(信息可获取性) ### 3.1 信息多通道传达 **多感官信息传达原则:** - **视觉信息:** 同时提供文本描述 - **音频信息:** 同时提供文本字幕或文字稿 - **动作信息:** 同时提供静态替代 - **时间限制信息:** 提供控制或替代方案 **检查清单:** - [ ] 图标和图形有文字标签 - [ ] 图表数据有表格或文本摘要 - [ ] 视频内容有字幕和文字稿 - [ ] 音频内容有文字稿 - [ ] 动画和动效有静态替代或可关闭 - [ ] 状态变化通过多感官反馈(视觉+听觉+触觉) - [ ] 复杂概念通过多种方式解释 ### 3.2 认知负荷控制 **认知无障碍设计原则:** - **简洁性:** 避免信息过载 - **一致性:** 相似功能相似表现 - **可预测性:** 用户能预测交互结果 - **容错性:** 支持错误恢复 **检查清单:** - [ ] 界面复杂度与用户能力匹配 - [ ] 信息分块组织,每块5-9个信息点 - [ ] 提供明确的进度指示 - [ ] 复杂任务分步骤引导 - [ ] 提供上下文帮助 - [ ] 避免技术术语或提供解释 - [ ] 支持个性化难度设置 ### 3.3 学习与记忆支持 **学习支持设计:** - **渐进披露:** 复杂功能逐步介绍 - **即时帮助:** 需要时提供上下文帮助 - **错误预防:** 设计避免常见错误 - **反馈明确:** 操作结果清晰反馈 **记忆支持设计:** - [ ] 重要信息有永久可见提示 - [ ] 支持书签和收藏功能 - [ ] 提供搜索和历史记录 - [ ] 使用熟悉的图标和标签 - [ ] 支持自定义快捷方式 - [ ] 提供任务清单和提醒 **认知障碍支持:** - [ ] 支持注意力障碍(减少干扰,明确焦点) - [ ] 支持阅读障碍(文本转语音,字体调整) - [ ] 支持记忆障碍(任务提示,进度保存) - [ ] 支持执行功能障碍(简化步骤,明确目标) --- ## 第四层:用户体验层(功能完整性) ### 4.1 多样化用户需求覆盖 **能力多样性支持:** | 能力类型 | 支持需求 | 实现方案 | |----------|----------|----------| | **视觉障碍** | 屏幕阅读器支持 | ARIA标签、语义化HTML、键盘导航 | | **听力障碍** | 视觉替代 | 字幕、文字稿、视觉提示 | | **运动障碍** | 多种输入方式 | 键盘、语音、眼动追踪、开关控制 | | **认知障碍** | 简化界面 | 清晰布局、简单语言、进度提示 | | **语言障碍** | 多语言支持 | 翻译、简单语言版本、图片辅助 | **检查清单:** - [ ] 支持多种输入方式(键盘、鼠标、触摸、语音、眼动) - [ ] 支持多种输出方式(视觉、听觉、触觉) - [ ] 提供多种语言选项 - [ ] 提供简单语言版本 - [ ] 支持辅助技术个性化配置 ### 4.2 可预测与可控性 **可预测性设计:** - [ ] 界面行为符合用户预期 - [ ] 状态变化有明确预示 - [ ] 错误可预防和预测 - [ ] 操作结果可预期 **可控性设计:** - [ ] 用户可控制时间限制(可调整或关闭) - [ ] 用户可控制自动播放内容(可暂停、停止、隐藏) - [ ] 用户可控制动画和动效(可减少或关闭) - [ ] 用户可控制布局变化(可调整或固定) - [ ] 用户可控制数据更新频率(可调整或手动) **自主性设计:** - [ ] 用户可选择完成任务的方式 - [ ] 用户可自定义界面设置 - [ ] 用户可保存个性化配置 - [ ] 用户可导出和导入设置 ### 4.3 容错与恢复机制 **错误预防设计:** - [ ] 危险操作需要确认 - [ ] 表单输入有即时验证 - [ ] 提供撤销和重做功能 - [ ] 自动保存草稿和进度 **错误处理设计:** - [ ] 错误信息清晰描述问题 - [ ] 错误信息提供解决建议 - [ ] 错误可恢复(返回上一步) - [ ] 支持错误报告和反馈 **灾难恢复设计:** - [ ] 支持数据备份和恢复 - [ ] 网络中断时可继续离线工作 - [ ] 崩溃后可恢复之前状态 - [ ] 提供紧急联系方式 --- ## 第五层:技术实现层(开发可行性) ### 5.1 无障碍API实现 **Web无障碍API标准:** - **ARIA 1.2:** 丰富互联网应用无障碍规范 - **WAI-ARIA Authoring Practices:** ARIA使用最佳实践 - **Core Accessibility API Mappings:** 平台映射规范 **检查清单:** - [ ] 正确使用HTML5语义元素 - [ ] ARIA属性使用符合规范 - [ ] 无障碍树结构正确 - [ ] 焦点管理逻辑清晰 - [ ] 状态和属性动态更新 - [ ] 支持无障碍事件监听 - [ ] 性能不影响无障碍功能 **代码质量检查:** ```html 用户名应为3-20个字符