Overview
The accessibility audit skill guides agents through comprehensive WCAG AA compliance verification using both automated scanning and manual testing.Quick Start
Step 1: Read Accessibility Requirements
From Project Component Rules (Accessibility Section)
- All animations: wrap in
prefers-reduced-motionmedia query AND check user’s reduced motion setting - Color contrast: ≥ 4.5:1 for text (WCAG AA)
- Interactive elements: keyboard focusable with visible focus indicator
- Dynamic content changes: use
aria-liveregions - Support high contrast mode
WCAG AA Standards
| Requirement | Standard | Details |
|---|---|---|
| Reduced motion | WCAG 2.1 | All animations respect prefers-reduced-motion and user setting |
| Color contrast | WCAG AA | Text contrast ratio ≥ 4.5:1 |
| Keyboard navigation | WCAG 2.1 | All interactive elements focusable and operable via keyboard |
| Screen reader | WCAG 2.1 | Dynamic state and reactions announced via ARIA live regions |
| High contrast mode | Custom | User-configurable high contrast theme (if applicable) |
Step 2: Automated Scan
Install and run accessibility testing tools:@axe-core/vue,vitest-axe, or Playwright’s@axe-core/playwright- Run against: main routes, key components (if testable in isolation)
- Capture all violations
- Map to WCAG criteria (e.g., 1.1.1, 1.4.3, 2.1.1, 4.1.2)
- Rule ID
- Description
- Impact (critical/serious/moderate/minor)
- Elements affected
- WCAG level (A/AA/AAA)
Step 3: Manual Audit
Keyboard Navigation
- Tab through all interactive elements
- Ensure logical order, no focus traps
- All buttons, links, inputs, custom controls focusable
- Visible focus indicator (outline or ring) - no
outline: nonewithout replacement - Escape closes modals/dropdowns
- Enter/Space activates buttons
Color Contrast
- Check text vs background: ≥ 4.5:1 for normal text, ≥ 3:1 for large text
- Use DevTools or contrast checker
- Test with design tokens - ensure no ad-hoc colors fail
ARIA Attributes
aria-labeloraria-labelledbyfor icon-only buttons, custom controlsaria-live="polite"oraria-live="assertive"for dynamic state changes, notificationsrolecorrect for custom widgets (button, link, tab, etc.)aria-expanded,aria-selected,aria-hiddenwhere appropriate
Reduced Motion
- Test with
prefers-reduced-motion: reduce(DevTools → Rendering → Emulate CSS media) - Verify animations are disabled or simplified
- Check user’s reduced motion setting
- No motion-dependent information (per WCAG 2.1)
Screen Reader
- Test with NVDA, VoiceOver, or similar
- Verify announcements for dynamic content
- Dynamic state, errors, and success messages announced
- Form labels associated, error messages linked via
aria-describedbyoraria-errormessage
High Contrast Mode
- Verify user-configurable high contrast theme works (if applicable)
- No loss of information
Step 4: Catalog Findings
| Severity | Definition | Examples |
|---|---|---|
| Critical | Blocks core functionality, fails WCAG A | Missing form labels, no keyboard access to primary actions |
| Major | Significant barrier, fails WCAG AA | Contrast < 4.5:1, missing focus indicators, no reduced motion |
| Minor | Improves experience, best practice | Redundant labels, suboptimal heading order |
- ID
- Severity
- WCAG criterion
- Description
- Location
- Fix suggestion
Step 5: Fix Critical and Major Findings
Implement fixes following project component and quality requirements:- Use semantic HTML where possible (
<button>,<a>,<nav>,<main>) - Add
aria-*attributes for custom components - Ensure
prefers-reduced-motionrespected in CSS and JS - Add or fix focus styles using design tokens for focus ring
- Verify reduced-motion behavior in tests
Step 6: Verify Fixes
- Re-run automated scan - no critical or major violations
- Manual keyboard and screen reader check on fixed areas
- Run full test suite to ensure no regressions
- Document remaining minor findings for future backlog
Required Agent Delegation
You MUST spawn these agents via the Task tool (subagent_type: "generalPurpose") at the appropriate points:
hatch3r-a11y-auditor- MUST spawn to perform the full WCAG AA compliance audit autonomously. Provide the list of surfaces/components to audit and the current violation list.
Related Skills
- Visual Refactor - Includes accessibility requirements for UI changes
- QA Validation - For end-to-end validation including accessibility
Definition of Done
- No critical a11y violations
- WCAG AA compliance on all audited surfaces
- Reduced motion respected (
prefers-reduced-motion+ user setting) - Keyboard navigation complete with visible focus
- Color contrast ≥ 4.5:1 for text
- ARIA live regions for dynamic content
- Automated scan clean for critical/major
- Manual verification completed

