在软件测试中,无障碍(Accessibility)测试既有自动化部分,也有需要人工评估的部分。下面我给你系统梳理一下:
1️⃣ 可以自动化的部分
自动化工具能检查的主要是可检测性(可通过代码或界面规则判断的)问题,比如:
| 测试维度 | 可自动化内容 | 示例说明 |
|---|---|---|
| HTML 语义和结构 | 检查标签使用是否合理 | <h1>--<h6> 顺序是否正确、<button> 是否用 <div> 替代 |
| ARIA 属性 | 属性是否正确 | aria-label、aria-hidden、role 等是否符合规范 |
| 颜色对比 | 文本与背景的对比度 | 是否满足 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 属性。
- 人工评估必需:屏幕阅读器兼容性、交互逻辑可理解性、内容描述是否合理。
- 常用策略:自动化扫描发现问题 → 人工复核 + 验证 → 生成完整无障碍报告。