$npx -y skills add anthropics/knowledge-work-plugins --skill accessibility-reviewRun a WCAG 2.1 AA accessibility audit on a design or page. Trigger with "audit accessibility", "check a11y", "is this accessible?", or when reviewing a design for color contrast, keyboard navigation, touch target size, or screen reader behavior before handoff.
| 1 | # /accessibility-review |
| 2 | |
| 3 | > If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md). |
| 4 | |
| 5 | Audit a design or page for WCAG 2.1 AA accessibility compliance. |
| 6 | |
| 7 | ## Usage |
| 8 | |
| 9 | ``` |
| 10 | /accessibility-review $ARGUMENTS |
| 11 | ``` |
| 12 | |
| 13 | Audit for accessibility: @$1 |
| 14 | |
| 15 | ## WCAG 2.1 AA Quick Reference |
| 16 | |
| 17 | ### Perceivable |
| 18 | - **1.1.1** Non-text content has alt text |
| 19 | - **1.3.1** Info and structure conveyed semantically |
| 20 | - **1.4.3** Contrast ratio >= 4.5:1 (normal text), >= 3:1 (large text) |
| 21 | - **1.4.11** Non-text contrast >= 3:1 (UI components, graphics) |
| 22 | |
| 23 | ### Operable |
| 24 | - **2.1.1** All functionality available via keyboard |
| 25 | - **2.4.3** Logical focus order |
| 26 | - **2.4.7** Visible focus indicator |
| 27 | - **2.5.5** Touch target >= 44x44 CSS pixels |
| 28 | |
| 29 | ### Understandable |
| 30 | - **3.2.1** Predictable on focus (no unexpected changes) |
| 31 | - **3.3.1** Error identification (describe the error) |
| 32 | - **3.3.2** Labels or instructions for inputs |
| 33 | |
| 34 | ### Robust |
| 35 | - **4.1.2** Name, role, value for all UI components |
| 36 | |
| 37 | ## Common Issues |
| 38 | |
| 39 | 1. Insufficient color contrast |
| 40 | 2. Missing form labels |
| 41 | 3. No keyboard access to interactive elements |
| 42 | 4. Missing alt text on meaningful images |
| 43 | 5. Focus traps in modals |
| 44 | 6. Missing ARIA landmarks |
| 45 | 7. Auto-playing media without controls |
| 46 | 8. Time limits without extension options |
| 47 | |
| 48 | ## Testing Approach |
| 49 | |
| 50 | 1. Automated scan (catches ~30% of issues) |
| 51 | 2. Keyboard-only navigation |
| 52 | 3. Screen reader testing (VoiceOver, NVDA) |
| 53 | 4. Color contrast verification |
| 54 | 5. Zoom to 200% — does layout break? |
| 55 | |
| 56 | ## Output |
| 57 | |
| 58 | ```markdown |
| 59 | ## Accessibility Audit: [Design/Page Name] |
| 60 | **Standard:** WCAG 2.1 AA | **Date:** [Date] |
| 61 | |
| 62 | ### Summary |
| 63 | **Issues found:** [X] | **Critical:** [X] | **Major:** [X] | **Minor:** [X] |
| 64 | |
| 65 | ### Findings |
| 66 | |
| 67 | #### Perceivable |
| 68 | | # | Issue | WCAG Criterion | Severity | Recommendation | |
| 69 | |---|-------|---------------|----------|----------------| |
| 70 | | 1 | [Issue] | [1.4.3 Contrast] | 🔴 Critical | [Fix] | |
| 71 | |
| 72 | #### Operable |
| 73 | | # | Issue | WCAG Criterion | Severity | Recommendation | |
| 74 | |---|-------|---------------|----------|----------------| |
| 75 | | 1 | [Issue] | [2.1.1 Keyboard] | 🟡 Major | [Fix] | |
| 76 | |
| 77 | #### Understandable |
| 78 | | # | Issue | WCAG Criterion | Severity | Recommendation | |
| 79 | |---|-------|---------------|----------|----------------| |
| 80 | | 1 | [Issue] | [3.3.2 Labels] | 🟢 Minor | [Fix] | |
| 81 | |
| 82 | #### Robust |
| 83 | | # | Issue | WCAG Criterion | Severity | Recommendation | |
| 84 | |---|-------|---------------|----------|----------------| |
| 85 | | 1 | [Issue] | [4.1.2 Name, Role, Value] | 🟡 Major | [Fix] | |
| 86 | |
| 87 | ### Color Contrast Check |
| 88 | | Element | Foreground | Background | Ratio | Required | Pass? | |
| 89 | |---------|-----------|------------|-------|----------|-------| |
| 90 | | [Body text] | [color] | [color] | [X]:1 | 4.5:1 | ✅/❌ | |
| 91 | |
| 92 | ### Keyboard Navigation |
| 93 | | Element | Tab Order | Enter/Space | Escape | Arrow Keys | |
| 94 | |---------|-----------|-------------|--------|------------| |
| 95 | | [Element] | [Order] | [Behavior] | [Behavior] | [Behavior] | |
| 96 | |
| 97 | ### Screen Reader |
| 98 | | Element | Announced As | Issue | |
| 99 | |---------|-------------|-------| |
| 100 | | [Element] | [What SR says] | [Problem if any] | |
| 101 | |
| 102 | ### Priority Fixes |
| 103 | 1. **[Critical fix]** — Affects [who] and blocks [what] |
| 104 | 2. **[Major fix]** — Improves [what] for [who] |
| 105 | 3. **[Minor fix]** — Nice to have |
| 106 | ``` |
| 107 | |
| 108 | ## If Connectors Available |
| 109 | |
| 110 | If **~~design tool** is connected: |
| 111 | - Inspect color values, font sizes, and touch targets directly from Figma |
| 112 | - Check component ARIA roles and keyboard behavior in the design spec |
| 113 | |
| 114 | If **~~project tracker** is connected: |
| 115 | - Create tickets for each accessibility finding with severity and WCAG criterion |
| 116 | - Link findings to existing accessibility remediation epics |
| 117 | |
| 118 | ## Tips |
| 119 | |
| 120 | 1. **Start with contrast and keyboard** — These catch the most common and impactful issues. |
| 121 | 2. **Test with real assistive technology** — My audit is a great start, but manual testing with VoiceOver/NVDA catches things I can't. |
| 122 | 3. **Prioritize by impact** — Fix issues that block users first, polish later. |