Back to list
yonatangross

wcag-compliance

by yonatangross

The Complete AI Development Toolkit for Claude Code — 159 skills, 34 agents, 20 commands, 144 hooks. Production-ready patterns for FastAPI, React 19, LangGraph, security, and testing.

29🍴 4📅 Jan 23, 2026

SKILL.md


name: wcag-compliance description: WCAG 2.2 AA accessibility compliance patterns for web applications. Use when auditing accessibility or implementing WCAG requirements. context: fork agent: accessibility-specialist version: 1.0.0 tags: [accessibility, wcag, a11y, aria, screen-reader, compliance] allowed-tools: [Read, Write, Grep, Glob, Bash] author: OrchestKit user-invocable: false

WCAG Compliance

Web Content Accessibility Guidelines 2.2 AA implementation for inclusive, legally compliant web applications.

Overview

  • Building accessible UI components from scratch
  • Auditing applications for ADA/Section 508 compliance
  • Implementing keyboard navigation and focus management
  • Supporting screen readers and assistive technologies
  • Fixing color contrast and visual accessibility issues

Quick Reference

Semantic HTML Structure

<main>
  <article>
    <header><h1>Page Title</h1></header>
    <section aria-labelledby="features-heading">
      <h2 id="features-heading">Features</h2>
      <ul><li>Feature 1</li></ul>
    </section>
    <aside aria-label="Related content">...</aside>
  </article>
</main>

ARIA Labels and States

// Icon-only button
<button aria-label="Save document">
  <svg aria-hidden="true">...</svg>
</button>

// Form field with error
<input
  id="email"
  aria-required="true"
  aria-invalid={!!error}
  aria-describedby={error ? "email-error" : "email-hint"}
/>
{error && <p id="email-error" role="alert">{error}</p>}

Color Contrast (CSS)

:root {
  --text-primary: #1a1a1a;   /* 16.1:1 on white - normal text */
  --text-secondary: #595959; /* 7.0:1 on white - secondary */
  --focus-ring: #0052cc;     /* 7.3:1 - focus indicator */
}
:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}

WCAG 2.2 AA Checklist

CriterionRequirementTest
1.1.1 Non-textAlt text for imagesaxe-core scan
1.3.1 InfoSemantic HTML, headingsManual + automated
1.4.3 Contrast4.5:1 text, 3:1 largeWebAIM checker
1.4.11 Non-text Contrast3:1 UI componentsManual inspection
2.1.1 KeyboardAll functionality via keyboardTab through
2.4.3 Focus OrderLogical tab sequenceManual test
2.4.7 Focus VisibleClear focus indicatorVisual check
2.4.11 Focus Not ObscuredFocus not hidden by sticky elementsscroll-margin-top
2.5.7 DraggingSingle-pointer alternativeButton fallback
2.5.8 Target SizeMin 24x24px interactiveCSS audit
4.1.2 Name/Role/ValueProper ARIA, labelsScreen reader test

Key Decisions

DecisionChoiceRationale
Conformance levelWCAG 2.2 AALegal standard (ADA, Section 508)
Contrast ratio4.5:1 normal, 3:1 largeAA minimum requirement
Target size24px min, 44px touch2.5.8 + mobile usability
Focus indicator3px solid outlineHigh visibility, 3:1 contrast
Live regionspolite default, assertive for errorsAvoids interruption
Decorative imagesalt="" role="presentation"Hide from AT
Skip linkFirst focusable elementKeyboard user efficiency

Anti-Patterns (FORBIDDEN)

  • Div soup: Using <div> instead of semantic elements (<nav>, <main>, <article>)
  • Color-only information: Status indicated only by color without icon/text
  • Missing labels: Form inputs without associated <label> or aria-label
  • Keyboard traps: Focus that cannot escape without mouse
  • Auto-playing media: Audio/video that plays without user action
  • Removing focus outline: outline: none without replacement indicator
  • Positive tabindex: Using tabindex > 0 (disrupts natural order)
  • Empty links/buttons: Interactive elements without accessible names
  • ARIA overuse: Using ARIA when semantic HTML suffices
  • a11y-testing - Automated accessibility testing with axe-core and Playwright
  • design-system-starter - Accessible component library patterns
  • i18n-date-patterns - RTL layout and locale-aware formatting
  • motion-animation-patterns - Reduced motion and animation accessibility

Capability Details

semantic-html

Keywords: semantic, landmark, heading, structure, html5, main, nav, article Solves:

  • Proper document structure with landmarks
  • Heading hierarchy (h1-h6 in order)
  • Form fieldsets and legends
  • Lists for grouped content

aria-patterns

Keywords: aria, role, state, property, live-region, alert, status Solves:

  • Custom widget accessibility (tabs, menus, dialogs)
  • Dynamic content announcements
  • Expanded/collapsed states
  • Error/validation messaging

focus-management

Keywords: keyboard, focus, tab, trap, modal, skip-link, roving Solves:

  • Modal focus trapping
  • Skip links for navigation
  • Roving tabindex for widgets
  • Focus restoration after dialogs

color-contrast

Keywords: contrast, color, wcag, perceivable, vision, ratio Solves:

  • Text contrast ratios (4.5:1 / 3:1)
  • UI component contrast (3:1)
  • Focus indicator visibility
  • Non-color status indicators

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon