Scout UI Testing
elastic/kibana
A skill your agent uses when creating, updating, debugging, or reviewing Scout UI tests in Kibana (Playwright + Scout fixtures), including page objects, browser authentication, parallel UI tests…
Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install petrkindlmann/qa-skills accessibility-testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/accessibility-testing .claude/skills/accessibility-testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .claude/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install petrkindlmann/qa-skills accessibility-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/accessibility-testing .agents/skills/accessibility-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .agents/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install petrkindlmann/qa-skills accessibility-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/accessibility-testing .cursor/skills/accessibility-testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .cursor/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/petrkindlmann/qa-skills.git --path skills/accessibility-testing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install petrkindlmann/qa-skills accessibility-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/accessibility-testing .gemini/skills/accessibility-testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .gemini/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install petrkindlmann/qa-skills accessibility-testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/accessibility-testing .github/skills/accessibility-testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .github/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install petrkindlmann/qa-skills accessibility-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/accessibility-testing .opencode/skills/accessibility-testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "accessibility-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/accessibility-testing into .opencode/skills/accessibility-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
accessibility-testingTest for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
Accessibility Testing is an agent skill from petrkindlmann/qa-skills. Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508). Automated tools catch 30-40% of issues — this skill covers automated and manual testing together. Use when: "accessibility," "a11y," "WCAG," "screen reader," "axe," "keyboard navigation," "ARIA," "ADA compliance." Not for: cookie-consent/GDPR compliance — use compliance-testing; pixel-diff visual regression — use…
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/patterns.md` and `references/recipes.md`).
It sits in Frontend & Design, covering Accessibility. It works with Playwright. The repository describes itself as: 50 QA and test-automation skills for Claude Code, Codex, Cursor, and any Agent Skills Standard runtime. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b3bb61b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Accessibility Testing loads about 4.5k tokens when it runs, and up to ~7.5k if it reads all its reference files. Until then it costs about 157 tokens; SKILL.md has 2,347 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from petrkindlmann/qa-skills at commit b3bb61b, republished under its MIT licence (© petrkindlmann). 2,347 words, ~4,532 tokens.
.claude/skills/accessibility-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.<objective>
Make an application usable by people who rely on keyboards and assistive technology, and prove
it with tests that run in CI. A button that passes `toBeVisible()` can still be unreachable by
keyboard; a page with zero axe violations can still be impossible to operate with a screen
reader. Automated tools catch 30-40% of accessibility issues — this skill covers the automated
scan plus the keyboard, screen reader, and ARIA-state testing that catch the other 60-70%.
</objective>
Check .agents/qa-project-context.md first — if it exists, use it as the foundation and skip
anything already answered.
Requirements and compliance (sets the target level and audit obligations)
Current state (tells you whether you're auditing or preventing regressions)
Testing infrastructure (determines what you can automate vs. must do by hand)
Automated testing catches 30-40% of issues — no more. axe-core finds missing alt text, low contrast, missing labels, and invalid ARIA. It cannot tell you whether alt text is meaningful, whether tab order is logical, or whether a custom widget is operable. Passing axe is necessary, not sufficient. Crucially, axe ships no automated rule for several WCAG 2.2 success criteria (2.4.11 focus-not-obscured, 2.5.7 dragging movements, and 2.5.8 target-size only partially) — a green axe run does not equal 2.2 AA conformance.
Semantic HTML first, ARIA as last resort. Native elements (<button>, <nav>,
<input>, <dialog>) carry built-in semantics, keyboard behavior, and screen reader
support. A <div role="button"> also needs tabindex, Enter/Space handlers, focus styles,
and ARIA state — all of which a <button> gives you free. Reach for ARIA only when no
native element fits.
Test in impact order: keyboard, screen reader, automated. Keyboard issues physically block users from features (highest impact). Screen reader issues confuse with wrong announcements. Automated checks catch the mechanical remainder. Start where the damage is worst, not where the tooling is easiest.
Accessibility is a quality attribute, not a feature. Test it continuously like performance or security — every new component, every PR. Retrofitting accessibility onto a finished product costs 10-100x more because inaccessible patterns get baked into the component library.
Test with real assistive technology. Browser DevTools and axe extensions are dev aids, not substitutes for VoiceOver (macOS/iOS), NVDA (Windows), and TalkBack (Android), which each behave differently. Reserve manual AT passes for complex custom widgets.
Install @axe-core/playwright (the 4.11.x line; it tracks axe-core's major.minor). Wrap it in
a reusable checkAccessibility(page, testInfo, options) helper that filters to the WCAG tags
['wcag2a', 'wcag2aa', 'wcag22aa'], attaches the full results JSON to the test for the audit
trail, and asserts violations.toHaveLength(0). Loop it over every key page and over
interactive states (modal open, menu expanded), not just the default load.
Suppress a rule only with a documented justification (a tracking issue or inline comment) and
exclude third-party widgets you don't own rather than disabling the rule globally.
See references/recipes.md for the install command, RGAA tag caveat, the full helper, the
page-loop and interactive-state specs, rule suppression, and CI integration.
Automated scanning is the floor. These checks need a human (or a keyboard-driven Playwright
spec — see references/recipes.md for the keyboard specs).
outline: none without a replacement.<main>.| Screen Reader | OS | Browser | Free? |
|---|---|---|---|
| VoiceOver | macOS/iOS | Safari | Yes (Cmd+F5) |
| NVDA | Windows | Firefox/Chrome | Yes |
| JAWS | Windows | Chrome/Edge | No |
| TalkBack | Android | Chrome | Yes |
alt="" for decorative).<label> tied via for/id (placeholder is not a label).required / aria-required).aria-describedby to link to the input and role="alert" to announce.<fieldset> and <legend>.| Criterion | What it means | Common failure |
|---|---|---|
| 1.1.1 Non-text Content | Images have alt text | <img> without alt |
| 1.3.1 Info and Relationships | Structure via HTML semantics | <div> styled as a heading |
| 2.1.1 Keyboard | All functionality via keyboard | Custom widget responds only to mouse |
| 2.4.1 Bypass Blocks | Skip navigation link | No skip link |
| 3.1.1 Language of Page | <html lang="en"> set | Missing lang |
| 3.3.1 Error Identification | Errors described in text | Error shown only by red border |
| 4.1.2 Name, Role, Value | Custom controls expose name/role | <div onclick> with no role |
| Criterion | What it means | Common failure |
|---|---|---|
| 1.4.3 Contrast (Minimum) | 4.5:1 normal, 3:1 large | Light gray on white |
| 1.4.4 Resize Text | Scales to 200% without loss | Fixed-height containers clip text |
| 1.4.11 Non-text Contrast | UI components 3:1 | Low-contrast input borders |
| 2.4.7 Focus Visible | Keyboard focus visible | outline: none with no replacement |
| 2.5.8 Target Size | Touch targets 24×24px min | Tiny icon buttons |
| 3.3.2 Labels or Instructions | Inputs have labels | Placeholder as the only label |
| 3.3.8 Accessible Auth | No cognitive function test | CAPTCHA with no alternative |
| Criterion | What it means |
|---|---|
| 1.4.6 Contrast (Enhanced) | 7:1 normal text, 4.5:1 large |
| 2.4.9 Link Purpose (Link Only) | Link text alone describes destination |
| 3.1.5 Reading Level | Lower-secondary education level |
Test on the accessible tree (roles, names, ARIA state), not on CSS. The patterns you need runnable tests for:
aria-describedby, aria-invalid='true', focus on first error.aria-modal='true', aria-labelledby, focus trapped, Escape returns focus.role="menu" or role="listbox", aria-expanded),
loading skeleton (aria-busy='true' during fetch), toast (aria-live='polite'). These carry
different ARIA per state, so click to trigger the state change and assert the open-state ARIA —
the default page snapshot never exercises them.columnheader roles, aria-sort reflects the active sort.main; banner, navigation, contentinfo present.See references/patterns.md for the full runnable tests for every pattern above.
Playwright's toMatchAriaSnapshot() captures the accessible tree as YAML and asserts against
it — the fastest way to catch a regression where a visual change silently breaks semantics (a
<div> restyled to look like a button, a heading demoted to plain text). It checks structure
and accessible names, not pixels, so it's complementary to visual-testing, not a replacement.
Scope snapshots to a stable container; whole-page snapshots over async content go flaky. See
references/patterns.md for navigation and form snapshot examples.
| Law / Standard | Region | WCAG level required | Enforcement |
|---|---|---|---|
| ADA | USA | AA (court precedent) | Lawsuits (private right of action) |
| Section 508 | USA (federal) | WCAG 2.0 AA | Federal procurement requirement |
| EAA | EU | EN 301 549 (WCAG 2.1 AA) | In force since 28 June 2025. Member states actively enforcing; private cause of action varies (DE, FR, IE most active). EN 301 549 expected to align with WCAG 2.2 next revision. |
| AODA | Ontario, Canada | WCAG 2.0 AA | Fines up to $100K/day |
| EN 301 549 | EU | WCAG 2.1 AA | Public procurement requirement |
| Equality Act 2010 | UK | WCAG 2.1 AA (guidance) | Lawsuits |
| ISO/IEC 40500:2025 | International | Equivalent to WCAG 2.2 (Oct 2023) | Useful for procurement/RFP language; freely available from ISO |
Practical target: if you serve US or EU users, WCAG 2.2 AA is the target for new development — the EAA is in force, EN 301 549 is expected to update to 2.2, and ISO/IEC 40500:2025 (published Sept 2025) codifies WCAG 2.2 internationally. WCAG 2.1 AA is the legacy minimum where 2.2 can't be reached immediately.
WCAG 3 status: W3C published an updated WCAG 3 working draft in March 2026 that renamed "Outcomes" to "Requirements" and moved away from binary pass/fail grading; it lists ~174 requirements. It remains a working draft — Candidate Recommendation is targeted for Q4 2027 and a Recommendation not before 2028. Plan for WCAG 2.2 today; track WCAG 3 but do not test against it yet.
Audit evidence to collect: automated scan results per page, manual checklists with
tester/date, screen reader results with AT versions, accessibility statement, VPAT for
enterprise sales, and a remediation plan for known issues. For the full legal/VPAT/consent
mapping, see compliance-testing.
Running axe, finding zero violations, and declaring the product accessible. Automated tools miss 60-70% of real issues and skip several WCAG 2.2 criteria entirely. Fix: pair every axe run with the keyboard and screen reader checklist; gate releases on both, not just the scan.
Adding role, aria-label, and aria-describedby to elements that already have native
semantics, creating double announcements. Fix: delete the redundant ARIA and use the native
element — a <button> never needs role="button".
Features that work by mouse and touch but not keyboard — click-only dropdowns, drag-and-drop
with no keyboard path, hover-only tooltips. Fix: give every mouse interaction a keyboard
equivalent and cover it with a keyboard.spec.ts test (see references/recipes.md).
Waiting until the product is "finished," by which point inaccessible patterns are baked into the component library at 10-100x the fix cost. Fix: add an axe check to the Definition of Done so every new component is gated on accessibility before merge.
Deprioritizing a11y tickets because "nobody complained" — users with disabilities can't complain through a product they can't use, so they leave silently, and US web-accessibility lawsuits have climbed year over year since 2018. Fix: track a11y as a release blocker with the same severity rules as functional bugs, and report open a11y issues in the release readiness check.
Scanning only the default page state, missing the modals, expanded dropdowns, error messages, and loading skeletons that carry different ARIA. Fix: drive each interactive state in the test (click to open the menu, trigger the fetch) and re-run the scan against the changed DOM.
| Symptom | Likely cause | Fix or check |
|---|---|---|
| axe finds 0 violations but the page is unusable by keyboard | Automated scans don't test operability or focus order | Run the keyboard audit; add a keyboard.spec.ts |
toMatchAriaSnapshot is flaky | Dynamic content or list reordering inside the snapshot scope | Scope to a stable container; use a partial snapshot |
| Contrast rule passes but text over a gradient/overlay/image is unreadable | axe can't compute contrast against non-solid backgrounds | Check those cases manually or with a contrast picker |
| Passing axe but failing a WCAG 2.2 AA audit | axe ships no rule for 2.4.11 / 2.5.7 and only partial 2.5.8 | Manually verify focus-not-obscured, dragging alternatives, and target size |
Prove the suite actually exercises the page — an a11y test that passes vacuously (wrong URL, axe scanning an error page, snapshot never reached) is worse than none.
<label>) and run it — the test must FAIL and name the rule:npx playwright test e2e/tests/a11y/pages.spec.tsnpx playwright test e2e/tests/a11y/keyboard.spec.ts and open the trace for the skip-link test — the first Tab should land on the skip link, not nowhere. A test that "passes" because the page never loaded is a false green.a11y job must exit non-zero and fail the PR check. Revert after.toMatchAriaSnapshot once with --update-snapshots, then again without — the second run must pass. If it flakes, the snapshot scope includes async/reordering content; narrow it to a stable container.references/recipes.md for the workflow).aria-expanded + role), one loading region (aria-busy), and one live region (aria-live).© petrkindlmann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/accessibility-testing of petrkindlmann/qa-skills.
Open the folder on GitHubat commit b3bb61b
Accessibility Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Accessibility Testing this skillpetrkindlmann/qa-skills | 165 | — | ~4.5k | Automated safety check: Pass | MIT | |
| Scout UI Testingelastic/kibana | 21k | — | ~3.1k | Automated safety check: Pass | Custom licence | |
| Control UIcursor/plugins | 10k | 2 repos | ~1.2k | Automated safety check: Pass | None | |
| Browser QAaffaan-m/ECC | 275k | 2 repos | ~1k | Automated safety check: Pass | MIT | |
| UI UX Auditchmonitor/chmonitor | 299 | — | ~2k | Automated safety check: Notes | GPL-3.0 | |
| Kb Playwright TestingCommunity-Access/accessibility-agents | 422 | — | ~2k | Automated safety check: Pass | MIT |
elastic/kibana
A skill your agent uses when creating, updating, debugging, or reviewing Scout UI tests in Kibana (Playwright + Scout fixtures), including page objects, browser authentication, parallel UI tests…
cursor/plugins
Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI.
affaan-m/ECC
Run automated post-deploy UI verification with a browser automation MCP (claude-in-chrome, Playwright, or Puppeteer): console-error and Core Web Vitals smoke checks, form and auth-flow interaction…
chmonitor/chmonitor
Automated UI/UX + accessibility audit for the ClickHouse Monitor dashboard (apps/dashboard-tsr).
Community-Access/accessibility-agents
Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.
HoangNguyen0403/agent-skills-standard
Standardizes visual audits, responsive design, and behavioral testing for web apps.
petrkindlmann/qa-skills
Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.
petrkindlmann/qa-skills
Use AI to write NEW test code from specs, PRDs, user stories, code diffs, bug reports, or OpenAPI specs.
petrkindlmann/qa-skills
Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.
petrkindlmann/qa-skills
Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.
petrkindlmann/qa-skills
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…
petrkindlmann/qa-skills
Implement consumer-driven contract testing with Pact-JS (v16).
Works with
Categories
Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508). Accessibility Testing is an agent skill from petrkindlmann/qa-skills.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
Accessibility Testing fits situations like: : accessibility; keyboard navigation; ADA compliance. Not for: cookie-consent/GDPR compliance — use compliance-testing; pixel-diff visual regression — use visual-testing.
Run `npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a claude-code`. Or copy the skill folder (skills/accessibility-testing in petrkindlmann/qa-skills) into .claude/skills/accessibility-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a codex`. Or copy the skill folder (skills/accessibility-testing in petrkindlmann/qa-skills) into .agents/skills/accessibility-testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add petrkindlmann/qa-skills --skill accessibility-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/accessibility-testing, .gemini/skills/accessibility-testing, .github/skills/accessibility-testing and .opencode/skills/accessibility-testing in your project.
Going by SKILL.md and its folder, Accessibility Testing needs the command-line tools its instructions call (npx).
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Accessibility Testing is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Accessibility Testing: Scout UI Testing (elastic/kibana, 21k stars), Control UI (cursor/plugins, 10k stars), Browser QA (affaan-m/ECC, 275k stars) and UI UX Audit (chmonitor/chmonitor, 299 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
petrkindlmann (a GitHub user) maintains it in petrkindlmann/qa-skills, which has 165 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on June 10, 2026.
Source: petrkindlmann/qa-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.