home / skills / richtabor / agent-skills / accessibility-review

accessibility-review skill

/skills/accessibility-review

This skill performs manual accessibility reviews against WCAG AA, identifying issues and suggesting practical fixes to improve inclusivity.

npx playbooks add skill richtabor/agent-skills --skill accessibility-review

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
6.3 KB
---
name: accessibility-review
description: Reviews UI for accessibility issues against WCAG 2.1/2.2 AA. Triggers on "is this accessible?", "check accessibility", or contrast/a11y review requests.
---

# Accessibility Review

## Overview

This skill enables manual accessibility reviews of web content, components, and applications against WCAG 2.1/2.2 Level AA standards. Reviews focus on practical, modern accessibility requirements without being overly pedantic.

## When to Use This Skill

Use this skill when the user asks questions like:
- "Is this accessible?"
- "Can you review the color contrast?"
- "Check this component for accessibility issues"
- "Does this meet accessibility standards?"
- Any request to review, check, or validate accessibility

## Review Process

### 1. Identify the Target

Determine what needs to be reviewed:
- Specific component (button, form, modal, etc.)
- Full page or application
- Code file or set of files
- Design mockup or screenshot

### 2. Conduct Manual Review

Use the WCAG checklist in `references/wcag-checklist.md` to systematically review the target against modern accessibility standards.

Focus on the most common and impactful issues:
- **Perceivable**: Color contrast, text alternatives, semantic structure
- **Operable**: Keyboard navigation, focus management, interactive elements
- **Understandable**: Clear labels, error handling, consistent navigation
- **Robust**: Valid HTML, ARIA usage, compatibility

### 3. Prioritize Findings

Classify each issue as:

**Critical** - Blocks users from accessing core functionality:
- Missing alt text on meaningful images
- Non-keyboard accessible interactive elements
- Insufficient color contrast (below 4.5:1 for normal text, 3:1 for large text)
- Forms without proper labels
- Missing focus indicators
- Inaccessible modal/dialog patterns
- Auto-playing media without controls

**Warning** - Creates friction but doesn't fully block access:
- Suboptimal heading hierarchy (skipped levels)
- Missing ARIA landmarks
- Link text that's unclear out of context
- Redundant or unnecessary ARIA
- Touch targets smaller than 44x44px
- Missing skip links
- Non-descriptive error messages

### 4. Stepped Review (One Issue at a Time)

**IMPORTANT**: Do NOT present all findings at once. Review issues one at a time, waiting for user decision before proceeding.

**4.1 Start with Overview**

Begin by telling the user how many issues were found:

```
Found [X] accessibility issues ([Y] critical, [Z] warnings).

Let's review them one at a time. I'll present each issue with a recommended fix, and you can decide to:
- **Fix** — I'll implement the change
- **Ignore** — Tell me why, and I'll note it

Starting with critical issues first.
```

**4.2 Present Each Issue**

For each issue, present ONE at a time using this format:

```
───────────────────────────────────
Issue [1/X]: [Critical/Warning]
───────────────────────────────────

**Problem**: [Clear description of the issue]

**Location**: `file_path:line_number`
[Show the relevant code snippet]

**Impact**: [How this affects users — be specific about who and how]

**Recommended Fix**:
[Specific code change or approach]

───────────────────────────────────
Fix this issue, or ignore? (If ignoring, please share why)
```

**4.3 Handle User Response**

**If user says "fix":**
1. Implement the fix
2. Confirm: "Fixed. [Brief description of what changed]"
3. Move to next issue

**If user says "ignore" with reason:**
1. Acknowledge: "Noted — ignoring because: [their reason]"
2. Track the decision (see 4.4)
3. Move to next issue

**If user says "ignore" without reason:**
1. Ask: "Got it. Quick note on why? (Helps for future reference)"
2. Accept any response and move on

**4.4 Track Decisions**

Keep a running tally as you go through issues. After all issues are reviewed, present a summary.

### 5. Final Summary

After reviewing all issues, present a summary:

