agentsclimarketplace

Accessibility audit

Skill skeletont638-code/a11y-sentinel/skills/accessibility-audit

Accessibility guidance for AI coding agents — the complete WCAG 2.2 A/AA checklist (all 55 success criteria) + ADA legal context + a real audit procedure. Portable Agent Skill for Claude Code, Cursor, Codex & Gemini CLI. Fix accessibility properly, don't guess.

Install
npx -y skills add skeletont638-code/a11y-sentinel --skill accessibility-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when building, reviewing, auditing, or remediating any website, web app, or mobile UI for accessibility / ADA / Section 508 / WCAG compliance — or when handling alt text, color contrast, keyboard navigation, screen-reader support, ARIA, focus order, form labels, captions, an accessibility statement, or an ADA demand letter / lawsuit. Loads the complete WCAG 2.2 A/AA criteria checklist so every requirement is checked, not guessed.

SKILL.md

13.0 KB, as published. Nobody here has run it

Accessibility Audit (WCAG 2.2 A/AA)

Core principle

Conform to WCAG 2.1 AA as the legal floor; build to WCAG 2.2 AA. 2.2 AA is a superset of 2.1 AA, so building to it satisfies the floor and future-proofs. Never target "WCAG 3.0" (an early draft, not for conformance).

Two facts that shape everything below:

  1. Automated tools detect only ~30–40% of WCAG issues. A clean axe/Lighthouse run is a floor, not a verdict. The remaining ~60–70% (is the alt text meaningful? is focus order logical? do labels describe?) require human/agent judgment — this judgment layer is the real value; a scanner cannot do it.
  2. Fix the source code. Overlay/widget products (accessiBe, AudioEye, UserWay, EqualWeb) are NOT a fix and NOT a legal shield — they're routinely named in lawsuits; the FTC fined accessiBe $1M in 2025 for claiming otherwise. If one is present, recommend removing it and remediating the source.

This is an engineering reference, not legal advice. For litigation risk, jurisdictions, state damages, case law, and the accessibility statement, read reference/legal.md. For scan commands, manual-test procedures, and the WCAG-EM report format, read reference/auditing.md.

Workflow

  1. Scope — pin version+level (2.2 AA), enumerate domain + subdomains, pick a representative page sample (home, key templates, forms, login/auth, search, error states, complex widgets). A conformance claim requires whole pages and complete processes to pass — partial-page conformance is invalid.
  2. Automated pass — run ≥2 engines (axe-core + pa11y/Lighthouse). Catches the machine-detectable ~30–40%. See reference/auditing.md.
  3. Manual pass (required) — keyboard-only, screen reader (NVDA+VoiceOver min), 200% zoom / 400% reflow (320px), contrast spot-checks over images/states. This is where most real failures live.
  4. Fix source code — by risk-based triage (below), not file order.
  5. Report — one row per success criterion (Pass/Fail/Not-Present/Inconclusive), separating automated vs. manual provenance.

Risk-based triage — fix in this order:

  • Tier 0 — transaction blockers: checkout, login, search, all forms fully keyboard + screen-reader operable (2.1.1, 2.1.2, 3.3.2, 4.1.2); alt text (1.1.1); visible focus (2.4.7); contrast (1.4.3). Remove any overlay.
  • Tier 1 — site-wide structure (fix once, everywhere): semantic headings/landmarks/skip link (1.3.1, 2.4.1), page <title> (2.4.2) + lang (3.1.1), error identification+suggestion (3.3.1, 3.3.3), never color-only (1.4.1), reflow/zoom (1.4.10, 1.4.4), captions/transcripts (1.2.x).
  • Tier 2 — program/defensibility: accessibility statement, ongoing monitoring, dated remediation records, third-party/vendor controls, born-accessible design system.

The judgment layer (what scanners CANNOT catch — check these by hand)

  • Is alt text meaningful for the context, or just present? (functional images describe the action/destination, not the picture)
  • Is focus order logical and does it match visual order?
  • Do labels/headings/links describe their target (not "click here", "more", "Section 1")?
  • Is ARIA correct — right role/name/state, and announced? ("No ARIA is better than bad ARIA.")
  • Are captions accurate (auto-captions are non-compliant until reviewed)?
  • Do color/contrast hold over images, gradients, and hover/focus/disabled states?
  • Is every status message announced (live regions) without stealing focus?

THE FULL CHECKLIST — every WCAG 2.2 Level A & AA success criterion

