accessibility-audit
Accessibility Audit Skill
Audit web accessibility using ARIA snapshots, AX tree analysis, and WCAG validation.
When to Use
This skill activates when:
- User asks about accessibility or a11y
- User mentions WCAG compliance
- User wants to check screen reader compatibility
- User needs to audit ARIA roles and labels
- User asks about keyboard navigation
Capabilities
ARIA Snapshots
browser-devtools-cli a11y take-aria-snapshot
browser-devtools-cli a11y take-aria-snapshot --selector ".main-content"
AX Tree Analysis
browser-devtools-cli --json a11y take-ax-tree-snapshot
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles button,link,textbox
browser-devtools-cli --json a11y take-ax-tree-snapshot --check-occlusion
browser-devtools-cli --json a11y take-ax-tree-snapshot --only-visible
Keyboard Navigation Testing
browser-devtools-cli interaction press-key --key "Tab"
browser-devtools-cli interaction press-key --key "Tab" --selector "body"
browser-devtools-cli interaction press-key --key "Enter"
browser-devtools-cli interaction press-key --key "Escape"
WCAG Checklist
Perceivable
- Images have alt text
- Videos have captions
- Color is not the only indicator
- Text has sufficient contrast
Operable
- All functionality via keyboard
- No keyboard traps
- Skip links present
- Focus visible
Understandable
- Language specified
- Labels on form inputs
- Error messages clear
- Consistent navigation
Robust
- Valid HTML
- ARIA used correctly
- Works with assistive tech
Audit Workflow
SESSION="--session-id a11y-audit"
# 1. Navigate to page
browser-devtools-cli $SESSION navigation go-to --url "https://example.com"
browser-devtools-cli $SESSION sync wait-for-network-idle
# 2. Get ARIA snapshot (quick overview, returns refs e1,e2,...)
browser-devtools-cli $SESSION a11y take-aria-snapshot
# Optional: include custom clickable elements (div/span with cursor:pointer)
browser-devtools-cli $SESSION a11y take-aria-snapshot --cursor-interactive
# 3. Get detailed AX tree
browser-devtools-cli $SESSION --json a11y take-ax-tree-snapshot \
--roles button,link,textbox,checkbox,radio,combobox
# 4. Check for interactive elements with occlusion
browser-devtools-cli $SESSION --json a11y take-ax-tree-snapshot \
--roles button,link \
--check-occlusion
# 5. Test keyboard navigation
browser-devtools-cli $SESSION interaction press-key --key "Tab"
browser-devtools-cli $SESSION content take-screenshot --name "first-focus"
# 6. Cleanup
browser-devtools-cli session delete a11y-audit
Common Issues
Missing Alt Text
# Check images in AX tree
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles image
Missing Form Labels
# Check form elements
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles textbox,checkbox,radio,combobox
Empty Buttons/Links
# Check for buttons and links with no accessible name
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles button,link
Hidden but Focusable Elements
# Check for visibility issues
browser-devtools-cli --json a11y take-ax-tree-snapshot --check-occlusion
Specific Audits
Heading Hierarchy
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles heading
Form Accessibility
browser-devtools-cli --json a11y take-ax-tree-snapshot \
--roles textbox,checkbox,radio,combobox,button
Navigation Elements
browser-devtools-cli --json a11y take-ax-tree-snapshot \
--roles navigation,link,menu,menuitem
Interactive Elements
browser-devtools-cli --json a11y take-ax-tree-snapshot \
--roles button,link,tab,switch,slider
Best Practices
- Always use ARIA snapshot first for quick overview
- Use AX tree with occlusion check for layout issues
- Filter by roles to focus on interactive elements
- Check both visible and hidden elements
- Test with keyboard only before reporting
- Take screenshots to document focus states
- Test at different viewport sizes for responsive a11y
More from serkan-ozal/browser-devtools-skills
react-debugging
Debug React applications by inspecting components, props, and the component tree. Use when the user is debugging React apps, wants to inspect component props/state, find which component renders an element, or understand the React component hierarchy.
43browser-testing
Automated browser testing, interaction automation, and form testing. Use when the user needs to test web pages, automate browser interactions, fill forms, test validation, run multi-step wizards, or test login/signup flows.
40visual-testing
Visual testing, UI verification, and design comparison using screenshots and Figma integration. Use when the user wants to verify UI appearance, compare with Figma designs, test responsive layouts, check for visual regressions, or validate design implementation.
38browser-devtools-cli
Automates browser interactions using Playwright for web testing, debugging, and automation. Use when the user needs to navigate websites, take screenshots, fill forms, click elements, extract page content (HTML/text), audit accessibility (ARIA/AX tree), measure Web Vitals performance, monitor console logs and HTTP requests, mock API responses, execute JavaScript in browser, inspect React components, compare UI with Figma designs, or perform non-blocking debugging with tracepoints, logpoints, and exception monitoring.
38debugging
Debug web and Node.js applications using console inspection, network analysis, and non-blocking code debugging. Use when the user reports bugs, wants to debug JavaScript (browser or backend), inspect network requests, troubleshoot page/API issues, trace function calls, or monitor exceptions.
31performance-audit
Analyze web and backend performance using Web Vitals, network timing, and Node.js metrics. Use when the user asks about page performance, load times, Core Web Vitals (LCP, CLS, INP), slow pages, backend bottlenecks, or SEO performance factors.
30