关于 accessibility-skill
介绍如何在现有 TestMu AI 自动化套件中,为 Selenium、Playwright、Cypress 和 Appium 添加无障碍扫描。内容说明扫描配置及仪表板结果的限制,并介绍用于以程序方式获取报告的 Accessibility MCP 服务。
主要功能
- 01WCAG 扫描能力配置
- 02按需扫描与 Selenium 自动扫描
- 03Selenium、Playwright、Cypress 和 Appium 指南
- 04通过仪表板查看结果
- 05MCP 报告获取方式
适用场景
- 01为浏览器测试添加无障碍扫描
- 02使用 Appium 扫描原生移动应用
- 03在自动化构建流程中获取报告
- 04在仪表板中查看 WCAG 问题
MCP 相关
该技能介绍可向调用方返回扫描报告的 Accessibility MCP 服务。其工具支持扫描公开 URL、构建并扫描本地应用,以及扫描通过隧道运行的应用。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lambdatest/ agent-skills --skill accessibility-skill安装后在 Claude Code 中输入/accessibility-skill确认已加载。
附带文件reference/playbook.md
详细介绍
无障碍测试技能
TestMu AI 上的无障碍测试是在现有自动化测试套件之上实现的。你不需要安装单独的工具:只需在驱动程序上启用相应功能,然后选择在指定时机触发扫描,或让每次导航都自动扫描。结果会显示在 Accessibility 仪表板上。
**请先了解一项重要限制:**自动化功能可以启动扫描,但没有结果 API、没有退出代码,也没有用于构建门禁的标志。如需以编程方式读取报告(例如,用于构建失败处理),请使用 Accessibility MCP 服务(参见核心模式)。自动扫描只能检测部分 WCAG 问题,不能替代人工测试和屏幕阅读器测试。
核心模式
启用无障碍功能(capabilities)
// One master switch is required; everything else is optional refinement.
capability.setCapability("accessibility", true); // required
capability.setCapability("accessibility.wcagVersion", "wcag21aa"); // wcag21a | wcag21aa
capability.setCapability("accessibility.bestPractice", false); // default false
capability.setCapability("accessibility.needsReview", true); // include ambiguous issues
Selenium + 无障碍功能
// Option A: trigger a scan at a chosen point (recommended - precise, faster)
capability.setCapability("accessibility", true);
driver.get("https://example.com");
driver.executeScript("lambda-accessibility-scan"); // scan the current page; call as often as needed
// Option B: auto-scan every navigation (Selenium only)
capability.setCapability("accessibility", true);
capability.setCapability("accessibility.autoscan", true);
使用常规命令运行,例如 mvn test。如果你使用钩子但从未调用它,就不会生成报告。
Playwright + 无障碍功能
const capabilities = {
"accessibility": true,
"accessibility.wcagVersion": "wcag21a",
"accessibility.bestPractice": false,
"accessibility.needsReview": true
};
// Playwright needs the internal scan extension loaded once, after page creation.
// Use Chrome (not Chromium). There is no autoscan/hook on this path.
await ltPage.goto("chrome://extensions/?id=johgkfjmgfeapgnbkmfkfkaholjbcnah");
const toggle = ltPage.locator('#crToggle').nth(0);
await toggle.click();
使用 npx playwright test 运行。
Cypress + 无障碍功能
// lambdatest-config.json - capabilities are dotted here
{ "accessibility": true, "accessibility.wcagVersion": "wcag21aa", "accessibility.needsReview": true }
注册扫描器(文件因 Cypress 版本而异):
- v10+:在
cypress/support/e2e.js中导入,在cypress.config.js中配置插件 - v9:在
cypress/support/index.js中导入,在cypress/plugins/index.js中配置插件
使用 lambdatest-cypress-cli run 运行。
原生移动应用(Appium)
# The scan hook is mandatory for native apps (no autoscan mode).
caps["accessibility"] = True
driver.execute_script("lambda-accessibility-scan")
以编程方式读取结果(MCP 服务)
自动化流程只会将结果写入仪表板。Accessibility MCP 服务是唯一能向调用方返回报告的途径:
getAccessibilityReport- 扫描公开 URL 并返回报告buildLocalAppForAnalysis- 构建并提供本地应用,然后扫描(部署前)AnalyseAppViaTunnel- 扫描已在隧道后运行的本地应用
当 Agent 必须根据扫描结果采取行动时,可使用此服务实现真正的“每次构建后扫描”循环。
身份验证
export LT_USERNAME="your-username" # from your TestMu AI Profile page
export LT_ACCESS_KEY="your-access-key"
快速参考
| 任务 | 方法 |
|---|---|
| 启用扫描 | accessibility: true capability(必需) |
| WCAG 级别 | accessibility.wcagVersion = wcag21a 或 wcag21aa |
| 最佳实践检查 | accessibility.bestPractice = true(默认值为 false) |
| 有歧义的问题 | accessibility.needsReview = true |
| 在指定时机扫描 | driver.executeScript("lambda-accessibility-scan") |
| 每次导航都扫描 | accessibility.autoscan = true(仅限 Selenium) |
| 在代码中读取结果 | Accessibility MCP 服务(否则只能在仪表板中查看) |
| 仪表板 | https://accounts.lambdatest.com/dashboard -> Accessibility |
深入模式
有关各框架的配置、完整的 capability 参考、无障碍评分、严重级别、WCAG 规则到修复方法的映射(补救措施),以及自动化能够和不能覆盖的内容,请参阅 reference/playbook.md。