accessibility

Installation
SKILL.md

Accessibility

Comprehensive patterns for building accessible web applications: WCAG 2.2 AA compliance, keyboard focus management, React Aria component patterns, native HTML-first philosophy, cognitive inclusion, and user preference honoring. Each category has individual rule files in rules/ loaded on-demand.

Quick Reference

Category Rules Impact When to Use
WCAG Compliance 3 CRITICAL Color contrast, semantic HTML, automated testing
POUR Exit Criteria 1 CRITICAL Falsifiable pass/fail thresholds for each WCAG 2.2 AA criterion
Static Anti-Patterns 1 HIGH Grep-able patterns detectable without a browser
Focus Management 3 HIGH Focus traps, focus restoration, keyboard navigation
React Aria 3 HIGH Accessible components, form hooks, overlay patterns
Modern Web Accessibility 3 CRITICAL/HIGH Native HTML first, cognitive inclusion, user preferences

Total: 14 rules across 6 categories

Quick Start

// Semantic HTML with ARIA
<main>
  <article>
    <header><h1>Page Title</h1></header>
    <section aria-labelledby="features-heading">
      <h2 id="features-heading">Features</h2>
    </section>
  </article>
</main>
// Focus trap with React Aria
import { FocusScope } from 'react-aria';

<FocusScope contain restoreFocus autoFocus>
  <div role="dialog" aria-modal="true">
    {children}
  </div>
</FocusScope>

WCAG Compliance

WCAG 2.2 AA implementation for inclusive, legally compliant web applications.

Rule File Key Pattern
Color Contrast ${CLAUDE_SKILL_DIR}/rules/wcag-color-contrast.md 4.5:1 text, 3:1 UI components, focus indicators
Semantic HTML ${CLAUDE_SKILL_DIR}/rules/wcag-semantic-html.md Landmarks, headings, ARIA labels, form structure
Testing ${CLAUDE_SKILL_DIR}/rules/wcag-testing.md axe-core, Playwright a11y, screen reader testing

POUR Exit Criteria

Concrete pass/fail thresholds for each WCAG 2.2 AA criterion — replaces vague "meets requirements" checks.

Rule File Key Pattern
POUR Exit Criteria ${CLAUDE_SKILL_DIR}/rules/pour-exit-criteria.md Falsifiable checklist: image alt, contrast ratios, focus indicators, touch targets, ARIA states

Static Anti-Patterns

Grep-able anti-patterns detectable via static analysis or code review — no browser needed.

Rule File Key Pattern
A11y Anti-Patterns (Static) ${CLAUDE_SKILL_DIR}/rules/a11y-antipatterns-static.md Focus removal, missing labels, autoplay, icon-only buttons, div-click handlers

Focus Management

Keyboard focus management patterns for accessible interactive widgets.

Rule File Key Pattern
Focus Trap ${CLAUDE_SKILL_DIR}/rules/focus-trap.md Modal focus trapping, FocusScope, Escape key
Focus Restoration ${CLAUDE_SKILL_DIR}/rules/focus-restoration.md Return focus to trigger, focus first error
Keyboard Navigation ${CLAUDE_SKILL_DIR}/rules/focus-keyboard-nav.md Roving tabindex, skip links, arrow keys

React Aria

Adobe React Aria hooks for building WCAG-compliant interactive UI.

Rule File Key Pattern
Components ${CLAUDE_SKILL_DIR}/rules/aria-components.md useButton, useDialog, useMenu, FocusScope
Forms ${CLAUDE_SKILL_DIR}/rules/aria-forms.md useComboBox, useTextField, useListBox
Overlays ${CLAUDE_SKILL_DIR}/rules/aria-overlays.md useModalOverlay, useTooltip, usePopover

Modern Web Accessibility

2026 best practices: native HTML first, cognitive inclusion, and honoring user preferences.

Rule File Key Pattern
Native HTML First ${CLAUDE_SKILL_DIR}/rules/wcag-native-html-first.md <dialog>, <details>, native over custom ARIA
Cognitive Inclusion ${CLAUDE_SKILL_DIR}/rules/wcag-cognitive-inclusion.md ADHD/autism/dyslexia support, chunked content, notification management
User Preferences ${CLAUDE_SKILL_DIR}/rules/wcag-user-preferences.md prefers-reduced-motion, forced-colors, prefers-contrast, zoom

Key Decisions

Decision Recommendation
Conformance level WCAG 2.2 AA (legal standard: ADA, Section 508)
Contrast ratio 4.5:1 normal text, 3:1 large text and UI components
Target size 24px min (WCAG 2.5.8), 44px for touch
Focus indicator 3px solid outline, 3:1 contrast
Component library React Aria hooks for control, react-aria-components for speed
State management react-stately hooks (designed for a11y)
Focus management FocusScope for modals, roving tabindex for widgets
Testing jest-axe (unit) + Playwright axe-core (E2E)

Anti-Patterns (FORBIDDEN)

  • Div soup: Using <div> instead of semantic elements (<nav>, <main>, <article>)
  • Color-only information: Status indicated only by color without icon/text
  • Missing labels: Form inputs without associated <label> or aria-label
  • Keyboard traps: Focus that cannot escape without Escape key
  • Removing focus outline: outline: none without replacement indicator
  • Positive tabindex: Using tabindex > 0 (disrupts natural order)
  • Div with onClick: Using <div onClick> instead of <button> or useButton
  • Manual focus in modals: Using useEffect + ref.focus() instead of FocusScope
  • Auto-playing media: Audio/video that plays without user action
  • ARIA overuse: Using ARIA when semantic HTML suffices

Detailed Documentation

Resource Description
${CLAUDE_SKILL_DIR}/scripts/ Templates: accessible form, focus trap, React Aria components
${CLAUDE_SKILL_DIR}/checklists/ WCAG audit, focus management, React Aria component checklists
${CLAUDE_SKILL_DIR}/references/ WCAG criteria reference, focus patterns, React Aria hooks API
${CLAUDE_SKILL_DIR}/references/ux-thresholds-quick.md UI/UX thresholds quick reference: contrast, touch targets, cognitive load, typography, forms
${CLAUDE_SKILL_DIR}/examples/ Complete accessible component examples

Related Skills

  • ork:testing-e2e - E2E testing patterns including accessibility testing
  • design-system-starter - Accessible component library patterns
  • ork:i18n-date-patterns - RTL layout and locale-aware formatting
  • motion-animation-patterns - Reduced motion and animation accessibility
Weekly Installs
123
GitHub Stars
150
First Seen
Feb 13, 2026
Installed on
opencode113
codex107
gemini-cli105
github-copilot104
cursor101
amp100