Claude-skill-registry check-a11y
Perform accessibility audit on web pages. Use when users ask to check accessibility, audit WCAG compliance, verify ARIA usage, check color contrast, audit keyboard navigation, or analyze screen reader compatibility. Detects ARIA issues, focus problems, contrast issues, and semantic HTML violations.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/check-a11y" ~/.claude/skills/majiayu000-claude-skill-registry-check-a11y && rm -rf "$T"
manifest:
skills/data/check-a11y/SKILL.mdsource content
Check A11y (Accessibility)
Perform accessibility audit on web pages for WCAG 2.1 compliance.
Quick Start
cd /path/to/html-checker/scripts bun src/check-a11y.ts <URL>
CLI Options
| Option | Short | Default | Description |
|---|---|---|---|
| | false | Show all checks including passed |
| | false | Output results as JSON |
| | AA | WCAG level (A, AA, AAA) |
Checks Performed
| Check | WCAG | Severity | Description |
|---|---|---|---|
| Missing lang | 3.1.1 | Error | HTML has no lang attribute |
| Skip link missing | 2.4.1 | Warning | No skip to main content link |
| Missing landmarks | 1.3.1 | Warning | No main, nav, header landmarks |
| Empty links | 2.4.4 | Error | Links with no accessible name |
| Empty buttons | 4.1.2 | Error | Buttons with no accessible name |
| Missing focus styles | 2.4.7 | Warning | Interactive elements lack focus indicator |
| Tabindex > 0 | 2.4.3 | Warning | Positive tabindex disrupts focus order |
| ARIA hidden focusable | 4.1.2 | Error | Focusable element inside aria-hidden |
| Invalid ARIA | 4.1.2 | Error | Invalid ARIA attributes or values |
| Missing alt | 1.1.1 | Error | Images without alt text |
| Low contrast | 1.4.3 | Warning | Text contrast below 4.5:1 |
| Auto-playing media | 1.4.2 | Warning | Audio/video with autoplay |
Usage Examples
# Basic audit bun src/check-a11y.ts https://example.com # Verbose output bun src/check-a11y.ts https://example.com --verbose # AAA level compliance bun src/check-a11y.ts https://example.com --level AAA
Output Example
Accessibility Audit for https://example.com WCAG Level: AA Summary: Passed: 18 Warnings: 5 Errors: 3 Page Structure: [OK] Language declared: lang="en" [OK] Main landmark present [WARNING] No skip link found [WARNING] Multiple nav without labels Interactive Elements: [OK] 45 links checked [ERROR] 2 empty links found [OK] 12 buttons checked [WARNING] 3 buttons rely on icon only ARIA Usage: [OK] Valid ARIA roles [ERROR] aria-labelledby references missing ID [WARNING] Redundant ARIA on semantic elements Issues: [ERROR ] Empty link at position 12 (WCAG 2.4.4) <a href="/search"><i class="icon-search"></i></a> [ERROR ] Invalid aria-labelledby at position 34 (WCAG 4.1.2) <div aria-labelledby="nonexistent-id"> [WARNING] No skip link (WCAG 2.4.1) Add <a href="#main">Skip to content</a> Score: 72/100 (Level AA) Recommendations: - Add aria-label to icon-only links - Fix aria-labelledby references - Add skip link for keyboard users
WCAG Quick Reference
Level A (Minimum)
- 1.1.1: Non-text content needs alt text
- 2.1.1: All functionality via keyboard
- 4.1.2: Name, role, value for UI components
Level AA (Recommended)
- 1.4.3: Contrast ratio 4.5:1 minimum
- 2.4.7: Focus visible
- 3.1.2: Language of parts
Level AAA (Enhanced)
- 1.4.6: Contrast ratio 7:1
- 2.4.9: Link purpose from link text alone