accessibility
Accessibility patterns for WCAG 2.2 compliance, keyboard focus management, React Aria component patterns, cognitive inclusion, native HTML-first philosophy, and user preference honoring. Use when implementing screen reader support, keyboard navigation, ARIA patterns, focus traps, accessible component libraries, reduced motion, or cognitive accessibility.
pinned to #0e54dbcupdated 2 weeks ago
Ask your AI client: “install skills/accessibility”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install skills/accessibilitymetahub onboarded this repo on the author's behalf.
If you own github.com/yonatangross/orchestkit on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
201
Last commit
2 weeks ago
Latest release
published
- #agent-orchestration
- #agents
- #ai-agents
- #ai-development
- #anthropic
- #claude-code
- #claude-code-plugin
- #claude-plugin
- #developer-tools
- #fastapi
- #langgraph
- #llm
- #mcp
- #rag
- #react
- #security
- #testing
- #typescript
About this skill
Pulled from SKILL.md at publish time.
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.
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.0e54dbc· 2 weeks ago
Kind-specific
31Skill: SKILL.md present
found at src/skills/accessibility/SKILL.md · frontmatter source: SKILL.md
Skill: body content present
837 words · 6,704 chars · 12 sections · 2 code blocks
Skill: triggers declaredwarn
No `trigger` phrases in SKILL.md frontmatter
Add `trigger:` lines so Claude knows when to activate this skill — e.g. `when building MCP servers` or `for diagram creation`.
Skill: allowed-tools scope
no allowed-tools restriction (Claude may use anything)
Release history
1- releasecurrent0e54dbcwarn2 weeks ago
Contents
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>oraria-label - Keyboard traps: Focus that cannot escape without Escape key
- Removing focus outline:
outline: nonewithout replacement indicator - Positive tabindex: Using
tabindex > 0(disrupts natural order) - Div with onClick: Using
<div onClick>instead of<button>oruseButton - Manual focus in modals: Using
useEffect+ref.focus()instead ofFocusScope - 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 testingdesign-system-starter- Accessible component library patternsork:i18n-date-patterns- RTL layout and locale-aware formattingmotion-animation-patterns- Reduced motion and animation accessibility
Reviews
No reviews yet. Be the first.
Related
React Doctor
Your agent writes bad React. This catches it
orchestration-patterns
>
migration-patterns
>
mh install skills/accessibility