mcpbeat

Accessibility Skill

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".

4k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
343
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/LambdaTest/agent-skills --skill accessibility-skill

The instruction itself

11 sections, as written by the author

Accessibility Testing 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.

Core Patterns

Enable accessibility (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 + accessibility

// 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.

Playwright + accessibility

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.

Cypress + accessibility

// lambdatest-config.json - capabilities are dotted here
{ "accessibility": true, "accessibility.wcagVersion": "wcag21aa", "accessibility.needsReview": true }

Register the scanner (file differs by Cypress version):

  • v10+: import in cypress/support/e2e.js, plugin in cypress.config.js
  • v9: import in cypress/support/index.js, plugin in cypress/plugins/index.js

Run with lambdatest-cypress-cli run.

Native mobile app (Appium)

# The scan hook is mandatory for native apps (no autoscan mode).
caps["accessibility"] = True
driver.execute_script("lambda-accessibility-scan")

Read results programmatically (MCP server)

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 report
  • buildLocalAppForAnalysis - build and serve a local app, then scan it (before deploy)
  • AnalyseAppViaTunnel - scan a local app already running behind a tunnel

Use it for a real "scan after every build" loop where an agent must act on the result.

Authentication

export LT_USERNAME="your-username"     # from your TestMu AI Profile page
export LT_ACCESS_KEY="your-access-key"

Quick Reference

| 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 |

Deep Patterns

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.

How to use it

Copy the folder

Take lambdatest/accessibility-skill from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.

Install what it needs

The instructions reference npx. Without those the skill loads but fails at the first command.