From design-qa
Use when running a WCAG 2.2 AA accessibility audit on a deployed web page. Combines axe-core and Pa11y, triggers hover/focus states (which axe misses by default), tests across light/dark themes, and outputs severity-ranked findings.
npx claudepluginhub my-stacks/claude-code-skills --plugin design-qaThis skill uses the workspace's default tool permissions.
You're running a WCAG 2.2 AA scan against a deployed page.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes multiple pages for keyword overlap, SEO cannibalization risks, and content duplication. Suggests differentiation, consolidation, and resolution strategies when reviewing similar content.
Share bugs, ideas, or general feedback.
You're running a WCAG 2.2 AA scan against a deployed page.
Default axe-core scans miss:
So: run axe in multiple states, AND run Pa11y for second-opinion coverage.
The full audit is wrapped in ${CLAUDE_PLUGIN_ROOT}/bin/run-axe.sh <url>.
This script:
@axe-core/playwright AxeBuilder with WCAG 2.2 A and AA rules.a, button, [role=button], input, select, textarea):
a. Triggers :hover via page.hover(). Re-runs axe on just that element's subtree.
b. Triggers :focus via page.focus(). Re-runs axe.emulateMedia: { colorScheme: 'dark' }). Repeats steps 2-3..claude/design-qa/reports/<timestamp>/axe/<width>-<theme>-<state>.json.Then ${CLAUDE_PLUGIN_ROOT}/bin/run-pa11y.sh <url> runs Pa11y at the same widths and writes to .claude/design-qa/reports/<timestamp>/pa11y/.
After both scripts complete:
(rule_id, selector, viewport).excludeRules from .claude/design-qa/reviewer.json. Note suppressions explicitly.axe and Pa11y combined cover ~57% of WCAG. Things you should still look for in the screenshots:
prefers-reduced-motion.Return a markdown report:
## Accessibility (axe + Pa11y, WCAG 2.2 AA)
- Scanned: 3 viewports × 2 themes × 3 interaction states (default/hover/focus) = 18 axe scans
- Pa11y additionally scanned the same widths (1 theme each)
- Total unique violations: N
- Suppressed by reviewer config: N (rules: ...)
### Blockers (N)
- `color-contrast` on `.cta-primary:hover` at 1440 dark — 3.1:1 vs 4.5:1 required. Evidence: `axe/1440-dark-hover.json`.
### High (N)
...
Include the path to all underlying JSON in case the parent agent wants to drill in.