Skip to content
Back to skills

Accessibility

ASecurity

Web accessibility audit and fixes to WCAG 2.2. Use when asked for an a11y audit, WCAG compliance, screen reader support or keyboard navigation.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 16, 2026
ai-agentsgonode

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 16, 2026

npx -y skills add hsynozdamar-byte/claude-skills-edited --skill accessibility --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Accessibility?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Accessibility
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hsynozdamar-byte-accessibility/badge)](https://www.skillsdirectory.com/skills/hsynozdamar-byte-accessibility)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: accessibility
description: "Web accessibility audit and fixes to WCAG 2.2. Use when asked for an a11y audit, WCAG compliance, screen reader support or keyboard navigation."
license: MIT
metadata:
  author: web-quality-skills
  version: "2.0"
---

# Accessibility (WCAG 2.2)

Make content usable by everyone. Target level AA (a legal requirement in many jurisdictions); A is the floor, AAA is optional. Organized by POUR: perceivable, operable, understandable, robust.

## Evidence-led workflow

With a rendered page:
1. Run a live Lighthouse Accessibility audit (Chrome DevTools MCP: `lighthouse_audit`). Use mobile navigation mode for a public page, or snapshot mode when reloading would lose authenticated or user-created state.
2. Localize each failed node to its component or template instead of grepping the repo for generic patterns.
3. Read the accessibility-tree snapshot (`take_snapshot`) for names, roles, states, landmarks and heading structure, and exercise the affected flow by keyboard.
4. Fix the source, then re-run the same audit and the same manual interaction.

Without live tools use Lighthouse CLI (`npx lighthouse <url> --only-categories=accessibility`) or axe (`@axe-core/cli`) plus the manual checks below. Automation catches only a subset of barriers: a score of 100 is not conformance, and a low score is no substitute for issue-level evidence.

## Rules that decide most findings

**Perceivable**
- Informative images get descriptive `alt`; decorative ones get `alt=""`. Icon-only buttons get an accessible name (`aria-label` or visually hidden text), with the icon `aria-hidden`.
- Contrast (1.4.3): 4.5:1 normal text, 3:1 large text (>= 18px, or >= 14px bold) and UI components/graphics (1.4.11). Focus indicators also need 3:1.
- Convey state with color plus icon plus text (1.4.1). Video needs captions and, where relevant, audio description; audio needs a transcript (1.2).

**Operable**
- Native `<button>`, `<a href>` and form controls first; they bring focusable, Enter/Space and semantics. A `div` button needs `role`, `tabindex="0"` and key handling, and adding that to a native button double-triggers.
- No keyboard traps (2.1.2); native `<dialog>` traps focus correctly.
- Focus visible (2.4.7): style `:focus-visible` with `outline: 2px solid currentColor; outline-offset: 2px`, and replace any `outline: none`.
- 2.2 additions: focus not obscured by sticky bars (2.4.11, add `scroll-margin`), dragging needs a single-pointer alternative (2.5.7), targets at least 24x24 CSS px (2.5.8; 44x44 recommended; exceptions for inline links, browser-sized controls, and spaced targets).
- Provide a skip link (2.4.1), a way to extend time limits (2.2), and `prefers-reduced-motion` support (2.3).

**Understandable**
- `lang` on `<html>` (3.1.1) and on foreign phrases; consistent navigation (3.2.3) and, new in 2.2, help mechanisms in the same relative order on every page (3.2.6).
- Every input has a programmatic label (3.3.2). Errors: `aria-invalid="true"`, message linked by `aria-describedby`, announced via `role="alert"`, focus moved to the first error (3.3.1, 3.3.3).
- Redundant entry (3.3.7): reuse information already given in the session. Accessible authentication (3.3.8): allow paste and autofill, or offer passkey, SSO or email link; object recognition or personal content is the only cognitive test allowed at AA.

**Robust**
- Native elements before ARIA. When ARIA is needed, use the complete pattern (roles, states, keyboard model; APG).
- Announce dynamic updates with `aria-live` regions instead of moving focus (4.1.3).

Markup, CSS and JS for each rule: [references/code-samples.md](references/code-samples.md). Patterns (modal focus trap, skip link, tabs, live regions, form labels, error handling, dragging, VoiceOver/NVDA commands): [references/A11Y-PATTERNS.md](references/A11Y-PATTERNS.md). Every criterion by level: [references/WCAG.md](references/WCAG.md).

## Manual checks

Keyboard through the whole page (Tab, Enter, Space); a screen reader (VoiceOver, NVDA or TalkBack); 200% zoom; Windows High Contrast; reduced motion; focus order matching visual order; target sizes.

## Triage

- **Critical**: missing form labels, missing alt, insufficient contrast, keyboard traps, no focus indicator.
- **Serious**: missing page language, broken heading structure, non-descriptive link text, autoplaying media, no skip link.
- **Moderate**: icons without ARIA labels, inconsistent navigation, missing error identification, timing without controls, missing landmarks.

Sources: [WCAG 2.2 Quick Reference](https://www.w3.org/WAI/WCAG22/quickref/), [WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/), [Deque axe rules](https://dequeuniversity.com/rules/axe/).

Files in this skill

  • SKILL.md4.6 KB
  • SOURCE.md323 B
  • references/A11Y-PATTERNS.md5.9 KB
  • references/WCAG.md8.9 KB
  • references/code-samples.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.