Target = all of these. 4.1.1 Parsing is OBSOLETE in 2.2 — do not score against it. The 3 new 2.2 focus/auth-enhanced criteria (2.4.12, 2.4.13, 3.3.9) are AAA — out of scope. Count: 31 Level A + 24 Level AA = 55 (the 2.1 AA floor is the same set minus the 6 new 2.2 criteria, plus 4.1.1 = 50).

Perceivable

SCName · LevelCheck forCommon failure
1.1.1Non-text Content · AText alt for all non-text; decorative marked alt=""; functional images name the actionMissing/auto alt, alt="image.jpg", icon buttons with no name. #1 cited.
1.2.1Audio-only & Video-only (Prerecorded) · ATranscript for audio-only; transcript/audio for silent videoPodcasts/demos with no transcript
1.2.2Captions (Prerecorded) · ASynchronized captions on all prerecorded video-with-audioNone, or unreviewed auto-captions
1.2.3Audio Description or Media Alt (Prerecorded) · AAudio description of visuals OR full text alternativeOn-screen action not narrated, no transcript
1.2.4Captions (Live) · AASynchronized captions for all live audio contentLive webinars/streams/events with no live captioning
1.2.5Audio Description (Prerecorded) · AAAudio description track for all prerecorded video-with-audioImportant on-screen visuals not described in audio
1.3.1Info and Relationships · AStructure programmatic: headings, lists, tables (<th>/scope), associated labelsFaux headings via bold, layout tables, unlabeled fields
1.3.2Meaningful Sequence · ADOM/reading order correct where order conveys meaningCSS flex/grid/absolute order ≠ DOM order
1.3.3Sensory Characteristics · AInstructions not by shape/size/location/sound alone"Press the green button", "the box on the right"
1.3.4Orientation · AANot locked to one orientation unless essentialApp locked to portrait
1.3.5Identify Input Purpose · AAautocomplete tokens on user-info fieldsname/email/address/phone without autocomplete
1.4.1Use of Color · AColor never the only cue for info/state/actionLinks/errors/required by color only
1.4.2Audio Control · AAuto-play >3s has pause/stop/volumeAuto-playing audio, no stop
1.4.3Contrast (Minimum) · AA≥4.5:1 normal text, ≥3:1 large (18pt/14pt bold)Light-gray text, low-contrast placeholders. Top-cited.
1.4.4Resize Text · AAText to 200% with no loss, without ATFixed px; clipping at 200%
1.4.5Images of Text · AAReal text, not images of text (logos exempt)Headings/buttons as flat images
1.4.10Reflow · AASingle-column, no 2D scroll at 320px (=400% zoom)Fixed-width; horizontal scroll at zoom
1.4.11Non-text Contrast · AAUI components, states, focus rings, meaningful graphics ≥3:1Low-contrast borders, toggles, focus rings
1.4.12Text Spacing · AANo loss when user overrides line/para/letter/word spacingFixed-height overflow:hidden clipping
1.4.13Content on Hover or Focus · AAHover/focus content dismissable (Esc), hoverable, persistentTooltips vanish on move / can't dismiss

Operable

SCName · LevelCheck forCommon failure
2.1.1Keyboard · AAll functionality keyboard-operableMouse-only menus/sliders/modals; click on non-focusable <div>
2.1.2No Keyboard Trap · AFocus can always leave by keyboardModals/widgets trap Tab
2.1.4Character Key Shortcuts · ASingle-char shortcuts off/remappable/focus-scopedSingle-letter shortcuts fire while typing
2.2.1Timing Adjustable · ATime limits off/adjustable/extendable (20s warning)Checkout/session timeout, no warning
2.2.2Pause, Stop, Hide · AMoving/auto-updating >5s can pause/stop/hideAuto-advancing carousels, tickers
2.3.1Three Flashes or Below · ANothing flashes >3×/secRapid flashing animation/GIF
2.4.1Bypass Blocks · ASkip link / landmarks / headings to bypass repeatsNo skip link, no landmarks
2.4.2Page Titled · ADescriptive <title> per page"Home", "Untitled", duplicates
2.4.3Focus Order · ASequential focus preserves meaningPositive tabindex; modal doesn't move focus
2.4.4Link Purpose (In Context) · APurpose clear from text or context"Click here", "Read more", bare URLs
2.4.5Multiple Ways · AA>1 way to find a page (search + nav/sitemap)Single nav, no search/sitemap
2.4.6Headings and Labels · AAHeadings/labels describe topic/purpose"More", "Section 1"; vague labels
2.4.7Focus Visible · AAVisible keyboard focus on every operable elementGlobal outline:none with no replacement. Critical.
2.4.11Focus Not Obscured (Minimum) · AA (new 2.2)Focused element not fully hidden by author contentSticky header/cookie banner covers focus
2.5.1Pointer Gestures · AMultipoint/path gestures have single-pointer altSwipe/pinch-only with no tap alt
2.5.2Pointer Cancellation · ANot completed on down-event (abort/undo)Fires on mousedown/touchstart
2.5.3Label in Name · AAccessible name contains the visible label textaria-label differs from visible text
2.5.4Motion Actuation · AMotion-triggered actions have UI alt + can disableShake-to-undo, tilt-to-scroll only
2.5.7Dragging Movements · AA (new 2.2)Dragging achievable with single pointer, no dragDrag-only reorder, sliders, kanban
2.5.8Target Size (Minimum) · AA (new 2.2)Pointer targets ≥24×24 CSS px or spacedTiny icon/close buttons, dense pagination

