Skip to content
cccskills
FreePublished on GitHub

a11y-audit

Audit web applications for accessibility issues against WCAG 2.2 Level A and AA, the web accessibility standards. Get framework-specific code fixes, contrast checks, verification steps, and reports, with options for automated checks in development pipelines.

OriginalShow the original description

Accessibility audit skill for scanning, fixing, and verifying WCAG 2.2 Level A and AA compliance across React, Next.js, Vue, Angular, Svelte, and plain HTML codebases. Use when auditing accessibility, fixing a11y violations, checking color contrast, generating compliance reports, or integrating accessibility checks into CI/CD pipelines.

See how to install

Good for

  • Audit a web application before release
  • Fix contrast and keyboard navigation issues
  • Prepare accessibility reports for stakeholders
  • Add accessibility checks to development pipelines

Files included (16)

  • SKILL.md9.6 KB
  • assets/sample-component.tsx1.2 KB
  • expected_outputs/sample-contrast-output.txt813 B
  • expected_outputs/sample-scan-output.json898 B
  • expected_outputs/sample-scan-report.md2.2 KB
  • references/aria-patterns.md5.9 KB
  • references/audit-report-template.md1.3 KB
  • references/ci-cd-integration.md3.3 KB
  • references/color-contrast-guide.md2.5 KB
  • references/examples-by-framework.md8.0 KB
  • references/framework-a11y-patterns.md14.1 KB
  • references/testing-checklist.md1.7 KB
  • references/wcag-22-new-criteria.md2.1 KB
  • references/wcag-quick-ref.md6.4 KB
  • scripts/a11y_scanner.py29.0 KB
  • scripts/contrast_checker.py16.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Accessibility Audit

WCAG 2.2 Accessibility Audit and Remediation Skill

Description

The a11y-audit skill provides a complete accessibility audit pipeline for modern web applications. It implements a three-phase workflow -- Scan, Fix, Verify -- that identifies WCAG 2.2 Level A and AA violations, generates exact fix code per framework, and produces stakeholder-ready compliance reports.

For every violation it finds, it provides the precise before/after code fix tailored to your framework (React, Next.js, Vue, Angular, Svelte, or plain HTML).

What this skill does:

  1. Scans your codebase for every WCAG 2.2 Level A and AA violation, categorized by severity (Critical, Major, Minor)
  2. Fixes each violation with framework-specific before/after code patterns
  3. Verifies that fixes resolve the original violations and introduces no regressions
  4. Reports findings in a structured format suitable for developers, PMs, and compliance stakeholders
  5. Integrates into CI/CD pipelines to prevent accessibility regressions

Features

FeatureDescription
Full WCAG 2.2 ScanChecks all Level A and AA success criteria across your codebase
Framework DetectionAuto-detects React, Next.js, Vue, Angular, Svelte, or plain HTML
Severity ClassificationCategorizes each violation as Critical, Major, or Minor
Fix Code GenerationProduces before/after code diffs for every issue
Color Contrast CheckerValidates foreground/background pairs against AA and AAA ratios
Compliance ReportingGenerates stakeholder reports with pass/fail summaries
CI/CD IntegrationGitHub Actions, GitLab CI, Azure DevOps pipeline configs
Keyboard Navigation AuditDetects missing focus management and tab order issues
ARIA ValidationChecks for incorrect, redundant, or missing ARIA attributes

Severity Definitions

SeverityDefinitionExampleSLA
CriticalBlocks access for entire user groupsMissing alt text, no keyboard access to navigationFix before release
MajorSignificant barrier that degrades experienceInsufficient color contrast, missing form labelsFix within current sprint
MinorUsability issue that causes frictionRedundant ARIA roles, suboptimal heading hierarchyFix within next 2 sprints

Usage

Quick Start

# Scan entire project
python scripts/a11y_scanner.py /path/to/project

# Scan with JSON output for tooling
python scripts/a11y_scanner.py /path/to/project --json

# Check color contrast for specific values
python scripts/contrast_checker.py --fg "#777777" --bg "#ffffff"

# Check contrast across a CSS/Tailwind file
python scripts/contrast_checker.py --file /path/to/styles.css

Slash Command

/a11y-audit                    # Audit current project
/a11y-audit --scope src/       # Audit specific directory
/a11y-audit --fix              # Audit and auto-apply fixes
/a11y-audit --report           # Generate stakeholder report
/a11y-audit --ci               # Output CI-compatible results

Three-Phase Workflow

Phase 1: Scan -- Walk the source tree, detect framework, apply rule set.

python scripts/a11y_scanner.py /path/to/project --format table

Phase 2: Fix -- Apply framework-specific fixes for each violation.

See references/framework-a11y-patterns.md for the complete fix patterns catalog.

Phase 3: Verify -- Re-run the scanner to confirm fixes and check for regressions.

python scripts/a11y_scanner.py /path/to/project --baseline audit-baseline.json

Example: React Component Audit

// BEFORE: src/components/ProductCard.tsx
function ProductCard({ product }) {
  return (
    <div onClick={() => navigate(`/product/${product.id}`)}>
      <img src={product.image} />
      <div style={{ color: '#aaa', fontSize: '12px' }}>{product.name}</div>
      <span style={{ color: '#999' }}>${product.price}</span>
    </div>
  );
}
#WCAGSeverityIssue
11.1.1Critical<img> missing alt attribute
22.1.1Critical<div onClick> not keyboard accessible
31.4.3MajorColor #aaa on white fails contrast (2.32:1, needs 4.5:1)
41.4.3MajorColor #999 on white fails contrast (2.85:1, needs 4.5:1)
54.1.2MajorInteractive element missing role and accessible name
// AFTER: src/components/ProductCard.tsx
function ProductCard({ product }) {
  return (
    <a href={`/product/${product.id}`} className="product-card"
       aria-label={`View ${product.name} - $${product.price}`}>
      <img src={product.image} alt={product.imageAlt || product.name} />
      <div style={{ color: '#595959', fontSize: '12px' }}>{product.name}</div>
      <span style={{ color: '#767676' }}>${product.price}</span>
    </a>
  );
}

