a11y
Accessibility Audit
Workflow
- Detect framework from
package.json(React, Vue, Svelte) - Run static analysis — grep JSX/TSX/HTML files for violations (see wcag-checklist.md):
- Missing
alton<img> - Missing
aria-labelon icon-only buttons and inputs without<label> - Non-semantic interactive elements (
<div onClick>,<span onClick>) - Missing
htmlFor/foron<label> - Heading hierarchy skips (h1 → h3)
- Missing landmark roles (
<main>,<nav>,<header>)
- Missing
- If dev server is running, optionally run axe-core CLI:
npx @axe-core/cli@4 http://localhost:3000 - Report findings grouped by severity
Output format
Group by WCAG criterion:
- Critical (WCAG A) — blocks assistive technology users
- Serious (WCAG AA) — significantly impacts usability
- Suggestions — best practice improvements
Use file:line references. Include the fix for each finding.
Rules
- Report
file:line+ violation + WCAG criterion + suggested fix - Never auto-fix — always show what to change and why
- Prioritize keyboard navigation and screen reader issues
Error Handling
- If
@axe-core/clifails (no running dev server) → fall back to static analysis only; note axe scan was skipped - If no JSX/HTML files found → report project structure is incompatible and stop
- If framework is undetected → scan all
.html,.jsx,.tsx,.vuefiles
More from helderberto/skills
refactor-plan
Create structured refactoring plans. Use when user wants to plan a refactor, needs a refactoring strategy, or mentions breaking down large changes into small commits. Don't use for implementing code changes directly, small one-line fixes, or renaming a single variable.
44coverage
Check test coverage for unstaged changes. Use when user asks to "check coverage", "/coverage", or wants to see which unstaged changes lack test coverage. Don't use for projects without lcov coverage output, running the full test suite without coverage, or checking coverage of already-committed changes.
38e2e
Write end-to-end tests for user flows using Cypress. Use when user asks to "write e2e tests", "/e2e", "add Cypress tests", or wants to test a user flow end-to-end. Don't use for unit tests, component tests, or projects using Playwright, Puppeteer, or other non-Cypress frameworks.
29code-review
Review a GitHub Pull Request for bugs, security, performance, and code quality. Use when user asks to review a PR or wants pull request feedback. Don't use for reviewing local uncommitted changes, creating new PRs, or merging branches.
29architecture-audit
Explore a codebase to surface architectural friction and propose refactors toward deep modules (simple interface, large implementation) as GitHub issue RFCs. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable. Don't use for small one-off refactors or single-file cleanups.
24a11y-audit
Audit accessibility compliance in frontend code. Use when user asks to "check accessibility", "/a11y-audit", "audit a11y", "check WCAG", or wants to find accessibility issues. Don't use for backend code, non-UI files, or projects without HTML/JSX output.
17