AgentSkillsCN

accessibility-audit

当您需要对UI组件或页面进行无障碍合规性审计、检查WCAG一致性、排查键盘导航问题、色彩对比度问题,或在上线前进行无障碍验证时,可使用此技能。

SKILL.md
--- frontmatter
name: accessibility-audit
description: Use when auditing UI components or pages for accessibility compliance, checking WCAG conformance, identifying keyboard navigation issues, color contrast problems, and pre-launch accessibility verification

Accessibility Audit Skill

Audit UI accessibility against WCAG 2.1/2.2 guidelines.

When to Use

  • Reviewing UI components for accessibility compliance
  • Auditing pages for WCAG conformance
  • Identifying keyboard navigation issues
  • Checking color contrast
  • Pre-launch accessibility verification

Core Workflow

Phase 1: Visual Accessibility Analysis

code
Perform a comprehensive accessibility audit:

1. COLOR CONTRAST
   - Check text/background contrast ratios
   - WCAG AA: 4.5:1 normal text, 3:1 large text
   - Identify failing elements

2. VISUAL HIERARCHY
   - Heading structure (logical H1-H6)
   - Visual grouping of related elements
   - Touch targets (44x44px minimum)

3. CONTENT ACCESSIBILITY
   - Images needing alt text
   - Icons without text labels
   - Color-only information

4. INTERACTIVE ELEMENTS
   - Buttons/links with unclear purpose
   - Form fields without labels
   - Missing error states

5. MOTION
   - Auto-playing content
   - Potential vestibular triggers

Provide WCAG criterion references for each issue.

Phase 2: Component Checklist

For each interactive component:

markdown
## Component: [Name]

### Keyboard Navigation

- [ ] Focusable with Tab
- [ ] Visible focus indicator
- [ ] Operable with Enter/Space
- [ ] Escape closes modals
- [ ] Arrow keys for menus

### Screen Reader

- [ ] Meaningful accessible name
- [ ] Role announced correctly
- [ ] State changes announced
- [ ] Errors associated with inputs

### Visual

- [ ] 4.5:1 contrast ratio (text)
- [ ] 3:1 contrast ratio (UI)
- [ ] 44x44px touch targets
- [ ] No color-only information

### Motion

- [ ] Respects prefers-reduced-motion
- [ ] No auto-play >5 seconds

WCAG Quick Reference

Level A (Minimum)

CriterionDescriptionFix
1.1.1Non-text ContentAdd alt text
1.3.1Info and RelationshipsUse semantic HTML
2.1.1KeyboardAll via keyboard
2.4.1Bypass BlocksSkip links
4.1.2Name, Role, ValueARIA labels

Level AA (Recommended)

CriterionDescriptionFix
1.4.3Contrast4.5:1 text, 3:1 UI
1.4.4Resize TextSupport 200% zoom
2.4.6HeadingsDescriptive headings
2.4.7Focus VisibleClear focus indicators

Common Fixes

Accessible Button

tsx
// Bad
<div onClick={handleClick}>Click me</div>

// Good
<button type="button" onClick={handleClick}>
  Click me
</button>

Accessible Icon Button

tsx
// Bad
<button><Icon /></button>

// Good
<button aria-label="Close dialog">
  <Icon aria-hidden="true" />
</button>

Form with Error

tsx
<label htmlFor="email">Email</label>
<input
  id="email"
  aria-describedby="email-error"
  aria-invalid={hasError}
/>
{hasError && (
  <span id="email-error" role="alert">
    Please enter a valid email
  </span>
)}

Report Template

markdown
# Accessibility Audit Report

**Date:** [Date]
**Page:** [Name]
**WCAG Level:** AA

## Summary

- Critical Issues: X
- Major Issues: X
- Minor Issues: X

## Issues

### [Issue Title]

- **Severity:** Critical/Major/Minor
- **WCAG:** [X.X.X]
- **Element:** [selector]
- **Issue:** [Description]
- **Fix:** [Recommendation]

Storage

Save audit reports to .opencode/memory/design/accessibility/

Related Skills

NeedSkill
Design qualityfrontend-design
UI researchui-ux-research