WCAG 2.1 AA Web UI Audit
Skill Version
Trigger Phrases
Use this skill when the request includes any of the following:
- WCAG 2.1 AA audit
- Accessibility audit or UI accessibility review
- A11y checklist or conformance report
- Remediation plan for accessibility issues
- Keyboard navigation or focus issues
- Contrast issues
- Zoom/reflow issues
- ARIA or name/role/value issues
- Status message or toast announcement issues
- Forms and accessibility issues
Scope & Assumptions (Required First Output)
When invoked, first output a ## Scope & Assumptions section before any findings. Include:
- Product type
- Key flows and complete processes in scope
- Platforms in scope
- Components in scope
- Access constraints (timebox, environments, auth constraints)
- Evidence type boundaries:
confirmed implementation issue: verified on running UI or artifact with reproducible behavior
design-time risk: predicted from design artifacts/spec without runtime confirmation
- Conformance note: "This report provides accessibility conformance guidance against WCAG 2.1 Level A and AA."
Inputs and Best-Effort Defaults
Collect these inputs. If missing, proceed with defaults and state assumptions explicitly.
- Product type
- Preferred input:
SaaS, ecommerce, content
- Default:
SaaS (switch to ecommerce if cart/checkout is in scope)
- Key flows to test
- Preferred input: explicit flows
- Default:
sign-in, onboarding, search/filter, forms, checkout (if applicable)
- Target platforms
- Preferred input: desktop, mobile, or both
- Default:
desktop + mobile
- Known UI components
- Preferred input: explicit component list
- Default:
navigation, modal, drawer, toast/status, carousel, date picker, table, forms
- Access constraints
- Preferred input: timebox, environments, authentication access
- Default:
single-pass audit on available environment within stated timebox
- Evidence artifacts
- Preferred input: URLs and/or design files/specs
- Default behavior: if no URLs/artifacts are provided, run a clearly labeled
Readiness Review only
Deterministic Workflow
Run these steps in order.
- Scope
- Define flows, pages, components, and complete processes.
- Identify highest-risk areas: forms, checkout, auth, navigation, modals, dynamic updates.
- Baseline automated checks (optional)
- Run axe and lighthouse on key pages when runtime URLs are available.
- Capture and deduplicate issues.
- If automation dependencies are missing, continue with manual workflow and mark automation as skipped.
- Manual keyboard audit
- Validate tab order, focus visibility, keyboard traps, skip links, modals, menus, and custom controls.
- Visual audit
- Validate text contrast, non-text contrast, focus indicator visibility/contrast, non-color error cues, and hover/focus content behavior.
- Zoom and reflow audit
- Validate at 200% zoom, 320 CSS px width, text-spacing overrides, and orientation behavior.
- Forms and errors audit
- Validate labels, instructions, error identification, error suggestions, and error prevention for legal/financial/data commitments.
- Semantics and ARIA audit
- Validate name/role/value, label-in-name, autocomplete/input purpose semantics, and parsing robustness.
- Status messages audit (AA)
- Validate that toasts and inline status updates are announced without forced focus moves when appropriate.
- Synthesis
- Map each finding to WCAG SC.
- Assign severity.
- Propose design and engineering fixes.
- Add acceptance criteria and verification steps.
Output Contract (Always Deterministic)
Always render output with these sections in this exact order using templates:
A) Audit Summary (One Page)
B) Findings Table
C) Per-Flow Notes
D) Remediation Backlog
E) Definition of Done (Engineering + QA)
Use these files directly:
templates/audit-report-template.md
templates/finding-template.md
templates/remediation-backlog-template.md
Findings Quality Bar
Every finding must include:
- WCAG SC ID, name, and level
- Severity:
Blocker, High, Medium, Low
- Affected user groups
- Repro steps
- Expected vs actual behavior
- Suggested fix split into design and engineering actions
- Verification steps (manual and tool-based where relevant)
- Evidence type:
confirmed implementation issue or design-time risk
Severity Rubric
Blocker: Prevents task completion for one or more user groups.
High: Causes major friction or frequent failure.
Medium: Noticeable barrier with workaround.
Low: Minor barrier or polish issue.
Component Fix Recipes
Use docs/ui-component-checklists.md for fix-oriented component recipes covering:
- Buttons/links
- Inputs/selects/forms
- Modal/dialog
- Tooltip/popover
- Carousel
- Toast/status
- Tabs
- Accordion
- Table
- Date picker
Optional Automation Script
Use the optional script only when runtime URLs are provided:
node scripts/run_axe_playwright.js --url https://example.com
node scripts/run_axe_playwright.js --urls-file ./urls.txt
Behavior expectations:
- Writes
outputs/axe-results.json and outputs/axe-summary.md.
- Deduplicates by
(rule id + target selector + page).
- Continues on per-URL failures.
- If
playwright or @axe-core/playwright is missing, prints install guidance and exits without failing.
"All Requirements" Requests
If the user asks for all WCAG requirements, point to and include or excerpt:
docs/wcag21-aa-success-criteria.md
Conformance Language Guardrail
Do not issue legal determinations or certification statements. Use conformance phrasing such as:
- "accessibility conformance guidance"
- "conformance risk"
- "current conformance gaps"
Source Notes
Use WCAG terminology and SC names from:
- WCAG 2.1 Recommendation
- WAI How to Meet WCAG (Quick Reference) filtered to Level A and AA
- Understanding WCAG, including 4.1.3 Status Messages
1---2name: wcag-21-aa-web-ui-audit3description: Audit web UI for WCAG 2.1 Level AA and produce a remediation backlog. Use when users ask for WCAG 2.1 AA audits, accessibility reviews, conformance reports, remediation plans, keyboard/focus/contrast/reflow/forms/ARIA/status-message checks.4---56# WCAG 2.1 AA Web UI Audit78## Skill Version9- 1.0.01011## Trigger Phrases12Use this skill when the request includes any of the following:13- WCAG 2.1 AA audit14- Accessibility audit or UI accessibility review15- A11y checklist or conformance report16- Remediation plan for accessibility issues17- Keyboard navigation or focus issues18- Contrast issues19- Zoom/reflow issues20- ARIA or name/role/value issues21- Status message or toast announcement issues22- Forms and accessibility issues2324## Scope & Assumptions (Required First Output)25When invoked, first output a `## Scope & Assumptions` section before any findings. Include:26- Product type27- Key flows and complete processes in scope28- Platforms in scope29- Components in scope30- Access constraints (timebox, environments, auth constraints)31- Evidence type boundaries:32 - `confirmed implementation issue`: verified on running UI or artifact with reproducible behavior33 - `design-time risk`: predicted from design artifacts/spec without runtime confirmation34- Conformance note: "This report provides accessibility conformance guidance against WCAG 2.1 Level A and AA."3536## Inputs and Best-Effort Defaults37Collect these inputs. If missing, proceed with defaults and state assumptions explicitly.3839- Product type40 - Preferred input: `SaaS`, `ecommerce`, `content`41 - Default: `SaaS` (switch to `ecommerce` if cart/checkout is in scope)42- Key flows to test43 - Preferred input: explicit flows44 - Default: `sign-in`, `onboarding`, `search/filter`, `forms`, `checkout (if applicable)`45- Target platforms46 - Preferred input: desktop, mobile, or both47 - Default: `desktop + mobile`48- Known UI components49 - Preferred input: explicit component list50 - Default: `navigation`, `modal`, `drawer`, `toast/status`, `carousel`, `date picker`, `table`, `forms`51- Access constraints52 - Preferred input: timebox, environments, authentication access53 - Default: `single-pass audit on available environment within stated timebox`54- Evidence artifacts55 - Preferred input: URLs and/or design files/specs56 - Default behavior: if no URLs/artifacts are provided, run a clearly labeled `Readiness Review` only5758## Deterministic Workflow59Run these steps in order.60611. Scope62- Define flows, pages, components, and complete processes.63- Identify highest-risk areas: forms, checkout, auth, navigation, modals, dynamic updates.64652. Baseline automated checks (optional)66- Run axe and lighthouse on key pages when runtime URLs are available.67- Capture and deduplicate issues.68- If automation dependencies are missing, continue with manual workflow and mark automation as skipped.69703. Manual keyboard audit71- Validate tab order, focus visibility, keyboard traps, skip links, modals, menus, and custom controls.72734. Visual audit74- Validate text contrast, non-text contrast, focus indicator visibility/contrast, non-color error cues, and hover/focus content behavior.75765. Zoom and reflow audit77- Validate at 200% zoom, 320 CSS px width, text-spacing overrides, and orientation behavior.78796. Forms and errors audit80- Validate labels, instructions, error identification, error suggestions, and error prevention for legal/financial/data commitments.81827. Semantics and ARIA audit83- Validate name/role/value, label-in-name, autocomplete/input purpose semantics, and parsing robustness.84858. Status messages audit (AA)86- Validate that toasts and inline status updates are announced without forced focus moves when appropriate.87889. Synthesis89- Map each finding to WCAG SC.90- Assign severity.91- Propose design and engineering fixes.92- Add acceptance criteria and verification steps.9394## Output Contract (Always Deterministic)95Always render output with these sections in this exact order using templates:96- `A) Audit Summary (One Page)`97- `B) Findings Table`98- `C) Per-Flow Notes`99- `D) Remediation Backlog`100- `E) Definition of Done (Engineering + QA)`101102Use these files directly:103- `templates/audit-report-template.md`104- `templates/finding-template.md`105- `templates/remediation-backlog-template.md`106107## Findings Quality Bar108Every finding must include:109- WCAG SC ID, name, and level110- Severity: `Blocker`, `High`, `Medium`, `Low`111- Affected user groups112- Repro steps113- Expected vs actual behavior114- Suggested fix split into design and engineering actions115- Verification steps (manual and tool-based where relevant)116- Evidence type: `confirmed implementation issue` or `design-time risk`117118## Severity Rubric119- `Blocker`: Prevents task completion for one or more user groups.120- `High`: Causes major friction or frequent failure.121- `Medium`: Noticeable barrier with workaround.122- `Low`: Minor barrier or polish issue.123124## Component Fix Recipes125Use `docs/ui-component-checklists.md` for fix-oriented component recipes covering:126- Buttons/links127- Inputs/selects/forms128- Modal/dialog129- Tooltip/popover130- Carousel131- Toast/status132- Tabs133- Accordion134- Table135- Date picker136137## Optional Automation Script138Use the optional script only when runtime URLs are provided:139140```bash141node scripts/run_axe_playwright.js --url https://example.com142node scripts/run_axe_playwright.js --urls-file ./urls.txt143```144145Behavior expectations:146- Writes `outputs/axe-results.json` and `outputs/axe-summary.md`.147- Deduplicates by `(rule id + target selector + page)`.148- Continues on per-URL failures.149- If `playwright` or `@axe-core/playwright` is missing, prints install guidance and exits without failing.150151## "All Requirements" Requests152If the user asks for all WCAG requirements, point to and include or excerpt:153- `docs/wcag21-aa-success-criteria.md`154155## Conformance Language Guardrail156Do not issue legal determinations or certification statements. Use conformance phrasing such as:157- "accessibility conformance guidance"158- "conformance risk"159- "current conformance gaps"160161## Source Notes162Use WCAG terminology and SC names from:163- WCAG 2.1 Recommendation164- WAI How to Meet WCAG (Quick Reference) filtered to Level A and AA165- Understanding WCAG, including 4.1.3 Status Messages