a11y-checks

Adds axe-core accessibility scans and keyboard navigation coverage to Playwright UI tests.

Updated Jun 18, 2026
One-click install
npx skills add https://github.com/tetianna/ai-assisted-qa-automation-2 --skill a11y-checks-tetianna
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: a11y-checks
Source: https://github.com/tetianna/ai-assisted-qa-automation-2/tree/main/.cursor/skills/a11y-checks
Command: npx skills add https://github.com/tetianna/ai-assisted-qa-automation-2 --skill a11y-checks-tetianna

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @axe-core/playwright.

What problem does it solve? Playwright tests often ship without any accessibility coverage, letting WCAG violations and broken keyboard navigation reach production unnoticed. This Skill enforces a consistent pattern so every new page or component test includes automated axe-core scans plus keyboard interaction checks that axe cannot detect. ## Core Features & Use Cases - Standardized axe-core pattern: Enforces AxeBuilder with wcag2a/wcag2aa tags and await expect(results.violations).toEqual([]) assertions in every UI spec. - Keyboard navigation testing: Adds tab-to-focus and Enter-to-activate checks for primary controls, covering gaps axe cannot detect. - Violation reporting workflow: When real violations appear, the Skill records formatted output, writes a snapshot report, and offers Jira bug filing instead of silencing rules. - Use Case: When generating a Playwright spec for a new modal, the Skill automatically includes an axe scan scoped to the dialog and a keyboard test verifying focus and activation, with no inline locators. ## Quick Start Generate a Playwright test for the new programs page and include accessibility coverage.

Frequently Asked Questions about a11y-checks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add accessibility testing to Playwright tests?▼

Use AxeBuilder from @axe-core/playwright to run an accessibility scan against the page, then assert the violations array is empty with expect. Combine this with a keyboard navigation test that tabs to primary controls and verifies focus and activation.

How to run axe-core scans in Playwright with TypeScript?▼

Import AxeBuilder from @axe-core/playwright, instantiate it with the page object, chain withTags(['wcag2a', 'wcag2aa']), and call analyze(). Assert the results with await expect(results.violations).toEqual([]) for a clean failure message.

Can axe-core detect keyboard navigation issues?▼

No, axe-core cannot verify keyboard operability such as tab order or Enter activation. You must write explicit Playwright tests that tab to controls, assert toBeFocused(), and confirm dialogs open on keypress.

Should I use disableRules to fix failing axe scans?▼

No, disabling rules to make scans pass hides real accessibility violations. Instead let the test fail, record the violations with rule IDs and impact levels, and file a bug for the underlying issue.

When should I scope axe scans with include or exclude?▼

Scope scans only when a noisy third-party widget produces false positives, and always add a comment explaining why. Prefer full-page scans for page-level coverage and role-based selectors for component-level scans.