accessibility test的哪些部分可以自动化,通常使用哪些工具

在软件测试中,无障碍(Accessibility)测试既有自动化部分,也有需要人工评估的部分。下面我给你系统梳理一下:


1️⃣ 可以自动化的部分

自动化工具能检查的主要是可检测性(可通过代码或界面规则判断的)问题,比如:

测试维度 可自动化内容 示例说明
HTML 语义和结构 检查标签使用是否合理 <h1>--<h6> 顺序是否正确、<button> 是否用 <div> 替代
ARIA 属性 属性是否正确 aria-labelaria-hiddenrole 等是否符合规范
颜色对比 文本与背景的对比度 是否满足 WCAG 2.1 的 AA 或 AAA 标准
表单可访问性 输入框、标签对应性 <label> 是否绑定到 <input>,必填提示是否明确
图片替代文字 alt 属性 图片是否缺少或为空的 alt 属性
键盘导航 元素是否可通过 Tab 键访问 基本自动化可以检查焦点顺序
文档标题和语言 <title> 是否存在、<html lang> 是否定义 自动化可以快速检查

⚠️ 注意:自动化无法判断"内容是否有意义",如 alt 文本描述是否准确或页面是否对屏幕阅读器友好,这类必须人工评估。


2️⃣ 通常使用的自动化工具

浏览器插件 / 扩展

  • axe DevTools(Dequeue):Chrome/Edge 插件,可扫描页面可访问性问题并生成报告。
  • WAVE(Web Accessibility Evaluation Tool):可检测 WCAG 常见违规。
  • Lighthouse(Chrome 内置):提供可访问性分数和问题列表。

命令行 / 脚本工具

  • axe-core:JS 库,可与 Selenium、Playwright、Cypress 集成,实现自动化检测。
  • Pa11y:命令行工具或 Node.js 库,可生成可访问性报告。
  • Accessibility Insights(微软):支持网页和桌面应用,支持自动扫描和导出报告。

自动化测试框架集成

  • Cypress + cypress-axe:前端 E2E 测试中集成可访问性扫描。
  • Playwright + axe-core/playwright-axe:自动化检查页面可访问性问题。
  • Selenium + axe-selenium-java:Java 自动化测试中可集成可访问性检查。

3️⃣ 总结

  • 自动化适合:可检测的代码/样式问题,如标签语义、颜色对比、ARIA 属性。
  • 人工评估必需:屏幕阅读器兼容性、交互逻辑可理解性、内容描述是否合理。
  • 常用策略:自动化扫描发现问题 → 人工复核 + 验证 → 生成完整无障碍报告。