Skip to content
Back to skills

A11y Pass

ASecurity

Full accessibility pass to WCAG 2.2 AA - axe-core through Playwright over every main page in light and dark at 1440/390 (and 320 for reflow), probes for skip link, one h1, lang, visible and unobscured focus, 24px targets and sideways scrolling, a keyboard script for dialogs/drawers/tabs, manual checks (text spacing, zoom, dragging alternatives, accessible authentication), contract tests for shared components and theme contrast, fixes, known limitations with reasons and an accessibility statem...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 17, 2026
ai-agentsshellnodedatabase

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 17, 2026

npx -y skills add peterruiter/claude-build-framework --skill a11y-pass --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of A11y Pass?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for A11y Pass
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/peterruiter-a11y-pass/badge)](https://www.skillsdirectory.com/skills/peterruiter-a11y-pass)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: a11y-pass
description: Full accessibility pass to WCAG 2.2 AA - axe-core through Playwright over every main page in light and dark at 1440/390 (and 320 for reflow), probes for skip link, one h1, lang, visible and unobscured focus, 24px targets and sideways scrolling, a keyboard script for dialogs/drawers/tabs, manual checks (text spacing, zoom, dragging alternatives, accessible authentication), contract tests for shared components and theme contrast, fixes, known limitations with reasons and an accessibility statement page. Use when the user asks for an "accessibility pass", "WCAG", "a11y audit", "screen reader", or before the first public release.
argument-hint: "[surfaces or pages]"
---

# Accessibility pass

Reference: `${CLAUDE_PLUGIN_ROOT}/docs/accessibility.md` and `${CLAUDE_PLUGIN_ROOT}/docs/design-systems.md`.
WCAG 2.2 AA is part of every feature's definition of done; this pass is the full sweep on top.

## 1. Set up

- Pin and install the tools outside the product: `npm i --prefix <folder> playwright@<pinned>
  axe-core@<pinned>`; `A11Y_TOOLS=<folder>`.
- Run the app locally with demo data on a scratch database and your own port.
- Make `tests/a11y/pages.json` list **every main page** (and dialogs via `open`), with `lang` per
  page and a `signIn` module for signed-in pages.
- Run the pass when few other agents run; small targeted edits in shared components.

## 2. Measure ("before")

```
node tests/a11y/axe-pages.mjs --probes --json scratch/a11y-before.json
node tests/a11y/axe-pages.mjs --probes --widths 320 --page <wide pages>
node --test "tests/contracts/*.test.mjs"     # theme contrast in light and dark
```
Plus the keyboard script for the app's patterns (skip link → main, dialog trap and focus return,
top-most Escape, arrow keys in tab lists, Enter on clickable rows) and the manual checks: text
spacing (1.4.12), 200 % zoom, dragging alternatives (2.5.7), redundant entry (3.3.7), accessible
authentication (3.3.8), charts with tables, emails (lang, presentation tables, alt texts, dark).

## 3. Findings and fixes

Table: `# | Criterion | Where | Severity (serious/moderate/minor) | Fixed?`. Fix at the shared
component (one focus ring token, one dialog-keys helper, clickable rows, composite keys, scroll
regions, live regions, scroll-padding). Translate every new accessible name into every configured
language. Add contrast pairs for new colour combinations.

## 4. Guard

- Contract tests for shared components (names, live regions present before messages, token
  pairs, reduced motion, skip links).
- Remaining findings in `tests/a11y/known.json` **with reasons**, identical to the known
  limitations on the **accessibility statement** page (target WCAG 2.2 AA, limitations, contact;
  in every configured language; linked from every footer).

## 5. Report

Before → after violation counts per surface, counts per severity (fixed / not), screenshots, what
was not done (screen readers, native shells, external audit). One What's new entry. STATE.md section.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.