accessibility-testing
Skill0 starsChanged 8 months agoMITView on GitHub
Use when testing, reviewing, or releasing UI for accessibility, or before claiming WCAG 2.1 AA, ADA Title II, or Section 508 conformance
9 other projects use a version of this.
Adopted by
Most recently taken up by
- jason0971/skillstheir own version, first seen Nov 8, 2026
- conorluddy/xclaude-plugintheir own version, first seen Oct 25, 2026
- petrkindlmann/qa-skillstheir own version, first seen Oct 25, 2026
- proffesor-for-testing/agentic-qetheir own version, first seen Oct 25, 2026
- mejbaurbahar/software-tester-skillstheir own version, first seen Oct 13, 2026
- Biznomad/claude-skillstheir own version, first seen Jul 14, 2026
Used with
Projects with it also use compliance-testing, database-testing and 7 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.
petrkindlmannSkillcompliance-testing
Test for regulatory compliance: GDPR/CMP consent verification, Google Consent Mode v2, Global Privacy Control (GPC), CCPA/US state opt-out, EU AI Act Article 50 transparency, Better Ads Standards, and cookie-inventory auditing. Covers automated consent-flow testing, policy-based script blocking before consent, and cookie drift detection. Use when: "GDPR test," "compliance," "CMP test," "cookie consent," "consent mode," "CCPA," "GPC," "AI Act," "Better Ads," "privacy banner." Not for: WCAG/axe-core test authoring — use accessibility-testing. Not for: OWASP/vuln scanning — use security-testing. Not for: evaluating your LLM feature's quality or safety — use ai-system-testing. Related: accessibility-testing, security-testing, ai-system-testing, ci-cd-integration.
Also in 4 projects that use this
petrkindlmannSkilldatabase-testing
Validate database integrity, test migrations forward and backward, verify schema constraints, manage seed data, detect migration drift, and identify query performance issues. Covers PostgreSQL, MySQL, MongoDB with Prisma, TypeORM, Drizzle, and SQLAlchemy, plus Testcontainers test databases. Use when: "database test," "migration test," "migration rollback," "rollback test," "data integrity," "SQL test," "schema validation," "seed data," "query performance," "Testcontainers." Not for: synthetic data generation/masking at scale — use test-data-management; Docker/IaC test-environment provisioning — use test-environments; SQL injection — use security-testing. Related: test-data-management, test-environments, security-testing, ci-cd-integration.
Also in 5 projects that use this
mmondoraSkillsecurity-testing
Automated security testing in CI. SAST, DAST, dependency scanning, authorization testing, secret detection. Use when adding security scans to pipelines, writing tenant isolation tests, or configuring vulnerability scanning.
Also in 4 projects that use this
nek1987Skillapi-testing
Use when writing tests for backend APIs or frontend flows. Triggers for: unit tests, integration tests, E2E tests, pytest fixtures, TestClient setup, mock data factories, or test coverage analysis. NOT for: testing business logic that doesn't involve API endpoints.
Also in 4 projects that use this
testified-ossSkillexploratory-testing
Guide exploratory testing sessions including charter creation, session-based testing, heuristics application, and finding documentation. Use when planning exploratory testing, conducting test sessions, or documenting discoveries.
Also in 3 projects that use this
- +4 more from petrkindlmann
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- proffesor-for-testing/agentic-qe★ 524same name
- petrkindlmann/qa-skills★ 209same name
- conorluddy/xclaude-plugin★ 186same name
- codecharmhq/claude-code-skills★ 1same name
- jason0971/skills★ 1same name
- mejbaurbahar/fagun★ 1same name
- mejbaurbahar/software-tester-skills★ 1same name
- michaelsvanbeek/personal-agent-skills★ 1same name
- Biznomad/claude-skills★ 0same name
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 repository11 other files it gives its agents.
- access-controlSkill
- accessibilitySkill
- api-securitySkill
- authenticationSkill
- dependency-securitySkill
- injection-preventionSkill
- input-validationSkill
- secrets-managementSkill
- security-contextSkill
- security-headersSkill
- xss-csrfSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
1
Distinctive
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 13
Run axe on every page AND every state: open dialogs, error states, expanded menus, filtered grids.
“Common” is measured: kept by at least 6 in 10 of the 8 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 Testing (WCAG 2.1 AA)
Automated tools find only some WCAG failures. A conformance claim needs every pass below.
Related: accessibility, security-context
Pass 1: Automated Checks in CI
Run axe on every page AND every state: open dialogs, error states, expanded menus, filtered grids.
// WRONG: one scan of the landing page, results ignored
await new AxeBuilder({ page }).analyze();
// RIGHT: WCAG 2.1 A and AA rules, every key state, test fails on any violation
import AxeBuilder from '@axe-core/playwright';
test('gradebook: error state has no violations', async ({ page }) => {
await page.goto('/gradebook'); await page.getByRole('button', { name: 'Save' }).click();
const { violations } = await new AxeBuilder({ page })
.withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']).analyze();
expect(violations).toEqual([]);
});npx lighthouse http://localhost:4200 --only-categories=accessibility --view # spot check, not a gate.NET: Deque.AxeCore.Playwright gives the same check in xUnit or NUnit.
Pass 2: Keyboard Only (unplug the mouse)
Tab, Shift+Tab, Enter, Space, Esc, arrow keys. On every page check:
- A skip link is first, and it works
- Every control is reachable, in a logical order, with a focus ring you can always see
- Disabled actions can still be focused and their reason is read or shown
- Dialogs, drawers, menus: focus moves in, cannot escape, Esc closes, focus returns to the trigger
- Tooltips open on focus, close on Esc, and you can move the pointer onto them
- No keyboard trap anywhere (editors, embeds, date pickers)
- Focus or a
selectchange never navigates, submits, or opens a window on its own - Single-key shortcuts can be turned off or remapped
Pass 3: Screen Reader
NVDA + Firefox or Chrome (Windows). VoiceOver + Safari (macOS, Cmd+F5).
- Page title and
langare right; headings list (NVDA: Insert+F7) reads as an outline - Every input reads its label, required state, and error message
- Icon buttons read a name that includes any visible text
- Grids read column headers, sort direction, selection, and the new row count after filtering
- Toasts, saves, and errors are announced without moving focus
- Images read useful alt text; decorative images are skipped
Pass 4: Zoom, Reflow, and Contrast
WRONG: test at 100% only, eyeball the colors
RIGHT:
- Browser zoom 200%: nothing clipped, overlapping, or hidden
- Window 1280px wide at 400% (= 320 CSS px): one scroll direction, except data tables
- Text spacing bookmarklet (line-height 1.5, letter 0.12em, word 0.16em): nothing cut off
- Rotate a phone or tablet: works in portrait and landscape
- Contrast checker (WebAIM, DevTools): text 4.5:1 (large 3:1); borders, icons, focus rings 3:1
- Session timeout: a warning appears with time to extendPass 5: Content, Documents, Media, Email
- Drag, swipe, pinch, and shake actions have a button alternative; clicks fire on release, not press
- Instructions don't rely on shape, color, sound, or position alone ("the round button on the right")
- No images of text; a passage in another language has its own
lang - Pages can be found two ways (navigation plus search or a site map)
- Generated PDFs pass PAC 2024 or Acrobat "Accessibility > Full Check": tagged, title, language, reading order
- Video has captions; prerecorded video has audio description or a full transcript
- HTML emails:
lang, alt text, real headings, 4.5:1 text, readable at 200% - Nothing flashes more than 3 times per second; auto-playing audio can be stopped
What Automated Tools Can't Catch
| Needs a human | Why |
| Alt text is accurate, link text makes sense | Tools only see that text exists |
| Focus order is logical; focus returns after dialogs | Tools don't drive the UI |
| Disabled reasons and errors are reachable and clear | Requires judgement and interaction |
| Tooltips are hoverable, dismissible, persistent | Needs real pointer and keyboard use |
| Reflow at 320px, text spacing, orientation | Needs a resized viewport and a human eye |
| Live announcements are timely, not noisy | Only a screen reader shows this |
| Consistent navigation and naming across pages | Spans multiple pages |
| Captions and transcripts are correct | Content, not code |
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.

