lambdatest/accessibility-skill
> Adds automated accessibility (a11y) testing to test suites on TestMu AI cloud by enabling WCAG scans through driver capabilities. Framework-agnostic, works with Selenium, Playwright, and Cypress. Use when user mentions "accessibility", "accessibility testing", "a11y scan", "WCAG compliance", "accessibility audit LambdaTest", "is my page accessible".
npx skills add https://github.com/LambdaTest/agent-skills --skill accessibility-skill
Accessibility testing on TestMu AI is layered onto an existing automation suite. You do not
install a separate tool: you enable a capability on your driver and either trigger scans at
chosen points or let every navigation scan automatically. Results appear on the Accessibility
dashboard.
Know the one hard limit up front: the automation capabilities can *start* a scan, but there
is no results API, no exit code, and no build-gating flag. To read a report back programmatically
(for example, to fail a build), use the Accessibility MCP server (see Core Patterns). Automated
scanning also catches only a portion of WCAG; it never replaces manual and screen-reader testing.
// 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
// 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);
Run with your normal command, e.g. mvn test. If you use the hook and never call it, no report
is generated.
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();
Run with npx playwright test.
// lambdatest-config.json - capabilities are dotted here
{ "accessibility": true, "accessibility.wcagVersion": "wcag21aa", "accessibility.needsReview": true }
Register the scanner (file differs by Cypress version):
cypress/support/e2e.js, plugin in cypress.config.jscypress/support/index.js, plugin in cypress/plugins/index.jsRun with lambdatest-cypress-cli run.
# The scan hook is mandatory for native apps (no autoscan mode).
caps["accessibility"] = True
driver.execute_script("lambda-accessibility-scan")
The automation paths write to the dashboard only. The Accessibility MCP server is the one
path that returns a report to the caller:
getAccessibilityReport - scan a public URL and return the reportbuildLocalAppForAnalysis - build and serve a local app, then scan it (before deploy)AnalyseAppViaTunnel - scan a local app already running behind a tunnelUse it for a real "scan after every build" loop where an agent must act on the result.
export LT_USERNAME="your-username" # from your TestMu AI Profile page
export LT_ACCESS_KEY="your-access-key"
| Task | How |
|------|-----|
| Enable scanning | accessibility: true capability (required) |
| WCAG level | accessibility.wcagVersion = wcag21a or wcag21aa |
| Best-practice checks | accessibility.bestPractice = true (default false) |
| Ambiguous issues | accessibility.needsReview = true |
| Scan at a point | driver.executeScript("lambda-accessibility-scan") |
| Scan every navigation | accessibility.autoscan = true (Selenium only) |
| Read results in code | Accessibility MCP server (dashboard-only otherwise) |
| Dashboard | https://accounts.lambdatest.com/dashboard -> Accessibility |
For per-framework setup, the full capability reference, the accessibility score, severity
levels, the WCAG rule-to-fix mapping (remediation), and what automation does and does not cover,
see reference/playbook.md.
Take lambdatest/accessibility-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.