SuperAPI AI 工具集

accessibility-testing

测试与质量

查看项目

更新于 10-15 10:52

技能介绍

Accessibility Testing with axe-core 是一个面向 Web 开发与测试场景的无障碍测试技能,核心目标是通过 axe-core 与 Playwright 的集成,对网页进行WCAG 2.1 AA/AAA合规性的自动化检测。资料将其定位为在检查 WCAG 合规、发现 a11y 问题、确保键盘导航或测试屏幕阅读器时使用。

主要能力

该技能支持以下测试类型:

  1. 全页面扫描:使用 AxeBuilder 对整个页面进行分析,等待 networkidle 后执行。
  2. 特定元素扫描:通过 .include('nav') 限定只检查导航等指定区域。
  3. 排除动态内容:通过 .exclude('.advertisement') 或 .exclude('#third-party-widget') 排除广告或第三方组件。
  4. WCAG 合规级别测试:可分别测试 WCAG 2.1 Level A(tags: wcag2a, wcag21a)、Level AA(tags: wcag2a, wcag2aa, wcag21a, wcag21aa)和 Level AAA(tags: wcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag21aaa)。
  5. 规则筛选:通过 withRules 仅检查指定规则(如 color-contrast、image-alt、label、link-name),或通过 disableRules 禁用已知问题规则。
  6. 最佳实践规则:使用 withTags(['best-practice']) 检查无障碍最佳实践。
  7. ARIA 测试:通过 withTags(['cat.aria']) 验证 ARIA 属性有效性。

专项测试能力

  • 键盘导航:验证 Tab 顺序、焦点可见性(outline 或 boxShadow 不为 none)、跳过链接功能。
  • 颜色对比度:使用 color-contrast 规则检查是否符合 WCAG AA。
  • 表单无障碍:验证输入框是否具备 label、aria-label 或 aria-labelledby。
  • 图片无障碍:验证图片是否具有 alt 属性或标记为装饰性(role="presentation" 或 role="none")。

使用方式

安装命令为 npm install -D @axe-core/playwright。基础用法是在 Playwright 测试文件中引入 AxeBuilder,调用 new AxeBuilder({ page }).analyze() 获取结果,并通过 expect(results.violations).toEqual([]) 断言无违规。资料还提供了详细违规报告的输出方式,可将结果保存为 JSON 或 HTML 文件。

CI 集成

提供 GitHub Actions 配置示例,通过 npx playwright test --grep @a11y 运行无障碍测试,并在失败时上传报告 artifact。

适用场景

适用于需要在开发流程中自动化检测网页无障碍问题的团队,尤其是需要满足 WCAG 合规要求的项目。

最佳实践与限制

资料建议尽早并频繁测试、从 WCAG 2.1 AA 开始、结合真实用户测试(自动化测试只能发现约 30% 的问题)、测试键盘导航、使用 NVDA(Windows)或 VoiceOver(Mac)进行屏幕阅读器测试,并按 critical > serious > moderate > minor 的优先级修复问题。参考文档包括 references/wcag-checklist.md 和 references/common-issues.md。