无障碍与 WCAG 规范
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/accessibility-wcag-0tes。
技能介绍
要解决什么问题
无障碍改造经常卡在两个极端:要么只把颜色对比度调高,要么给页面到处补 aria-label,却没有人验证键盘能否真正走通。结果是屏幕阅读器用户和键盘用户依然在表单校验、焦点丢失和导航迷路里打转。这个技能要解决的就是这类「改了但没生效」的问题,把 WCAG 检查点变成可执行的代码级约束。
技能如何工作
- 语义结构优先:用
nav、main、article、section这类 landmark 替代通用容器,屏幕阅读器据此提供页面导航,而不是让用户逐个听读div。 - 键盘可达性:所有可交互元素必须能用 Tab 抵达,Enter 或 Space 激活,组件内部用方向键移动,Escape 退出;焦点指示器不能被无替代方案地移除。
- ARIA 用在刀刃上:表单错误通过
role="alert"让屏幕阅读器即时播报;输入框必须关联<label>;当可见文本已经能描述元素时,不要再叠aria-label,避免标签冲突。 - 颜色与对比度:正文满足 WCAG AA 的 4.5:1,大号文本(18px 粗体或 24px 常规)不低于 3:1;状态不能只靠红色或绿色区分。
- 交付前自查:按清单逐项核对,再用屏幕阅读器(VoiceOver、NVDA)和纯键盘各走一遍完整流程。
适用边界与注意点
这个技能是前端实现层的评审标准,不负责自动化扫描,也不能替代真实用户测试或完整的 WCAG 符合性审计。alt="" 只适用于装饰性图片,功能性图片必须有描述文本。没有暂停机制的自动播放媒体同样落在反模式里。建议把它嵌入代码评审流程,而不是当作发布前的一次性补丁。
使用场景
- 重构页面导航结构,用 nav、main、article 等语义标签替代通用容器,让屏幕阅读器能按区域跳转
- 为表单补充 label 关联和 role="alert" 错误播报,提交失败时可被键盘和读屏用户感知
- 检查 Tab、Enter、Escape、方向键在弹窗与树组件内的移动路径,修复焦点丢失或不可退出的控件
- 调整文本与背景对比度到 4.5:1 或大号文本 3:1,并给状态提示增加非颜色表达
适合人员
- 前端工程师,需要在组件库中为按钮和弹窗补齐键盘焦点与 ARIA 模式
- 无障碍测试人员,要按 WCAG AA 核对对比度、label 关联与错误播报
- 全栈开发者,在代码评审阶段检查语义结构、焦点指示器和 skip navigation
- 设计系统维护者,需要把反模式(如用 div 模拟按钮)固化为评审清单