accessibility-runtime-audit
Skill4 starsChanged 2 months agoMITView on GitHub
Run accessibility checks on the actual built product, not just the design. Use when accessibility audit, a11y runtime check, WCAG on real build, screen reader, keyboard navigation, or ARIA attributes.
In this repository46 other files it gives its agents.
- accessibility-reviewSkill
- adaptive-component-behaviorSkill
- ai-feature-ux-patternsSkill
- behavioral-pricing-psychologySkill
- business-model-readingSkill
- business-model-thinkingSkill
- cognitive-load-heatmap-predictionSkill
- component-style-guideSkill
- cross-functional-reviewSkill
- dark-mode-theming-systemSkill
- dashboard-layout-patternsSkill
- dashboard-scaffolding-contractSkill
- design-drift-detectorSkill
- design-system-builderSkill
- design-to-code-handoffSkill
- design-tokensSkill
- error-boundary-resilience-designSkill
- flow-based-functional-testingSkill
- growth-impact-reviewSkill
- i18n-localization-strategySkill
- information-architectureSkill
- interactive-element-auditSkill
- kinematic-motion-choreographySkill
- micro-interaction-motion-designSkill
- module-registry-syncSkill
- mvp-scopingSkill
- perceived-performance-loadingSkill
- prd-traceability-matrixSkill
- product-discoverySkill
- product-strategySkill
- project-health-diagnosticsSkill
- qa-feedback-loop-orchestratorSkill
- responsive-breakpoint-strategySkill
- responsive-qa-auditSkill
- route-integrity-checkerSkill
- security-privacy-reviewSkill
- stakeholder-requirement-mappingSkill
- touch-gesture-interactionSkill
- typography-systemSkill
- usability-heuristics-checkSkill
- user-flow-mappingSkill
- user-research-synthesisSkill
- ux-chaos-monkeySkill
- visual-hierarchy-reviewSkill
- visual-responsive-regression-testingSkill
- visual-style-extractorSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Use axe-core via Playwright to scan every route for automated violations.
- Distinctive: line 29
Keyboard traps: Verify user can tab in AND out of all modals, dropdowns, code blocks, and data tables.
- Distinctive: line 33
Target Size (Minimum 2.5.8): All interactive targets (buttons, links, icon toggles) must be at least 24×24 CSS pixels, or have sufficient …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
A design that meets WCAG on paper can still fail in the browser. Runtime accessibility audit runs against the DOM that users actually experience — not the design file, not the code review, the live product.
1. Run automated axe-core scan (WCAG 2.2 AA target)
Use axe-core via Playwright to scan every route for automated violations.
// Playwright + axe-core scaffold
import { test, expect } from '@playwright/test';
import AxeBuilder from '@axe-core/playwright';
test('Accessibility audit (WCAG 2.2 AA)', async ({ page }) => {
await page.goto('/');
const accessibilityScanResults = await new AxeBuilder({ page })
.withTags(['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa'])
.analyze();
expect(accessibilityScanResults.violations).toEqual([]);
});2. Manual keyboard navigation & focus appearance test
Automated tools catch only ~30% of accessibility issues. Manually verify:
- Tab order: Follows logical reading order (left-to-right, top-to-bottom).
- Focus visibility & contrast (WCAG 2.2 Focus Appearance): Focus ring must have at least a 3:1 contrast ratio against both the focused element and the surrounding background, with a minimum 2px thickness. Never use
outline: nonewithout a high-contrast replacement. - Keyboard traps: Verify user can tab in AND out of all modals, dropdowns, code blocks, and data tables.
- Escape / Enter / Space:
Escapedismisses overlays;Enter/Spaceactivates buttons and toggles.
3. Verify WCAG 2.2 Target Size & Dragging Alternatives
- Target Size (Minimum 2.5.8): All interactive targets (buttons, links, icon toggles) must be at least 24×24 CSS pixels, or have sufficient spacing offset, unless inline within a sentence.
- Dragging Movements (2.5.7): Any drag-and-drop flow (e.g. Kanban boards, reordering lists) must offer a single-pointer alternative (e.g. "Move Up", "Move Down" buttons or keyboard shortcuts).
4. Verify rendered contrast ratios
Measure actual computed pixel colors in the browser (accounting for opacity and alpha blending):
- Body text (< 18pt normal): ≥ 4.5:1 (WCAG AA)
- Large text (≥ 18pt normal or ≥ 14pt bold): ≥ 3:1
- UI components and graphical objects: ≥ 3:1
5. Audit ARIA attributes & live regions
- Dynamic asynchronous updates (toasts, streaming tokens, search counts) must use
aria-live="polite"(orassertivefor urgent alerts). - Icon buttons without text MUST have
aria-labelor<title>. - Decorative graphics must have
aria-hidden="true"oralt="".
6. Screen reader spot-check
Conduct a walkthrough on the critical path using native screen readers:
macOS VoiceOver Quick Reference:
- Toggle VoiceOver:
Cmd + F5 - Read next element:
Ctrl + Option + Right Arrow - Activate element:
Ctrl + Option + Space - Rotor (Headings/Landmarks menu):
Ctrl + Option + U - Read from top:
Ctrl + Option + Home
Windows NVDA Quick Reference:
- Next element:
Down Arrow - Next heading:
H - Next button:
B - Next landmark:
D
Completion Criteria
- axe-core scan completed with 0 critical or serious violations against WCAG 2.2 AA
- Focus indicator clearly visible on all interactive elements (≥ 3:1 contrast against surface)
- All interactive touch/click targets meet WCAG 2.2 minimum 24×24px requirement
- Drag-and-drop workflows provide keyboard/click alternative actions
- ARIA live regions tested for asynchronous updates
- VoiceOver or NVDA spot-check completed on critical path (Login -> Core Task -> Success)
Output
- Playwright automated audit suite (
tests/a11y.spec.js) a11y-runtime-report.mdclassifying all findings by severity (Critical / Serious / Moderate / Minor) with explicit WCAG 2.2 criterion tags and DOM selector locations.
Anti-patterns
- Treating automated axe-core as 100% test coverage (misses keyboard traps and logical reading flow).
- Using
outline: nonein CSS to remove the default browser ring without custom focus styling. - Slapping
aria-labelon every container instead of using semantic HTML5 elements (<main>,<nav>,<button>). - Silencing screen readers with blanket
aria-hidden="true"on complex interactive widgets.
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.

