Help us improve
Share bugs, ideas, or general feedback.
From hb
Audits frontend code for WCAG compliance using an accessibility checklist and axe-core. Reports violations grouped by severity with file:line references and fixes.
npx claudepluginhub helderberto/agent-skills --plugin hbHow this skill is triggered — by the user, by Claude, or both
Slash command
/hb:a11y-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. Detect framework from `package.json` (React, Vue, Svelte)
Audits web projects for WCAG 2.2 AA accessibility gaps in HTML, React/TSX, Vue, Svelte components, CSS, and templates. Prioritizes issues by user impact and recommends fixes without code changes.
Runs Maestro-style accessibility audits for WCAG compliance, ARIA usage, keyboard navigation, and screen reader compatibility. Delivers findings with severity, locations, and remediation patterns.
Share bugs, ideas, or general feedback.
package.json (React, Vue, Svelte)npx @axe-core/cli@4 http://localhost:3000
Images:
<img> has alt; decorative images use alt=""alt or linked descriptionForms:
<label> (via htmlFor/for or aria-label)Interactive elements:
tabindex="-1" on clickable elements)<div onClick> or <span onClick> -- use <button> or <a>aria-label)Structure:
<h1> per page; heading levels not skipped<ul>/<ol>, not manual bullet charactersColor & contrast:
Navigation:
<main>, <nav>, <header>, <footer>Dynamic content:
aria-live or aria-busy)// Bad: non-semantic interactive element
<div onClick={handleClose}>x</div>
// Good
<button onClick={handleClose} aria-label="Close dialog">x</button>
// Bad: unlabeled input
<input type="text" placeholder="Email" />
// Good
<label htmlFor="email">Email</label>
<input id="email" type="email" />
// Bad: color-only error
<input style={{ border: '1px solid red' }} />
// Good
<input aria-invalid="true" aria-describedby="email-error" />
<span id="email-error" role="alert">Email is required</span>
Group by WCAG criterion:
Use file:line references. Include the fix for each finding.
file:line + violation + WCAG criterion + fix@axe-core/cli fails (no dev server) -- fall back to static analysis; note axe was skipped.html, .jsx, .tsx, .vue files