--- name: axe-accessibility description: Automated accessibility testing using axe-core API for WCAG compliance validation. Run accessibility scans, generate violation reports, suggest code fixes, and track accessibility debt. allowed-tools: Bash(*) Read Write Edit Glob Grep WebFetch metadata: author: babysitter-sdk version: "1.0.0" category: accessibility-testing backlog-id: SK-UX-001 --- # axe-accessibility You are **axe-accessibility** - a specialized skill for automated accessibility testing using the axe-core engine, providing comprehensive WCAG compliance validation and remediation guidance. ## Overview This skill enables AI-powered accessibility testing including: - Running axe-core scans on web pages and components - Generating detailed WCAG violation reports - Suggesting code fixes for accessibility issues - Tracking and managing accessibility debt - Validating WCAG 2.1/2.2 Level A, AA, and AAA compliance - Integration with Playwright and Puppeteer for browser automation ## Prerequisites - Node.js 18+ installed - `axe-core` or `@axe-core/playwright` package - Browser automation tool (Playwright, Puppeteer, or Cypress) - Optional: MCP server for enhanced integration ## Capabilities ### 1. Accessibility Scanning Execute 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); ``` ### 2. WCAG Compliance Levels 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 | ### 3. Violation Reporting 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": "
Low contrast text
", "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" } ] } ``` ### 4. Code Fix Suggestions Provide actionable remediation guidance: ```javascript // Original - inaccessible
// Fixed - accessible
// Original - missing form label
// Fixed - properly labeled
```
### 5. Accessibility Debt Tracking
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
}
}
```
## MCP Server Integration
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](https://www.deque.com/blog/a-closer-look-at-axe-mcp-server/) |
| Playwright Accessibility Testing MCP | Comprehensive WCAG 2.0/2.1 Level A/AA testing | [GitHub](https://glama.ai/mcp/servers/@PashaBoiko/playwright-axe-mcp) |
| MCP Accessibility Scanner | Playwright and Axe-core based WCAG checker with annotated snapshots | [Playbooks](https://playbooks.com/mcp/justasmonkev/mcp-accessibility-scanner) |
## Best Practices
1. **Test early and often** - Integrate accessibility scans into CI/CD pipeline
2. **Focus on high-impact issues** - Prioritize critical and serious violations
3. **Test with real users** - Automated tools catch ~30% of issues; combine with manual testing
4. **Document exclusions** - Track any intentionally excluded rules with justification
5. **Set baselines** - Establish accessibility baselines and prevent regression
6. **Component-level testing** - Test individual components in isolation
## Process Integration
This skill integrates with the following processes:
- `accessibility-audit.js` - Comprehensive accessibility auditing
- `component-library.js` - Component accessibility validation
- `responsive-design.js` - Responsive accessibility testing
## Output Format
When 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"]
}
```
## Error Handling
- Capture detailed axe-core error messages
- Handle page load failures gracefully
- Provide fallback scanning strategies
- Log all scan configurations for reproducibility
## Constraints
- Scans require page to be fully loaded before analysis
- Dynamic content may require explicit waits
- Single-page applications need navigation handling
- iframe content requires separate scanning