```
## Accessibility Review Complete

**Reviewed**: [X] issues ([Y] critical, [Z] warnings)

### Fixed ([N])
- [Issue description] — `file:line`
- [Issue description] — `file:line`

### Ignored ([N])
- [Issue description] — Reason: [user's reason]
- [Issue description] — Reason: [user's reason]

### Remaining Concerns
[Any patterns noticed, suggestions for future, or issues that were ignored but warrant reconsideration]
```

## Review Guidelines

**Be Practical**: Focus on issues that genuinely impact users. Modern WCAG 2.1/2.2 Level AA is the standard—avoid over-engineering or citing obscure edge cases.

**Be Specific**: Reference actual code locations using `file_path:line_number` format when possible.

**Be Constructive**: Provide actionable fixes, not just problems. Include code examples when helpful.

**Consider Context**: Some patterns may have accessibility trade-offs. Acknowledge these and suggest the most accessible approach for the use case.

## Common Patterns to Check

### Interactive Elements
- All interactive elements must be keyboard accessible (Enter/Space to activate)
- Focus must be visible with clear indicators
- Custom controls need proper ARIA roles and states

### Forms
- All inputs must have associated labels (explicit or aria-label)
- Error messages must be programmatically associated with fields
- Required fields must be indicated clearly

### Color and Contrast
- Text contrast: 4.5:1 minimum for normal text, 3:1 for large text (18pt+ or 14pt+ bold)
- UI components: 3:1 contrast for interactive elements and their states
- Don't rely on color alone to convey information

### Images and Media
- Meaningful images need descriptive alt text
- Decorative images should have empty alt (alt="")
- Videos need captions, audio content needs transcripts

### Structure
- Use semantic HTML (nav, main, article, etc.)
- Heading hierarchy should be logical (h1 → h2 → h3)
- ARIA landmarks help screen reader navigation

## Resources

This skill includes:

### references/wcag-checklist.md
Comprehensive checklist of WCAG 2.1/2.2 Level AA requirements organized by principle (Perceivable, Operable, Understandable, Robust). Reference this during reviews to ensure thorough coverage of accessibility standards.

Overview

This skill performs manual accessibility reviews of web pages, components, code, and designs against WCAG 2.1/2.2 Level AA. It focuses on practical, high-impact issues and provides one-at-a-time findings with concrete fixes and decisions tracked throughout the review.

How this skill works

I identify the review target (component, page, code file, or mockup) and run a systematic checklist derived from WCAG principles: Perceivable, Operable, Understandable, Robust. I prioritize issues as Critical or Warning, present each finding one at a time with impact and a recommended fix, and wait for your instruction to fix or ignore before proceeding.

When to use it

  • You want a human-guided accessibility assessment: "Is this accessible?"
  • Check color contrast, focus, or keyboard navigation for a component or page
  • Validate form labels, error handling, or ARIA usage in code
  • Review a design mockup or screenshot for accessibility gaps
  • Prioritize accessibility worklist for a release

Best practices

  • Start with usable, high-impact items: contrast, keyboard access, labels
  • Present and resolve issues one at a time to keep decisions actionable
  • Always reference file_path:line_number when reviewing code
  • Provide concrete code changes or markup examples for each fix
  • Track fix/ignore decisions and deliver a final summary with remaining concerns

Example use cases

  • Review a React button component for keyboard, focus, and ARIA correctness
  • Audit a landing page for color contrast, semantic headings, and image alt text
  • Assess a modal dialog implementation for focus trapping and accessible dismissal
  • Validate form inputs for labels, error associations, and required-field handling
  • Scan a design mockup to call out non-color distinctions and insufficient contrast

FAQ

Do you fix issues automatically or just report them?

I present each issue and will implement fixes when you explicitly choose 'Fix'. If you prefer, I can provide patch-ready code snippets instead.

Which WCAG version do you follow?

Reviews use WCAG 2.1 and 2.2 Level AA guidance and focus on practical, commonly impactful requirements.

How are issues prioritized?

Issues are classified as Critical (blocks access or core functionality) or Warning (friction that doesn't fully block access). Criticals are reviewed first.