Marketplace

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.

$ インストール

git clone https://github.com/leobrival/serum-plugins-official /tmp/serum-plugins-official && cp -r /tmp/serum-plugins-official/plugins/html-checker/skills/check-a11y ~/.claude/skills/serum-plugins-official

// tip: Run this command in your terminal to install the skill


name: check-a11y description: 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.

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

OptionShortDefaultDescription
--verbose-vfalseShow all checks including passed
--json-jfalseOutput results as JSON
--level-lAAWCAG level (A, AA, AAA)

Checks Performed

CheckWCAGSeverityDescription
Missing lang3.1.1ErrorHTML has no lang attribute
Skip link missing2.4.1WarningNo skip to main content link
Missing landmarks1.3.1WarningNo main, nav, header landmarks
Empty links2.4.4ErrorLinks with no accessible name
Empty buttons4.1.2ErrorButtons with no accessible name
Missing focus styles2.4.7WarningInteractive elements lack focus indicator
Tabindex > 02.4.3WarningPositive tabindex disrupts focus order
ARIA hidden focusable4.1.2ErrorFocusable element inside aria-hidden
Invalid ARIA4.1.2ErrorInvalid ARIA attributes or values
Missing alt1.1.1ErrorImages without alt text
Low contrast1.4.3WarningText contrast below 4.5:1
Auto-playing media1.4.2WarningAudio/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

Related Files

  • Command: plugins/html-checker/commands/check-a11y.md
  • Scripts: plugins/html-checker/scripts/src/check-a11y.ts
  • Check Forms: plugins/html-checker/skills/check-forms/
  • Check Images: plugins/html-checker/skills/check-images/
  • Check Links: plugins/html-checker/skills/check-links/