See references/examples-by-framework.md for Vue, Angular, Next.js, and Svelte examples.

Tools Reference

a11y_scanner.py

Usage: python scripts/a11y_scanner.py <path> [options]

Options:
  --json                  Output results as JSON
  --format {table,csv}    Output format (default: table)
  --severity {critical,major,minor}  Filter by minimum severity
  --framework {react,vue,angular,svelte,html,auto}  Force framework (default: auto)
  --baseline FILE         Compare against previous scan results
  --report                Generate stakeholder report
  --output FILE           Write results to file
  --quiet                 Suppress output, exit code only
  --ci                    CI mode: non-zero exit on critical issues

contrast_checker.py

Usage: python scripts/contrast_checker.py [options]

Options:
  --fg COLOR              Foreground color (hex)
  --bg COLOR              Background color (hex)
  --file FILE             Scan CSS file for color pairs
  --tailwind DIR          Scan directory for Tailwind color classes
  --json                  Output results as JSON
  --suggest               Suggest accessible alternatives for failures
  --level {aa,aaa}        Target conformance level (default: aa)

Common Pitfalls

PitfallCorrect Approach
role="button" on a <div>Use native <button> -- includes keyboard handling for free
tabindex="0" on everythingOnly interactive elements need focus; use native elements
aria-label on non-interactive elementsUse aria-labelledby pointing to visible text
display: none for screen reader hidingUse .sr-only class instead
Color alone to convey meaningAdd icons, text labels, or patterns alongside color
Placeholder as only labelAlways provide a visible <label>
outline: none without replacementAlways provide a visible focus indicator via focus-visible
Empty alt="" on informational imagesInformational images need descriptive alt text
Skipping heading levels (h1 -> h3)Heading levels must be sequential
onClick without onKeyDownAdd keyboard support or prefer native elements
Ignoring prefers-reduced-motionWrap animations in @media (prefers-reduced-motion: no-preference)

Related Skills

SkillRelationship
senior-frontendFrontend patterns used in a11y fixes
code-reviewerInclude a11y checks in code review workflows
senior-qaIntegration of a11y testing into QA processes
playwright-proAutomated browser testing with accessibility assertions
epic-designWCAG 2.1 AA compliant animations and scroll storytelling
tdd-guideTest-driven development patterns for a11y test cases

Reference Documentation

ReferenceDescription
wcag-quick-ref.mdWCAG 2.2 Level A & AA criteria quick reference
wcag-22-new-criteria.mdNew WCAG 2.2 success criteria (Focus Appearance, Target Size, etc.)
aria-patterns.mdARIA patterns, keyboard interaction, and live regions
framework-a11y-patterns.mdFramework-specific fix patterns (React, Vue, Angular, Svelte, HTML)
color-contrast-guide.mdColor contrast checker details, Tailwind palette mapping, sr-only class
ci-cd-integration.mdGitHub Actions, GitLab CI, Azure DevOps, pre-commit hook configs
audit-report-template.mdStakeholder-ready audit report template
testing-checklist.mdManual testing checklist (keyboard, screen reader, visual, forms)
examples-by-framework.mdFull audit examples for Vue, Angular, Next.js, and Svelte

Resources

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

ab-test-setup

FreeSummary

Plan A/B tests that compare page variations, from headlines to pricing layouts. Define a hypothesis, choose success metrics, calculate sample size and duration, and prepare launch checks and results reports to support decisions.

  • Comparing landing page headlines
  • Testing signup button changes
  • Planning pricing page experiments
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

ad-creative

FreeSummary

Create paid ad headlines and body copy tailored to each platform's character limits. Use existing performance data to develop variations, explore new messaging angles, and check copy for length, quality, and potential rejection risks.

  • Creating Google RSA headlines
  • Writing Meta and LinkedIn ad copy
  • Developing variations of successful ads
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

Review code changes from three critical perspectives: production failures, maintainability, and security. Get a consolidated report that ranks findings by severity and provides merge guidance, helping examine assumptions that an ordinary self-review may overlook.

  • Reviewing a pull request before merging
  • Getting a second opinion on AI-written code
  • Checking authentication or data access code
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

aeo

FreeSummary

Audit and improve content intended for citation in AI answers. Review evidence, author information, and structure, generate revised content and structured metadata, and keep a local record of observed citations across AI services.

  • Audit existing articles for evidence and credibility gaps
  • Revise article structure and references for AI answers
  • Record citations observed across AI services
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

Create signed records for consequential agent actions such as deployments, deletions, and payments. Decide which actions need evidence, record the agent, action, target, and policy, then verify the resulting certificate offline to detect later changes.

  • Creating signed records for production deployments
  • Preserving evidence of deletions and payments
  • Recording access grants for later review
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

agent-designer

FreeSummary

Design systems where multiple AI agents share work, generate tool schemas that define tool inputs for Anthropic and OpenAI, and analyze execution logs. Outputs include role assignments, communication diagrams, and recommendations for addressing cost, latency, and failures.

  • Designing agent roles for research automation
  • Choosing how multiple agents coordinate work
  • Generating and validating tool schemas
alirezarezvani/claude-skills28.4KUpdated Aug 30, 2026

See all skills by alirezarezvani

Report a problem with this skill