accessibility-wcag
Build accessible web applications following WCAG 2.1/2.2 guidelines with proper semantic HTML, ARIA attributes, keyboard navigation, screen reader support, and inclusive design. Use when implementing ARIA labels and roles, ensuring keyboard navigation, supporting screen readers, providing text alternatives for images, managing focus, creating accessible forms, building inclusive UI components, testing with accessibility tools, meeting WCAG compliance levels, or designing for users with disabilities.
Works with
---
name: accessibility-wcag
description: Build accessible web applications following WCAG 2.1/2.2 guidelines with proper semantic HTML, ARIA attributes, keyboard navigation, screen reader support, and inclusive design. Use when implementing ARIA labels and roles, ensuring keyboard navigation, supporting screen readers, providing text alternatives for images, managing focus, creating accessible forms, building inclusive UI components, testing with accessibility tools, meeting WCAG compliance levels, or designing for users with disabilities.
license: MIT
---
# Accessibility (WCAG) - Building Inclusive Web Applications
## When to use this skill
- Implementing ARIA labels, roles, and properties
- Ensuring full keyboard navigation support
- Supporting screen readers (NVDA, JAWS, VoiceOver)
- Providing text alternatives for images and media
- Managing focus and focus indicators
- Creating accessible forms with proper labels
- Building inclusive, usable UI components
- Testing with axe DevTools or similar tools
- Meeting WCAG 2.1/2.2 AA or AAA compliance
- Designing for color blindness and low vision
- Implementing skip links and landmarks
- Ensuring sufficient color contrast ratios
## When to use this skill
- Designing UIs, implementing components, ensuring compliance with accessibility standards (WCAG 2.1/2.2).
- When working on related tasks or features
- During development that requires this expertise
**Use when**: Designing UIs, implementing components, ensuring compliance with accessibility standards (WCAG 2.1/2.2).
## Core Principles (POUR)
1. **Perceivable** - Information available to all senses
2. **Operable** - Interface elements functional for all users
3. **Understandable** - Content and interface are clear
4. **Robust** - Works across technologies including assistive devices
## Essential Patterns
### Semantic HTML
```html
<!-- ✅ Proper semantic structure -->
<header><nav><ul><li><a></a></li></ul></nav></header>
<main><article><h1></h1><p></p></article></main>
<footer></footer>
<!-- ❌ Div soup -->
<div class="header"><div class="nav"></div></div>
```
### ARIA Labels & Roles
```html
<button aria-label="Close dialog">×</button>
<nav aria-label="Main navigation"></nav>
<input aria-describedby="email-error" />
<div role="alert" aria-live="polite">Success</div>
```
### Keyboard Navigation
```typescript
function Modal({ onClose }: { onClose: () => void }) {
useEffect(() => {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === 'Escape') onClose();
};
document.addEventListener('keydown', handleEscape);
return () => document.removeEventListener('keydown', handleEscape);
}, [onClose]);
return <div role="dialog" aria-modal="true" tabIndex={-1}>...</div>;
}
```
### Focus Management
```typescript
const firstFocusableElement = dialogRef.current?.querySelectorAll(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
)[0];
firstFocusableElement?.focus();
```
## Resources
- [WCAG 2.1 Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
- [MDN Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
- [axe DevTools](https://www.deque.com/axe/devtools/)More Testing skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
setup-pre-commit
mattpocock/skills
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

