accessibility-audit
Skill1 starsChanged 46 days agoMITView on GitHub
Language- and framework-agnostic accessibility protocol for auditing, remediating, and validating web UI code against WCAG 2.2 Level AA standards. Triggers whenever an agent is asked to "check accessibility", "is this WCAG compliant?", "add ARIA to this component", "conduct an a11y audit", "keyboard navigation is broken", or "screen reader doesn't read this". Covers semantic HTML, color contrast (4.5:1), visible focus states, ARIA widget patterns, form labelling, reduced motion, and multi-layer manual testing.
55 other projects use a version of this.
Adopted by
Most recently taken up by
- ishandutta2007/Awesome-Claude-Skillstheir own version, first seen Nov 8, 2026
- ainurdev/mystical-assistanttheir own version, first seen Nov 8, 2026
- mzeleniuk/ClaudeVueProjectTemplatetheir own version, first seen Nov 8, 2026
- Smaui94/ClaudeSkillCollectiontheir own version, first seen Nov 8, 2026
- memi-design/design-skillstheir own version, first seen Nov 8, 2026
- Cure-Consulting-Group/ProductEngineeringSkillstheir own version, first seen Nov 4, 2026
Used with
Projects with it also use design-system-audit, flaky-test-triage and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jpoindexterSkilldesign-system-audit
Audit code for design system violations - grid spacing, tokens, existing components
Also in 4 projects that use this
SUDARSHANCHAUDHARISkillflaky-test-triage
Diagnoses inconsistent test results by separating product nondeterminism, automation defects, shared data, timing, infrastructure, environment, order, and concurrency effects.
Also in 3 projects that use this
tekumaraSkillapi-design-review
Reviews REST API design by inventorying routes, finding overlapping functionality, comparing payloads and pagination, and checking resource naming, URL structure, identifiers, errors, idempotency, and timestamps. Use when asked to review API routes, compare endpoints, find redundant or superseding operations, assess contract consistency, or run a REST API design review.
Also in 3 projects that use this
BufferoverflovvSkillobservability-setup
Add production observability to a FastMCP server: request IDs, slow-request logging, structured log fields, and optional Prometheus metrics. Use when: hardening logging for production, adding request tracing or correlation IDs, setting up slow-request alerts, adding a /metrics endpoint, or improving structured log output beyond the base middleware.
Also in 3 projects that use this
mmondoraSkillinfrastructure-as-code
Infrastructure as Code with Terraform and Pulumi. State management, modularity, drift detection, secrets handling. Use when provisioning cloud resources, writing Terraform/Pulumi modules, or managing infrastructure configuration.
Also in 3 projects that use this
OpenAISkilldesign-qa
Internal prototype QA helper. Use only after a Product Design prototype, URL-to-code build, or image-to-code build has a source visual target and a rendered implementation to compare before handoff. Do not use for broad UX critique, design critique, product audits, or flow reviews; route those user-facing requests to audit.
Also in 3 projects that use this
Other versions55 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 55
- me2resh/apexyard★ 542same name
- github/replica★ 230same name
- cuellarfr/design-skills★ 94same name
- adityareddy-dev/deskstudio★ 43same name
- launchapp-dev/animus-cli★ 39same name
- kumaran-is/claude-code-onboarding★ 35same name
- 5throck/ai-workspace-standards★ 25same name
- Indium-AI-Labs/indium-agentkit★ 18same name
- Ionate-Technologies/indium-agentkit★ 17same name
- ishandutta2007/Awesome-Claude-Skills★ 16same name
45 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- agent-skills-authoringSkill
- api-designSkill
- ci-cd-pipelineSkill
- code-reviewSkill
- design-system-adapterSkill
- docker-and-containersSkill
- docs-and-adrSkill
- git-commit-workflowSkill
- package-security-vettingSkill
- replicate-apiSkill
- secrets-and-config-managementSkill
- testing-strategySkill
- ui-cloneSkill
- ui-slop-remediationSkill
- universal-coding-standardsSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 5 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 46 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Always prefer native semantic tags (<button>, <nav>, <header>, <main>, <dialog>, <label>).
- Very specific: line 32
Every page must have exactly one <h1>.
- Very specific: line 33
Never skip heading levels (e.g.
- Very specific: line 35
Every interactive element must be reachable and operable using keyboard alone (Tab, Shift+Tab, Enter, Space, Arrows).
- Distinctive: line 36
No mouse-only interactions (hover dropdowns must activate on focus or click).
- Distinctive: line 45
Test actual rendered colors with dark/light themes, not theoretical brand values.
- Distinctive: line 51
Ensure focused elements are not hidden behind sticky headers or floating cookies (Criterion 2.4.11).
- Distinctive: line 53
All clickable/tappable elements must have at least $24 \times 24$ CSS pixels bounding box (Criterion 2.5.8).
- Distinctive: line 64
Every state attribute must reflect real DOM state:
- Very specific: line 75
Every form input must have a <label for="field-id"> matching the input's id.
- Very specific: line 81
Use native required and aria-required="true".
“Common” is measured: kept by at least 6 in 10 of the 46 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Accessibility (A11y) Audit Protocol
A comprehensive operational standard for auditing, repairing, and testing web interfaces against WCAG 2.2 Level AA compliance.
Sibling Standards:
- For visual styling and theme tokens, refer to
design-system-adapter.- Scope Notice: This skill strictly governs semantic structure, assistive tech compliance, and keyboard operability, independent of visual styling.
1. Semantic Structure & Keyboard Operability
- 1.1 Native Semantic HTML Over
div/span:- Always prefer native semantic tags (
<button>,<nav>,<header>,<main>,<dialog>,<label>). - 🚫 Never use
<div onclick="...">when a native<button>can be used.
- Always prefer native semantic tags (
- 1.2 Strict Heading Hierarchy:
- Every page must have exactly one
<h1>. - Never skip heading levels (e.g.
<h1>followed directly by<h4>).
- Every page must have exactly one
- 1.3 Complete Keyboard Operability:
- Every interactive element must be reachable and operable using keyboard alone (
Tab,Shift+Tab,Enter,Space, Arrows). - No mouse-only interactions (hover dropdowns must activate on focus or click).
- Every interactive element must be reachable and operable using keyboard alone (
2. Color, Contrast & Focus Indicators
- 2.1 Minimum Text Contrast Ratios (WCAG AA):
- Normal text (< 18pt regular or < 14pt bold): Minimum 4.5:1 contrast ratio against background.
- Large text ($\ge$ 18pt regular or $\ge$ 14pt bold): Minimum 3.0:1 contrast ratio.
- Test actual rendered colors with dark/light themes, not theoretical brand values.
- 2.2 Never Rely on Color Alone:
- Form errors, badges, and statuses must pair color with text labels, icons, or visual underlines.
- 2.3 Visible & Unobscured Focus Rings (WCAG 2.2):
- 🚫 Never write
outline: noneoroutline: 0without providing a high-contrast replacement. - Focus indicators must meet 3:1 non-text contrast against background.
- Ensure focused elements are not hidden behind sticky headers or floating cookies (Criterion 2.4.11).
- 🚫 Never write
- 2.4 Target Size Minimum (WCAG 2.2):
- All clickable/tappable elements must have at least $24 \times 24$ CSS pixels bounding box (Criterion 2.5.8).
3. ARIA Rules & State Synchronization
- 3.1 First Rule of ARIA: If a native HTML element provides the behavior, do not use ARIA.
- 3.2 Eliminate Redundant ARIA:
- ❌
<button role="button">(Redundant). - ❌
<div role="button">withouttabindex="0"and keyboard handlers (Inaccessible).
- ❌
- 3.3 Synchronize ARIA State Dynamically:
- Every state attribute must reflect real DOM state:
- Collapsible accordions:
aria-expanded="true"when open,"false"when closed. - Checkboxes:
aria-checked="true". - Selected tab:
aria-selected="true".
- Collapsible accordions:
- Stale ARIA state actively deceives screen reader users.
- Every state attribute must reflect real DOM state:
4. Form Accessibility
- 4.1 Programmatic Labels:
- Every form input must have a
<label for="field-id">matching the input'sid. - Placeholder text is not a substitute for a persistent label.
- Every form input must have a
- 4.2 Error Association:
- Link error messages to inputs via
aria-describedby="error-id"so assistive tech reads the error upon focus. - Mark invalid fields with
aria-invalid="true".
- Link error messages to inputs via
- 4.3 Mark Required Fields Programmatically:
- Use native
requiredandaria-required="true".
- Use native
5. Media & Dynamic Content
- 5.1 Meaningful vs. Decorative Images:
- Informative images have descriptive
alt="Graph showing 20% revenue growth". - Decorative icons or background illustrations must have explicit empty
alt="".
- Informative images have descriptive
- 5.2 Dynamic Live Regions (
aria-live):- Notify screen reader users of live asynchronous updates (e.g. search results count, "Saving draft...") using
<div aria-live="polite">.
- Notify screen reader users of live asynchronous updates (e.g. search results count, "Saving draft...") using
- 5.3 Respect Reduced Motion:
- Wrap animations in CSS
@media (prefers-reduced-motion: reduce)to disable high-motion zooms or parallax for vestibular-sensitive users.
- Wrap animations in CSS
6. Multi-Layer Testing Protocol
Automated scanning tools catch at most 30–40% of accessibility defects. Every audit must combine three layers:
Layer 1: Automated Scanners (axe-core, Lighthouse, Pa11y)
│ Quickly identifies contrast failures, missing alt text, duplicate IDs.
▼
Layer 2: Keyboard-Only Navigation
│ Tab through entire page. Can you reach every button? Can you close modals with Escape?
▼
Layer 3: Screen Reader Smoke Test (VoiceOver on macOS / NVDA on Windows)
Listen to how forms, live regions, and custom widgets are announced.Detailed References
references/wcag-checklist.md: Complete WCAG 2.2 Level AA success criteria mapped to concrete code-level checks (including new 2.2 rules on target size, focus obscured, and redundant entry).references/aria-patterns.md: Official WAI-ARIA Authoring Practices Guide (APG) templates for Modal Dialogs, Tabs, Accordions, Comboboxes, and Live Regions.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

