⚙️ Free · No URL needed · 5 min
Pre-launch ADA accessibility checklist — 18 items before you push live
The first thing a business checks before launching a page. Run through Visual, Structure, Keyboard, Media, and Compliance signals. Live exposure meter, progress persists in your browser, no signup required.
Estimated lawsuit exposure
0 of 18 items checked
$10K–$75K modeled range · tighten it by checking items off below
Visual
4 items
Color contrast, focus indicators, text resize & touch targets — the most often litigated user-facing issues.
-
Body text passes 4.5:1 contrast; large text (18px+ or 14px+ bold) passes 3:1. Most "wonky color" design choices fail this check.
Why this matters
Color contrast is the #1 violation in WebAIM's Million report — over 86% of audited sites fail. It is also a leading indicator in ADA lawsuit filings because plaintiff firms can scan it programmatically. -
A keyboard outline (default or replacement) shows up whenever an input, button, or link gets focus. Do not use outline:none without a replacement.
Why this matters
Invisible focus is the most commonly cited keyboard-navigation issue in ADA filings. Plaintiffs' counsel test it with `Tab` from page open. -
Users can zoom to 200% without horizontal scrolling, overlapping text, or cut-off CTAs.
Why this matters
Low-vision users routinely visit sites zoomed to 200%. If a layout breaks, the entire page becomes unusable for them. -
Every clickable element has enough hit-area to use on touch devices — no tiny icon-only buttons jammed together.
Why this matters
Targets under 24px hit the wrong element on touchscreens and keyboards alike. Common in mobile-first designs that look fine on desktop.
Structure
4 items
Page titles, heading order, landmarks, and language declaration — what screen readers read first.
-
Each page's tab title describes what the page IS — not "Home | Brand" repeated everywhere.
Why this matters
Page titles are what screen-reader users hear first. "Untitled Document" is the canonical flag for "we never touched the CMS template". -
Heading levels never skip a number — H1 → H2 → H3 (no jumping to H4 from H2). The H1 describes the page, not the brand.
Why this matters
Sequential headings give screen-reader users the same "scanning" benefit sighted users get from visual hierarchy. Skipped levels force them to start the whole page over. -
Page regions use semantic HTML5 elements so "skip to content", "skip to nav", keyboard landmarks work.
Why this matters
Landmarks are an under-the-radar performance hit — pages without <main> or <nav> force screen-reader users to listen to the entire DOM to find the links. -
The top of the document declares a primary language so screen readers know which voice to use.
Why this matters
Missing lang attribute is a default axe-core error on every page that doesn't declare it. Trivial to fix, surprisingly expensive to skip.
Keyboard
3 items
Tab order, skip links, and labelled form controls — make the site usable without a mouse.
-
Pressing Tab moves through interactive elements in the order a sighted user would expect — left-to-right, top-to-bottom.
Why this matters
A "Skip to content" link only works if Tab order is sane. Tangled tab order makes keyboard navigation functionally impossible for screen-reader, switch-device, and power-keyboard users. -
A hidden-until-focused link at the top of <body> jumps focus to <main>. Same pattern on every page.
Why this matters
A skip link is the difference between "the site is keyboard-navigable" and "the site requires Tab-Tab-Tab-Tab through the nav on every page". It is a Level A failure when missing. -
Labels are tied to inputs with `for`/`id`, or wrap the input. Placeholder text alone does NOT count.
Why this matters
Unlabeled inputs are the #1 form-completion blocker for screen-reader users. They're also the #1 "we wrote it in React without thinking about labels" failure mode.
Media
3 items
Alt text, captions, and transcripts — non-text content alternative requirements.
-
Every <img> conveys what it MEANS — product name, owner name, photo subject. Decorative-only images use alt="".
Why this matters
Missing or meaningless alt text is the SECOND-most common WebAIM violation (after color contrast). Stock "image-of-X" alt is the dogfood-default missed spec. -
Pre-recorded video has closed captions for dialogue AND relevant sound effects. Auto-captions alone do not satisfy WCAG.
Why this matters
Auto-captions routinely miss named entities, jargon, and brand pronunciation. Plaintiffs' counsel check for "auto-only" captions because they're a documented failure pattern. -
Podcasts, recorded calls, audio demos — there's a text alternative for the deaf/HoH audience.
Why this matters
Audio content without transcripts excludes deaf and hard-of-hearing users entirely. Less commonly litigated, but fully reachable in any deep audit.
Compliance signals
4 items
Error messages, accessibility statements, contact for accommodations, link purpose — DOJ-recognized compliance signals.
-
Inline errors name the field, the failure ("must be a valid email"), and the fix ("example@name.com"). Generic red borders are not enough.
Why this matters
Screen-reader users can't see a red border flash. Without descriptive text in the error element itself, they don't know what failed. -
A statement page describes your accessibility commitments, contact for accommodations, and known limitations.
Why this matters
The DOJ rule (effective June 2024) treats the presence of an accessibility statement as one signal of "good-faith effort". Its absence is not itself a WCAG failure but is documented in settlements. -
Visitors can ask for the site in an alternative format. Looks like "Accessibility help? Email access@brand.com".
Why this matters
Showing the user HOW to escalate a barrier is the smallest change that signals compliance effort. Missing it costs nothing to add. -
Link text describes the destination — not "click here", "read more", or bare URLs. Screen-reader link lists read each link in isolation.
Why this matters
"Click here" is the canonical a11y quiz answer — and it ships in production pages surprisingly often. Each one is a fail in any axe-core run.
Email me this checklist as a PDF
Save your progress. We'll email a copy of your checklist + a friendly nudge to scan your staging URL before launch. No spam.
A self-audit catches the things you remembered to check. A scan catches the rest.
The 18-item checklist above is the place to start. The free scan visits your staging URL and finds the WCAG failures you didn't know to ask about — exact code fixes, ranked by lawsuit risk.
Run a free scan on your actual site →
FAQ
Common questions about the pre-launch checklist
The exposure range is a modeled estimate — not a legal opinion.
Is this checklist a substitute for a real WCAG scan?
No. A self-audit checklist catches the things you remembered to look for — but it can't catch the things you didn't know to ask about. Run a free scan on your staging URL after the checklist to find the rest. ADAflags ranks every missed violation by lawsuit risk and gives you the exact fix code.
How is the estimated exposure calculated?
The meter uses a $10K–$75K base ADA settlement range (DOJ and Seyfarth Shaw 2024 data), scaled up by the unchecked-weight fraction of the 18 checklist items, capped at $150K–$300K to match the upper tail of observed cases. Each item carries a severity weight (high=3, medium=2, low=1) so unchecked criticals push exposure higher than unchecked low-severity items.
Will my progress be saved?
Yes. Your checkbox state is stored in browser localStorage under
adaflags_pre_launch_checklist_v1 — it persists across refreshes and revisits. We do not store anything server-side until you tap "Email me this checklist as a PDF".