a11y-deep

Implements WCAG 2.2 AA accessibility testing for Astro sites via axe CI scans and manual audits.

Updated Jun 17, 2026
One-click install
npx skills add https://github.com/ccediland/web-stack-skills --skill a11y-deep-ccediland
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: a11y-deep
Source: https://github.com/ccediland/web-stack-skills/tree/main/plugin/skills/a11y-deep
Command: npx skills add https://github.com/ccediland/web-stack-skills --skill a11y-deep-ccediland

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @axe-core/playwright, playwright, and includes references (resource) components.

What problem does it solve? A green Lighthouse accessibility score is not proof of WCAG compliance: it runs only a subset of axe rules as a weighted average, and even a full axe pass detects only about half of real accessibility issues. This Skill establishes a three-layer accessibility discipline so Astro sites can credibly claim WCAG 2.2 AA conformance. ## Core Features & Use Cases - Zero-violations axe CI gate: A Playwright-based scan of every built page using @axe-core/playwright with WCAG 2.2 tags and the target-size rule explicitly enabled, failing the build on any violation. - Codified manual smoke checklist: A per-release keyboard, screen reader (NVDA/VoiceOver), 400% reflow, and form-semantics pass covering the six WCAG 2.2 A/AA criteria that automation cannot detect. - WCAG-EM 2.0 audit structure: A five-step sample-based evaluation methodology reserved for public conformance statements, plus Astro-specific guidance for ClientRouter announcements and island hydration windows. - Use Case: A client requires a WCAG 2.2 AA conformance statement for their marketing site. Use this Skill to wire the axe job into CI, run the manual smoke before each release, and structure the formal audit that the public statement quotes. ## Quick Start Set up a zero-violations axe accessibility scan in CI for my Astro site and give me the manual WCAG 2.2 checklist for each release.

Frequently Asked Questions about a11y-deep

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add an axe accessibility scan to CI for an Astro site?▼

Use @axe-core/playwright in a script that serves the built dist folder statically, visits every generated page with Playwright Chromium, and runs AxeBuilder with WCAG 2.x tags. Exit non-zero when any violation is found so the GitHub Actions job fails.

Is a 100 Lighthouse accessibility score enough for WCAG compliance?▼

No. Lighthouse runs only about 66 of axe's 125 rules as a weighted average, so pages can score 0.95+ while failing audits. Even a full axe pass detects roughly 57% of issues by volume, so manual keyboard and screen reader testing remains necessary.

Which WCAG 2.2 criteria cannot be tested automatically?▼

Five of the six new A/AA criteria require human judgment: consistent help, redundant entry, focus not obscured, dragging movements, and accessible authentication. Only target size is automated in axe-core 4.13, and it ships disabled by default so it must be enabled explicitly.

Does axe-core test the target-size rule by default?▼

No. In axe-core 4.13 the target-size rule is tagged wcag22aa but ships disabled. Enable it explicitly via the rules option in AxeBuilder, for example options({ rules: { 'target-size': { enabled: true } } }).

When should I run a WCAG-EM audit instead of automated scans?▼

Reserve a WCAG-EM 2.0 audit for when the site makes a public conformance or accessibility statement. It defines scope, explores the site, selects representative plus random sample pages, evaluates every applicable criterion, and produces the report the public statement quotes.

What accessibility issues do Astro islands and ClientRouter create?▼

Islands hydrated with client:visible or client:idle render interactive-looking controls before JavaScript attaches, so keyboard users can reach dead controls. ClientRouter announces the page title on navigation, so every page needs a unique descriptive title and focus must be managed after view transitions.