Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Deep integration with axe-core for automated accessibility testing. Execute accessibility scans, interpret WCAG violations, generate compliance reports, and integrate with Playwright/Cypress for comprehensive a11y testing.
.claude/skills/a5c-ai-axe-accessibility/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 7% | 0% |
You are axe-accessibility - a specialized skill for automated accessibility testing using the axe-core engine, providing comprehensive WCAG compliance validation and remediation guidance.
This skill enables AI-powered accessibility testing including:
axe-core or @axe-core/playwright packageExecute axe-core scans and interpret results:
javascript// Using axe-core with Playwright const { chromium } = require('playwright'); const AxeBuilder = require('@axe-core/playwright').default; const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); const accessibilityScanResults = await new AxeBuilder({ page }) .withTags(['wcag2a', 'wcag2aa', 'wcag21aa']) .analyze(); console.log(accessibilityScanResults.violations);
Support for all WCAG compliance levels:
| Level | Tag | Description | |-------|-----|-------------| | Level A | wcag2a, wcag21a | Minimum compliance | | Level AA | wcag2aa, wcag21aa | Standard compliance (required by most regulations) | | Level AAA | wcag2aaa, wcag21aaa | Enhanced accessibility | | Best Practices | best-practice | Industry recommendations |
Generate structured violation reports:
json{ "url": "https://example.com/page", "timestamp": "2026-01-24T10:30:00Z", "wcagLevel": "AA", "summary": { "violations": 5, "passes": 42, "incomplete": 3, "inapplicable": 15 }, "violations": [ { "id": "color-contrast", "impact": "serious", "description": "Elements must have sufficient color contrast", "wcag": ["WCAG 2.1 Level AA - 1.4.3"], "nodes": [ { "html": "<p class=\"gray-text\">Low contrast text</p>", "target": ["p.gray-text"], "failureSummary": "Fix any of the following: Element has insufficient color contrast of 3.5:1 (foreground color: #808080, background color: #ffffff, font size: 14px, font weight: normal). Expected contrast ratio of 4.5:1" } ], "suggestedFix": "Change foreground color to #595959 or darker for 4.5:1 contrast ratio" } ] }
Provide actionable remediation guidance:
javascript// Original - inaccessible <img src="hero.jpg"> // Fixed - accessible <img src="hero.jpg" alt="Team collaboration in modern office space"> // Original - missing form label <input type="email" placeholder="Enter email"> // Fixed - properly labeled <label for="email-input">Email Address</label> <input type="email" id="email-input" placeholder="Enter email">
Track and prioritize accessibility issues:
json{ "debtSummary": { "critical": 2, "serious": 5, "moderate": 8, "minor": 12, "totalIssues": 27 }, "prioritizedBacklog": [ { "priority": 1, "id": "aria-hidden-focus", "impact": "critical", "estimatedEffort": "2h", "affectedPages": 15 } ], "trendAnalysis": { "lastScan": "2026-01-17", "currentScan": "2026-01-24", "resolved": 8, "newIssues": 3, "netChange": -5 } }
This skill can leverage the following MCP servers for enhanced capabilities:
| Server | Description | Installation | |--------|-------------|--------------| | A11y MCP (ronantakizawa) | Web accessibility testing using axe-core API and Puppeteer | npm install a11y-mcp | | Deque axe MCP Server | Enterprise axe integration with contextualized guidance | Deque | | Playwright Accessibility Testing MCP | Comprehensive WCAG 2.0/2.1 Level A/AA testing | GitHub | | MCP Accessibility Scanner | Playwright and Axe-core based WCAG checker with annotated snapshots | Playbooks |
This skill integrates with the following processes:
accessibility-audit.js - Comprehensive accessibility auditingcomponent-library.js - Component accessibility validationresponsive-design.js - Responsive accessibility testingWhen executing operations, provide structured output:
json{ "operation": "scan", "url": "https://example.com", "wcagLevel": "AA", "status": "completed", "results": { "violations": [], "passes": [], "incomplete": [] }, "recommendations": [ "Add alt text to 3 images", "Increase color contrast on navigation links" ], "artifacts": ["a11y-report.json", "a11y-report.html"] }
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,662 | 16,605 | +13% | 1 | 1 | 0% | 2,968 | 5,256 | +77% | 0 | 0 | — |
case-02 | fail→fail | 19,483 | 15,434 | -21% | 1 | 1 | 0% | 3,684 | 4,765 | +29% | 0 | 0 | — |
case-03 | fail→fail | 18,906 | 17,969 | -5% | 1 | 1 | 0% | 3,676 | 5,209 | +42% | 0 | 0 | — |
case-04 | pass→pass | 7,916 | 10,032 | +27% | 1 | 1 | 0% | 1,732 | 3,870 | +123% | 0 | 0 | — |
case-05 | pass→pass | 5,458 | 4,195 | -23% | 1 | 1 | 0% | 1,072 | 2,283 | +113% | 0 | 0 | — |
case-06 | pass→pass | 11,557 | 9,804 | -15% | 1 | 1 | 0% | 2,167 | 3,517 | +62% | 0 | 0 | — |
case-07 | pass→pass | 4,624 | 3,313 | -28% | 1 | 1 | 0% | 923 | 2,319 | +151% | 0 | 0 | — |
case-08 | pass→pass | 8,335 | 9,948 | +19% | 1 | 1 | 0% | 1,669 | 3,570 | +114% | 0 | 0 | — |
case-09 | pass→pass | 11,660 | 8,911 | -24% | 1 | 1 | 0% | 1,992 | 3,580 | +80% | 0 | 0 | — |
case-10 | pass→pass | 6,101 | 4,568 | -25% | 1 | 1 | 0% | 1,216 | 2,430 | +100% | 0 | 0 | — |
case-11 | pass→pass | 14,310 | 15,684 | +10% | 1 | 1 | 0% | 2,280 | 4,322 | +90% | 0 | 0 | — |
case-12 | fail→pass | 8,631 | 2,825 | -67% | 1 | 1 | 0% | 1,835 | 2,088 | +14% | 0 | 0 | — |
case-13 | fail→pass | 13,702 | 2,828 | -79% | 1 | 1 | 0% | 2,332 | 2,143 | -8% | 0 | 0 | — |
case-14 | fail→pass | 31,305 | 5,099 | -84% | 1 | 1 | 0% | 5,173 | 2,612 | -50% | 0 | 0 | — |
case-15 | fail→pass | 12,736 | 2,500 | -80% | 1 | 1 | 0% | 2,402 | 2,124 | -12% | 0 | 0 | — |
case-16 | fail→pass | 15,623 | 9,081 | -42% | 1 | 1 | 0% | 3,510 | 3,747 | +7% | 0 | 0 | — |
case-17 | pass→pass | 17,975 | 19,597 | +9% | 1 | 1 | 0% | 2,984 | 4,913 | +65% | 0 | 0 | — |
case-18 | fail→pass | 9,738 | 8,179 | -16% | 1 | 1 | 0% | 1,658 | 3,397 | +105% | 0 | 0 | — |
case-19 | fail→pass | 11,913 | 9,781 | -18% | 1 | 1 | 0% | 2,061 | 3,171 | +54% | 0 | 0 | — |
case-20 | pass→pass | 22,740 | 32,446 | +43% | 1 | 1 | 0% | 3,690 | 6,865 | +86% | 0 | 0 | — |
case-21 | pass→pass | 13,944 | 14,163 | +2% | 1 | 1 | 0% | 2,780 | 4,389 | +58% | 0 | 0 | — |
case-22 | pass→pass | 14,392 | 18,787 | +31% | 1 | 1 | 0% | 2,365 | 5,119 | +116% | 0 | 0 | — |
case-23 | pass→pass | 11,513 | 7,397 | -36% | 1 | 1 | 0% | 1,889 | 3,163 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +30 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.