Claude Code logo
Claude Code template
w3.orgdocs.claude.com

Accessibility Audit on a Preview URL

Ranks accessibility findings by who is blocked, not by count — with selectors, fixes, and an honest list of what automation can't check. Never certifies.

NewNew8.9 KB snapshotStarter VM
Claude Code logo

What's inside

Harness

Claude Code

Plan

Starter

vCPU

1

Memory

2 GiB

Snapshot

8.9 KB

How it works · ~3 minutes

  1. 01 · Fork

    New isolated microVM on your subdomain — creator state included.

  2. 02 · Your keys

    Log into Claude Code with your own model credentials (BYOK).

  3. 03 · Ask it to work

    Open the terminal and give it a real job. You keep what ships.

30-day money-back on your first purchase · no free trial · keys never leave the VM

About this template

"47 issues found." So the team fixed 40 alt attributes.

The checkout form still can't be completed with a keyboard. The audit passed. The site is still unusable for the people it was supposed to help.

That's what a report sorted by count does.

Impact before count

This one opens with who is blocked, in plain sentences — "keyboard users cannot submit the signup form" — before any number appears.

Every finding is BLOCKING (a user cannot complete a task) or DEGRADING (harder, not impossible). Fix BLOCKING first even though DEGRADING is usually easier. That ordering is the entire point.

Five checks that account for most real failures

  1. Missing alt — and it distinguishes alt="" on a decorative icon (correct) from an absent alt (a failure). Checkers routinely conflate these.
  2. Unlabelled inputs — no <label for>, no aria-label. A placeholder is not a label, and that gets flagged explicitly, because it's the most common thing teams do believing they fixed it.
  3. Contrast — the computed ratio and the threshold, not a verdict. Unresolvable CSS returns UNRESOLVED, never a guess.
  4. Click handlers on non-buttons — a div with an onclick, no role, no tabindex. Invisible to keyboard and screen reader.
  5. Heading order — skipped levels, multiple h1s.

Every finding cites the selector and the failing attribute.

It will not tell you you're compliant

Automated checks catch roughly a third of WCAG issues. The rest need a human and real assistive tech. That caveat is line one of every report, and asking it to certify gets a refusal.

A "passed" automated audit on an unusable page is worse than no audit — it's a paper trail of false assurance.

The section people skip

Needs a human. Focus order, screen-reader announcement, motion sensitivity, and whether your alt text is usefulalt="image" is present and worthless, and only a person can call that. Those are listed as unautomatable rather than quietly passed.

Plus UNRESOLVED: checks it couldn't complete and why. A gap stated is not a pass implied.

What you supply

Your own Claude Code login. Nothing else — it audits public URLs, including Vercel and Netlify previews.

It saves the fetched HTML to ~/a11y/pages/ so findings stay reproducible against a fixed snapshot.

Where this stops

It finds problems and cites selectors. It does not certify WCAG conformance, issue a VPAT, or declare a page accessible.

It won't report screen-reader behaviour it didn't observe — it reads a DOM, it doesn't run NVDA — and it won't opine on ADA risk.

Verified on build: the skill, the working tree, the NEVER_CLAIM_COMPLIANT guard, all five checks, the impact-before-count rule and both honesty rules are present on a fresh fork. Running it on your own preview is yours to do.

Inside this fork

Forking copies this template into a brand-new, fully isolated microVM on your own subdomain. Here's exactly what lands in it.

  • Claude Code agent

    The upstream harness, pre-installed — same version the creator ran.

  • Starter VM

    1 vCPU · 2 GiB RAM · 10 GiB disk.

  • Creator's /persist data

    The captured persist volume is copied byte-for-byte into your fork.

  • BYOK — your keys, your VM

    Add your model API keys after forking; they live only inside your microVM.

What this agent can do

1 skill

  • a11y-pass

    Audit a preview or live URL for accessibility problems — missing alt, unlabelled inputs, contrast, non-button click targets, heading order…

What you'll configure after forking

Secrets are scrubbed from shared templates — these are the names you supply in your agent's terminal once it boots.

Environment variables

  • ANTHROPIC_API_KEY

Your turn

Your own Accessibility Audit on a Preview URL, live in about 3 minutes.

Forking copies this Claude Codeagent into a brand-new, fully isolated microVM on your own subdomain — the creator's /persist state and all. Add your own keys after it boots; they never leave the box. Don't love it? Your first jurniti purchase comes with 30 days to get every cent back.

New paid VM · BYOK · 30-day money-back on your first purchase · ~3 min to provision

Starter · fork

$25/ mo

Needs 1 of your own API key