可访问性检查
参考文件:${CLAUDE_PLUGIN_ROOT}/docs/accessibility.md 和 ${CLAUDE_PLUGIN_ROOT}/docs/design-systems.md。
WCAG 2.2 AA 是每个功能的完成标准的一部分;此检查是额外的全面扫查。
1. 设置
- 在产品外部固定并安装工具:
npm i --prefix <文件夹> playwright@<固定版本> axe-core@<固定版本>;A11Y_TOOLS=<文件夹>。 - 使用演示数据在临时数据库上本地运行应用,并指定自己的端口。
- 在
tests/a11y/pages.json中列出每个主页面(以及通过open打开的弹窗),每页带有lang,并为需要登录的页面提供一个signIn模块。 - 在很少有其他代理运行时执行此检查;对共享组件进行小型定向编辑。
2. 测量(“之前”)
node tests/a11y/axe-pages.mjs --probes --json scratch/a11y-before.json
node tests/a11y/axe-pages.mjs --probes --widths 320 --page <宽页面>
node --test "tests/contracts/*.test.mjs" # 亮色和暗色模式下的主题对比度
另外,运行应用的键盘脚本(跳过链接 → 主内容、弹窗焦点陷阱与焦点返回、最顶层的 Escape、标签页列表中的箭头键、可点击行上的 Enter)以及手动检查:文本间距(1.4.12)、200% 缩放、拖拽替代方案(2.5.7)、冗余输入(3.3.7)、无障碍认证(3.3.8)、带表格的图表、电子邮件(语言、展示表格、替代文本、暗色模式)。
3. 发现与修复
表格:# | 标准 | 位置 | 严重程度(严重/中等/轻微) | 已修复?。在共享组件级别修复(一个焦点环令牌、一个弹窗按键助手、可点击行、组合键、滚动区域、活动区域、滚动内边距)。将每个新的可访问名称翻译成所有已配置的语言。为新的颜色组合添加对比度对。
4. 防护
- 共享组件的合约测试(名称、消息之前存在的活动区域、令牌对、减少动画、跳过链接)。
- 在
tests/a11y/known.json中保留的发现带有原因,与无障碍声明页面上的已知限制一致(目标 WCAG 2.2 AA、限制、联系方式;使用每种已配置的语言;在每个页脚中链接)。
5. 报告
每个页面的“之前→之后”违规计数、按严重程度计数的违规数(已修复/未修复)、截图、未完成的事项(屏幕阅读器、原生外壳、外部审计)。一条“新增内容”条目。STATE.md 部分。