Understandable

SCName · LevelCheck forCommon failure
3.1.1Language of Page · AValid lang on <html>Missing/wrong lang
3.1.2Language of Parts · AAlang on differing-language passagesForeign quote with no lang
3.2.1On Focus · AFocus doesn't change contextAuto-navigate/submit on focus
3.2.2On Input · AChanging a setting doesn't unexpectedly change contextSelect auto-navigates; auto-submit
3.2.3Consistent Navigation · AARepeated nav in same relative orderNav reordered page to page
3.2.4Consistent Identification · AASame-function components named consistently"Search" vs "Find"; mismatched icons
3.2.6Consistent Help · A (new 2.2)Repeated help in same relative locationHelp/contact link jumps around
3.3.1Error Identification · AErrors identified and described in textError by red color only; generic "has errors"
3.3.2Labels or Instructions · ALabels/instructions incl. format & requiredPlaceholder-only labels; no <label>
3.3.3Error Suggestion · AACorrection suggestions when known"Invalid input", no guidance
3.3.4Error Prevention (Legal/Financial/Data) · AAReversible / checked / confirmedIrreversible purchase/delete, no confirm
3.3.7Redundant Entry · A (new 2.2)Re-use prior entries (except passwords)Multi-step form re-typing address
3.3.8Accessible Authentication (Minimum) · AA (new 2.2)No cognitive-function test unless alt (paste, password mgrs, OTP)Paste-blocked login; puzzle CAPTCHA, no alt

Robust

SCName · LevelCheck forCommon failure
4.1.1Parsing · OBSOLETE (removed in 2.2)Do not score. Issues now fall under 1.3.1 / 4.1.2(historically: duplicate id, mis-nested tags)
4.1.2Name, Role, Value · AName/role programmatic; states settable & announced (incl. custom widgets)<div> widgets with no role/name; missing aria-expanded/-checked. Critical.
4.1.3Status Messages · AAStatus announced via live region (role=status/alert) without focusToasts, "X results", success never announced

Mobile, PDFs, and beyond

  • Native apps (covered by ADA Title II 2024 rule, increasingly Title III): map WCAG via WCAG2ICT; implement with platform a11y APIs; test VoiceOver (iOS) / TalkBack (Android); target ≥44–48dp. App-store review ≠ ADA compliance.
  • PDFs/documents are a common cited violation: tagged PDF, reading order, real text (not scanned), alt text, table headers, lang. Standard = PDF/UA + WCAG. Or provide an accessible HTML equivalent.
  • Third-party embeds (checkout iframes, chat, maps, video) are your liability: require WCAG conformance in contracts, demand a VPAT/ACR, test the embed, provide a human/phone fallback.

Common mistakes

  • Treating a clean automated scan as conformance. It covers ~30–40%; always do the manual pass.
  • Stripping focus outlines for aesthetics (fails 2.4.7) — always provide a visible replacement (≥3:1).
  • Placeholder text used as the only label (fails 3.3.2).
  • Adding ARIA to "fix" things — wrong ARIA fails 4.1.2. Prefer native HTML.
  • Scoring against 4.1.1 under 2.2 (it's obsolete) or treating 2.4.13/2.4.12/3.3.9 as AA (they're AAA).
  • Relying on an overlay widget, or claiming "fully ADA compliant" — the latter becomes an admission + FTC false-advertising risk. Underclaim; cite an honest target.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.