Skip to main content

ADA Website Compliance Checklist 2026

The April 2026 federal ADA deadline applies to state and local government sites, but private business enforcement is accelerating too. Use this checklist to identify and fix the violations most likely to appear in a lawsuit.

The ADA does not include a government-issued website compliance checklist. What it includes is a legal obligation not to discriminate against people with disabilities, and courts have consistently applied that obligation to websites. WCAG 2.2 Level AA is the de facto technical standard used by courts and regulators to evaluate compliance.

This checklist covers the violations that appear most often in audits, demand letters, and litigation.

Why 2026 Matters

On April 24, 2024, the DOJ published a final rule under ADA Title II requiring state and local government websites to conform to WCAG 2.1 Level AA. The compliance deadline for most government entities is April 24, 2026.

Private businesses are not covered by this specific rule, but the DOJ's move signals broader regulatory intent. Plaintiffs' attorneys have already begun using the new rule as a reference point in Title III cases. For any website owner, now is the right time to run this checklist.

Section 1: Page Fundamentals

1.1 Page Language Declared

Every HTML page must have a lang attribute on the element. Screen readers use this to select the correct pronunciation engine. Check: View source on your homepage. Does (or the appropriate language code) appear? Fix: Add lang="en" to your tag in your template or layout file.

1.2 Page Title Present

Every page must have a descriptive </code> in the <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><head></code>. The title is the first thing screen readers announce when a user lands on a page. <strong class="text-slate-700 font-semibold">Check:</strong> Does each page have a unique, descriptive title that identifies the page content and site name? <strong class="text-slate-700 font-semibold">Fix:</strong> Update your CMS templates to include page-specific titles. Avoid generic titles like "Home" or "Page 1." <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">1.3 Viewport Meta Tag</h3> The viewport meta tag enables responsive design. Without it, mobile browsers zoom out, making content inaccessible to low-vision users who rely on mobile zoom. <strong class="text-slate-700 font-semibold">Check:</strong> Every page should include <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><meta name="viewport" content="width=device-width, initial-scale=1"></code>. <strong class="text-slate-700 font-semibold">Fix:</strong> Add to your HTML <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><head></code>. Do not use <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">user-scalable=no</code>, which prevents users from zooming. <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Section 2: Images and Media</h2> <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">2.1 All Images Have Alt Text (WCAG 1.1.1)</h3> Every <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><img></code> element must have an <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt</code> attribute. Decorative images get <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt=""</code>. Informative images get descriptive alt text. Images that are links must describe the link destination. <strong class="text-slate-700 font-semibold">Check:</strong> Use your browser's developer tools to inspect every image. Look for <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt=""</code> on decorative images and meaningful descriptions on informative ones. <strong class="text-slate-700 font-semibold">What fails:</strong> Images with no <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt</code> attribute at all, or <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt="image"</code> or <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">alt="photo123.jpg"</code>. <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">2.2 Video Captions (WCAG 1.2.2)</h3> Pre-recorded video with audio must have synchronized captions. Live video must have real-time captions. <strong class="text-slate-700 font-semibold">Check:</strong> Play any embedded videos. Are captions available and accurate? <strong class="text-slate-700 font-semibold">What fails:</strong> Auto-generated captions that have not been reviewed, or video embedded from YouTube with captions disabled. <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Section 3: Forms</h2> <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">3.1 All Form Inputs Are Labeled (WCAG 1.3.1, 4.1.2)</h3> Every <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><input></code>, <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><select></code>, and <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><textarea></code> must be associated with a visible <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><label></code> element using the <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">for</code>/<code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">id</code> pairing, or use <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">aria-label</code> / <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">aria-labelledby</code>. <strong class="text-slate-700 font-semibold">Check:</strong> Click on each form label. Does the cursor jump to the corresponding field? Tab through the form with a keyboard. Does your screen reader announce the field name? <strong class="text-slate-700 font-semibold">What fails:</strong> Placeholder text used instead of a label (placeholders disappear when typing), or icon-only inputs with no accessible name. <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">3.2 Error Messages Are Descriptive (WCAG 3.3.1, 3.3.3)</h3> When a form submission fails, the error must be identified in text and explained. Generic messages like "Invalid input" do not pass. <strong class="text-slate-700 font-semibold">Check:</strong> Submit your forms with intentional errors. Does the page clearly identify which field failed and why? Is the error programmatically associated with the field? <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Section 4: Navigation and Keyboard Access</h2> <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">4.1 Skip Navigation Link (WCAG 2.4.1)</h3> A "Skip to main content" link must appear at the top of the page so keyboard users can bypass the navigation menu on every page load. <strong class="text-slate-700 font-semibold">Check:</strong> Press Tab on any page. Is the first focusable element a "Skip to main content" link? <strong class="text-slate-700 font-semibold">Fix:</strong> Add <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><a href="#main-content" class="sr-only focus:not-sr-only">Skip to main content</a></code> before your navigation, and add <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">id="main-content"</code> to your main content wrapper. <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">4.2 Full Keyboard Accessibility (WCAG 2.1.1)</h3> Every interactive element must be operable by keyboard alone: links, buttons, dropdowns, modals, tabs, carousels, and custom widgets. <strong class="text-slate-700 font-semibold">Check:</strong> Tab through your entire site without using a mouse. Can you reach and activate every interactive element? Can you close modals and escape dropdowns with the Escape key? <strong class="text-slate-700 font-semibold">What fails:</strong> Click-only event handlers on <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><div></code> elements, dropdown menus that only open on hover, and modal dialogs that trap keyboard focus. <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">4.3 Focus Is Always Visible (WCAG 2.4.7, 2.4.11)</h3> The keyboard focus indicator must be visible at all times. WCAG 2.2 added criterion 2.4.11 (Focus Not Obscured), requiring that focused elements are not entirely hidden by sticky headers or other overlapping content. <strong class="text-slate-700 font-semibold">Check:</strong> Tab through your page. Can you see which element is focused at all times? Is the focus ring visible against the background? <strong class="text-slate-700 font-semibold">What fails:</strong> CSS rules like <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">outline: none</code> or <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono">outline: 0</code> applied globally without a replacement focus style. <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Section 5: Color and Visual Presentation</h2> <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">5.1 Color Contrast for Text (WCAG 1.4.3)</h3> Normal text (under 18pt regular or 14pt bold) must have a contrast ratio of at least <strong class="text-slate-700 font-semibold">4.5:1</strong> against its background. Large text requires at least <strong class="text-slate-700 font-semibold">3:1</strong>. <strong class="text-slate-700 font-semibold">Check:</strong> Use a browser extension like Colour Contrast Analyser or check in Chrome DevTools Accessibility panel. <strong class="text-slate-700 font-semibold">Common failures:</strong> Light gray text on white backgrounds, white text on light-colored buttons, placeholder text in form fields. <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">5.2 Information Not Conveyed by Color Alone (WCAG 1.4.1)</h3> If your UI uses color to communicate meaning (red = error, green = success), that meaning must also be conveyed through text, icons, or patterns. <strong class="text-slate-700 font-semibold">Check:</strong> View your page in grayscale. Is all the information still understandable? <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Section 6: Content Structure</h2> <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">6.1 Heading Hierarchy Is Logical (WCAG 1.3.1)</h3> Pages should have one <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h1></code> that describes the page topic. Subheadings use <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h2></code>, sub-subheadings use <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h3></code>, and so on. Headings must not skip levels (e.g., <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h1></code> to <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h3></code>). <strong class="text-slate-700 font-semibold">Check:</strong> Use a browser extension or the <a href="/" class="text-amber-700 hover:text-amber-600 underline underline-offset-2">OnePageAudit</a> scanner to view your heading structure. Is there exactly one <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><h1></code>? Do heading levels flow in order without skipping? <h3 class="text-lg font-bold text-slate-900 mt-8 mb-3">6.2 Links Are Descriptive (WCAG 2.4.4)</h3> Link text must describe the link destination when read in isolation. Screen reader users frequently navigate by jumping between links. "Click here" and "read more" provide no context. <strong class="text-slate-700 font-semibold">Check:</strong> Read your link text out of context. Does it tell you where the link goes? <strong class="text-slate-700 font-semibold">What fails:</strong> "Click here," "learn more," empty anchor tags <code class="bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono"><a href="#"></code>, and image links with no alt text. <h2 class="text-2xl font-bold text-slate-900 mt-10 mb-4">Running This Checklist</h2> <p class="text-slate-500 leading-relaxed my-4">Manual checking takes time. An automated scanner catches the items with clear pass/fail rules: missing alt text, missing labels, missing page language, empty links, missing skip navigation, missing page title, and heading structure.</p> <a href="/" class="text-amber-700 hover:text-amber-600 underline underline-offset-2">Run a free automated scan on OnePageAudit</a> to identify your site's current violations in under 60 seconds. The scan maps each issue to the specific WCAG criterion and tells you how to fix it. <p class="text-slate-500 leading-relaxed my-4">After fixing automated findings, complete the manual steps above, particularly keyboard navigation and screen reader testing.</p> <strong class="text-slate-700 font-semibold">Related reading:</strong> <ul class="list-disc list-inside space-y-1 my-4 ml-2"><li class="text-slate-500 leading-relaxed"><a href="/blog/wcag-2-2-requirements" class="text-amber-700 hover:text-amber-600 underline underline-offset-2">WCAG 2.2 Requirements: What Your Website Needs</a></li><li class="text-slate-500 leading-relaxed"><a href="/blog/how-to-make-website-ada-compliant" class="text-amber-700 hover:text-amber-600 underline underline-offset-2">How to Make Your Website ADA Compliant</a></li><li class="text-slate-500 leading-relaxed"><a href="/blog/ada-website-lawsuits" class="text-amber-700 hover:text-amber-600 underline underline-offset-2">ADA Website Lawsuits: Statistics and Trends</a></li></ul></div><div class="mt-12 border-t border-slate-200 pt-10"><h2 class="text-2xl font-bold text-slate-900 mb-6">Frequently Asked Questions</h2><div class="space-y-4"><details class="group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm"><summary class="flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm">Is there a government-published ADA website compliance checklist?<span class="ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform">⌄</span></summary><div class="px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4">The DOJ does not publish a step-by-step website checklist, but its April 2024 final rule references WCAG 2.1 AA as the technical standard for government websites under Title II. The W3C's own WCAG Quick Reference (wcag.com/quick-reference) provides an authoritative breakdown of all criteria. For most businesses, the practical checklist is: fix missing alt text, add form labels, ensure keyboard navigation works, verify color contrast, and declare page language.</div></details><details class="group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm"><summary class="flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm">Does this checklist apply to private businesses or only government websites?<span class="ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform">⌄</span></summary><div class="px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4">The April 2026 deadline specifically targets state and local government websites under ADA Title II. Private businesses fall under Title III, which has no single compliance deadline but is actively enforced through lawsuits. Courts use WCAG 2.1 or 2.2 AA as the practical standard for Title III cases, so this checklist applies to both sectors.</div></details><details class="group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm"><summary class="flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm">How long does it take to fix ADA compliance issues?<span class="ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform">⌄</span></summary><div class="px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4">Simple fixes like adding alt text and declaring page language can be done in hours. Structural issues like keyboard navigation failures or missing heading hierarchy may take days or weeks depending on your CMS or framework. The best approach is to scan first, categorize by severity, and fix critical violations first since those are most likely to appear in demand letters.</div></details><details class="group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm"><summary class="flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm">What happens if my website fails an ADA audit?<span class="ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform">⌄</span></summary><div class="px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4">For government entities, failure after the April 2026 deadline can result in DOJ enforcement, civil penalties up to $75,000 for a first violation, and injunctive relief. For private businesses, the most common consequence is a demand letter followed by a lawsuit seeking injunctive relief, attorney fees, and settlement payments. Most private-sector ADA website cases settle in the $5,000 to $75,000 range according to data from Accessible.org.</div></details></div></div><div class="mt-12 border-t border-slate-200 pt-10"><h2 class="text-2xl font-bold text-slate-900 mb-6">Related Resources</h2><div class="grid grid-cols-1 md:grid-cols-3 gap-4"><a class="p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors" href="/industries"><h3 class="font-semibold text-slate-900 mb-1">Industry Guides</h3><p class="text-sm text-slate-500">ADA compliance for ecommerce, healthcare, restaurants, and more.</p></a><a class="p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors" href="/ada-compliance"><h3 class="font-semibold text-slate-900 mb-1">ADA Compliance Guide</h3><p class="text-sm text-slate-500">Complete guide to WCAG 2.2 requirements and remediation.</p></a><a class="p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors" href="/checklist"><h3 class="font-semibold text-slate-900 mb-1">Compliance Checklist</h3><p class="text-sm text-slate-500">Step-by-step checklist to audit your website yourself.</p></a></div></div><div class="mt-12 text-center bg-white border border-slate-200 rounded-xl p-8 shadow-sm"><h2 class="text-2xl font-black text-slate-900 mb-3">Scan your website free</h2><p class="text-slate-500 mb-6">Find ADA compliance issues in under 60 seconds. No account required.</p><a class="inline-block px-8 py-3 bg-slate-900 hover:bg-amber-600 text-white font-bold rounded-xl transition-colors" href="/">Run Free Scan</a></div></article><!--$--><!--/$--></main><footer class="border-t border-slate-200 py-8"><div class="max-w-3xl mx-auto px-6 flex flex-col sm:flex-row items-center justify-between gap-4 text-sm text-slate-400"><div class="flex items-center gap-2"><span class="w-5 h-5 bg-slate-900 rounded flex items-center justify-center text-white font-black text-xs">A</span><span>OnePageAudit by Palavir LLC</span></div><div class="flex gap-6"><a class="hover:text-slate-600 transition-colors" href="/privacy">Privacy</a><a class="hover:text-slate-600 transition-colors" href="/terms">Terms</a><a href="https://palavir.co" class="hover:text-slate-600 transition-colors">palavir.co</a></div></div></footer></div><script src="/_next/static/chunks/11qgmgq4.2yf_.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[30958,[\"/_next/static/chunks/095q9zcejk8a..js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"\"]\n3:I[44888,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"default\"]\n4:I[58298,[\"/_next/static/chunks/095q9zcejk8a..js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/0pf.~cq8fbcak.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"default\"]\n5:I[35968,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"default\"]\n6:I[82866,[\"/_next/static/chunks/095q9zcejk8a..js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/0god9povilyyf.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"\"]\ne:I[30236,[\"/_next/static/chunks/095q9zcejk8a..js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"default\",1]\n:HL[\"/_next/static/chunks/059.-4kw6zcx~.css?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"blog\",\"ada-website-compliance-checklist-2026\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"slug\",\"ada-website-compliance-checklist-2026\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/059.-4kw6zcx~.css?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/095q9zcejk8a..js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"OnePageAudit\\\",\\\"url\\\":\\\"https://onepageaudit.com\\\",\\\"logo\\\":\\\"https://onepageaudit.com/favicon.ico\\\",\\\"description\\\":\\\"Free ADA compliance and WCAG accessibility scanner for websites.\\\",\\\"sameAs\\\":[\\\"https://palavir.co\\\"],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"contactType\\\":\\\"Customer Support\\\",\\\"url\\\":\\\"https://onepageaudit.com\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebApplication\\\",\\\"name\\\":\\\"OnePageAudit\\\",\\\"url\\\":\\\"https://onepageaudit.com\\\",\\\"description\\\":\\\"Free ADA compliance and WCAG accessibility scanner. Scan any website for accessibility issues and get fix instructions.\\\",\\\"applicationCategory\\\":\\\"WebApplication\\\",\\\"operatingSystem\\\":\\\"Any\\\",\\\"offers\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"description\\\":\\\"Free scan\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"19\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"description\\\":\\\"Full report\\\"}]}\"}}],[[\"$\",\"$L2\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-KRL80F4PCQ\\n\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$L2\",null,{\"id\":\"gtag-init\",\"strategy\":\"afterInteractive\",\"children\":\"window.dataLayer = window.dataLayer || [];\\nfunction gtag(){dataLayer.push(arguments);}\\ngtag('js', new Date());\\ngtag('config', 'G-KRL80F4PCQ\\n');\"}]]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-white text-zinc-900\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:bg-red-600 focus:text-white focus:px-4 focus:py-2 focus:rounded-lg focus:text-sm focus:font-semibold\",\"children\":\"Skip to main content\"}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0pf.~cq8fbcak.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center min-h-screen bg-stone-50\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center max-w-sm px-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-16 h-16 bg-amber-50 border border-amber-200 rounded-2xl flex items-center justify-center mx-auto mb-5\",\"children\":[\"$\",\"span\",null,{\"className\":\"text-amber-700 text-3xl font-black\",\"children\":\"404\"}]}],[\"$\",\"h1\",null,{\"className\":\"text-2xl font-black text-slate-900 mb-2\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"text-slate-500 mb-6 text-sm\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"inline-block px-6 py-3 bg-slate-900 hover:bg-amber-600 text-white font-bold rounded-xl transition-colors text-sm\",\"children\":\"Back to Home\"}]]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0god9povilyyf.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-stone-50 text-slate-900\",\"children\":[\"$L7\",\"$L8\",\"$L9\"]}]]}],{\"children\":[\"$La\",{\"children\":[\"$Lb\",{},null,false,null]},null,false,\"$@c\"]},null,false,null]},null,false,null],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[\"$Lf\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:I[59136,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"OutletBoundary\"]\n12:\"$Sreact.suspense\"\n15:I[59136,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"ViewportBoundary\"]\n17:I[59136,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"MetadataBoundary\"]\n7:[\"$\",\"nav\",null,{\"className\":\"border-b border-slate-200/60 bg-white/80 backdrop-blur sticky top-0 z-50\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-4 flex items-center justify-between\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"flex items-center gap-2 hover:opacity-80 transition-opacity\",\"children\":[[\"$\",\"span\",null,{\"className\":\"w-7 h-7 bg-slate-900 rounded flex items-center justify-center text-white font-black text-sm\",\"children\":\"A\"}],[\"$\",\"span\",null,{\"className\":\"text-lg font-bold tracking-tight text-slate-900\",\"children\":\"OnePageAudit\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 text-sm\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/blog\",\"className\":\"text-slate-500 hover:text-slate-900 transition-colors\",\"children\":\"Blog\"}],[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"text-slate-500 hover:text-slate-900 transition-colors\",\"children\":\"Free Scan\"}]]}]]}]}]\n8:[\"$\",\"main\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-12\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n9:[\"$\",\"footer\",null,{\"className\":\"border-t border-slate-200 py-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 flex flex-col sm:flex-row items-center justify-between gap-4 text-sm text-slate-400\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"w-5 h-5 bg-slate-900 rounded flex items-center justify-center text-white font-black text-xs\",\"children\":\"A\"}],[\"$\",\"span\",null,{\"children\":\"OnePageAudit by Palavir LLC\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex gap-6\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/privacy\",\"className\":\"hover:text-slate-600 transition-colors\",\"children\":\"Privacy\"}],[\"$\",\"$L6\",null,{\"href\":\"/terms\",\"className\":\"hover:text-slate-600 transition-colors\",\"children\":\"Terms\"}],[\"$\",\"a\",null,{\"href\":\"https://palavir.co\",\"className\":\"hover:text-slate-600 transition-colors\",\"children\":\"palavir.co\"}]]}]]}]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[\"$L10\",null,[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@13\"}]}]]}]\n14:[]\nc:\"$W14\"\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L15\",null,{\"children\":\"$L16\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L18\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\nf:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/059.-4kw6zcx~.css?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"19:T8be,"])</script><script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is there a government-published ADA website compliance checklist?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The DOJ does not publish a step-by-step website checklist, but its April 2024 final rule references WCAG 2.1 AA as the technical standard for government websites under Title II. The W3C's own WCAG Quick Reference (wcag.com/quick-reference) provides an authoritative breakdown of all criteria. For most businesses, the practical checklist is: fix missing alt text, add form labels, ensure keyboard navigation works, verify color contrast, and declare page language.\"}},{\"@type\":\"Question\",\"name\":\"Does this checklist apply to private businesses or only government websites?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The April 2026 deadline specifically targets state and local government websites under ADA Title II. Private businesses fall under Title III, which has no single compliance deadline but is actively enforced through lawsuits. Courts use WCAG 2.1 or 2.2 AA as the practical standard for Title III cases, so this checklist applies to both sectors.\"}},{\"@type\":\"Question\",\"name\":\"How long does it take to fix ADA compliance issues?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Simple fixes like adding alt text and declaring page language can be done in hours. Structural issues like keyboard navigation failures or missing heading hierarchy may take days or weeks depending on your CMS or framework. The best approach is to scan first, categorize by severity, and fix critical violations first since those are most likely to appear in demand letters.\"}},{\"@type\":\"Question\",\"name\":\"What happens if my website fails an ADA audit?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For government entities, failure after the April 2026 deadline can result in DOJ enforcement, civil penalties up to $75,000 for a first violation, and injunctive relief. For private businesses, the most common consequence is a demand letter followed by a lawsuit seeking injunctive relief, attorney fees, and settlement payments. Most private-sector ADA website cases settle in the $5,000 to $75,000 range according to data from Accessible.org.\"}}]}"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$19\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"ADA Website Compliance Checklist 2026\\\",\\\"description\\\":\\\"A practical ADA website compliance checklist for 2026. Covers the 9 most common violations, WCAG 2.2 AA requirements, the April 2026 federal deadline, and how to verify your site is compliant.\\\",\\\"datePublished\\\":\\\"2026-03-22\\\",\\\"dateModified\\\":\\\"2026-03-22\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"OnePageAudit\\\",\\\"url\\\":\\\"https://onepageaudit.com\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"OnePageAudit\\\",\\\"url\\\":\\\"https://onepageaudit.com\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://onepageaudit.com/blog/ada-website-compliance-checklist-2026\\\"}}\"}}],[\"$\",\"article\",null,{\"children\":[[\"$\",\"header\",null,{\"className\":\"mb-10\",\"children\":[[\"$\",\"time\",null,{\"className\":\"text-xs text-slate-400 font-mono\",\"children\":\"March 22, 2026\"}],[\"$\",\"h1\",null,{\"className\":\"text-3xl md:text-4xl font-black tracking-tight mt-2 mb-4 text-slate-900\",\"children\":\"ADA Website Compliance Checklist 2026\"}],\"$L1a\"]}],\"$L1b\",\"$L1c\",\"$L1d\",\"$L1e\"]}]]\n"])</script><script>self.__next_f.push([1,"1a:[\"$\",\"p\",null,{\"className\":\"text-lg text-slate-500 leading-relaxed\",\"children\":\"The April 2026 federal ADA deadline applies to state and local government sites, but private business enforcement is accelerating too. Use this checklist to identify and fix the violations most likely to appear in a lawsuit.\"}]\n1f:T39f4,"])</script><script>self.__next_f.push([1,"\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003eThe ADA does not include a government-issued website compliance checklist. What it includes is a legal obligation not to discriminate against people with disabilities, and courts have consistently applied that obligation to websites. WCAG 2.2 Level AA is the de facto technical standard used by courts and regulators to evaluate compliance.\u003c/p\u003e\n\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003eThis checklist covers the violations that appear most often in audits, demand letters, and litigation.\u003c/p\u003e\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eWhy 2026 Matters\u003c/h2\u003e\n\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003eOn April 24, 2024, the DOJ published a final rule under ADA Title II requiring state and local government websites to conform to \u003cstrong class=\"text-slate-700 font-semibold\"\u003eWCAG 2.1 Level AA\u003c/strong\u003e. The compliance deadline for most government entities is \u003cstrong class=\"text-slate-700 font-semibold\"\u003eApril 24, 2026\u003c/strong\u003e.\u003c/p\u003e\n\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003ePrivate businesses are not covered by this specific rule, but the DOJ's move signals broader regulatory intent. Plaintiffs' attorneys have already begun using the new rule as a reference point in Title III cases. For any website owner, now is the right time to run this checklist.\u003c/p\u003e\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 1: Page Fundamentals\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e1.1 Page Language Declared\u003c/h3\u003e\nEvery HTML page must have a \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003elang\u003c/code\u003e attribute on the \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chtml\u003e\u003c/code\u003e element. Screen readers use this to select the correct pronunciation engine.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e View source on your homepage. Does \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chtml lang=\"en\"\u003e\u003c/code\u003e (or the appropriate language code) appear?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eFix:\u003c/strong\u003e Add \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003elang=\"en\"\u003c/code\u003e to your \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chtml\u003e\u003c/code\u003e tag in your template or layout file.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e1.2 Page Title Present\u003c/h3\u003e\nEvery page must have a descriptive \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ctitle\u003e\u003c/code\u003e in the \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chead\u003e\u003c/code\u003e. The title is the first thing screen readers announce when a user lands on a page.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Does each page have a unique, descriptive title that identifies the page content and site name?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eFix:\u003c/strong\u003e Update your CMS templates to include page-specific titles. Avoid generic titles like \"Home\" or \"Page 1.\"\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e1.3 Viewport Meta Tag\u003c/h3\u003e\nThe viewport meta tag enables responsive design. Without it, mobile browsers zoom out, making content inaccessible to low-vision users who rely on mobile zoom.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Every page should include \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\u003c/code\u003e.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eFix:\u003c/strong\u003e Add to your HTML \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chead\u003e\u003c/code\u003e. Do not use \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003euser-scalable=no\u003c/code\u003e, which prevents users from zooming.\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 2: Images and Media\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e2.1 All Images Have Alt Text (WCAG 1.1.1)\u003c/h3\u003e\nEvery \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cimg\u003e\u003c/code\u003e element must have an \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt\u003c/code\u003e attribute. Decorative images get \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt=\"\"\u003c/code\u003e. Informative images get descriptive alt text. Images that are links must describe the link destination.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Use your browser's developer tools to inspect every image. Look for \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt=\"\"\u003c/code\u003e on decorative images and meaningful descriptions on informative ones.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e Images with no \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt\u003c/code\u003e attribute at all, or \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt=\"image\"\u003c/code\u003e or \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ealt=\"photo123.jpg\"\u003c/code\u003e.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e2.2 Video Captions (WCAG 1.2.2)\u003c/h3\u003e\nPre-recorded video with audio must have synchronized captions. Live video must have real-time captions.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Play any embedded videos. Are captions available and accurate?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e Auto-generated captions that have not been reviewed, or video embedded from YouTube with captions disabled.\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 3: Forms\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e3.1 All Form Inputs Are Labeled (WCAG 1.3.1, 4.1.2)\u003c/h3\u003e\nEvery \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cinput\u003e\u003c/code\u003e, \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cselect\u003e\u003c/code\u003e, and \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ctextarea\u003e\u003c/code\u003e must be associated with a visible \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003clabel\u003e\u003c/code\u003e element using the \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003efor\u003c/code\u003e/\u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eid\u003c/code\u003e pairing, or use \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003earia-label\u003c/code\u003e / \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003earia-labelledby\u003c/code\u003e.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Click on each form label. Does the cursor jump to the corresponding field? Tab through the form with a keyboard. Does your screen reader announce the field name?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e Placeholder text used instead of a label (placeholders disappear when typing), or icon-only inputs with no accessible name.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e3.2 Error Messages Are Descriptive (WCAG 3.3.1, 3.3.3)\u003c/h3\u003e\nWhen a form submission fails, the error must be identified in text and explained. Generic messages like \"Invalid input\" do not pass.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Submit your forms with intentional errors. Does the page clearly identify which field failed and why? Is the error programmatically associated with the field?\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 4: Navigation and Keyboard Access\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e4.1 Skip Navigation Link (WCAG 2.4.1)\u003c/h3\u003e\nA \"Skip to main content\" link must appear at the top of the page so keyboard users can bypass the navigation menu on every page load.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Press Tab on any page. Is the first focusable element a \"Skip to main content\" link?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eFix:\u003c/strong\u003e Add \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ca href=\"#main-content\" class=\"sr-only focus:not-sr-only\"\u003eSkip to main content\u003c/a\u003e\u003c/code\u003e before your navigation, and add \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eid=\"main-content\"\u003c/code\u003e to your main content wrapper.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e4.2 Full Keyboard Accessibility (WCAG 2.1.1)\u003c/h3\u003e\nEvery interactive element must be operable by keyboard alone: links, buttons, dropdowns, modals, tabs, carousels, and custom widgets.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Tab through your entire site without using a mouse. Can you reach and activate every interactive element? Can you close modals and escape dropdowns with the Escape key?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e Click-only event handlers on \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cdiv\u003e\u003c/code\u003e elements, dropdown menus that only open on hover, and modal dialogs that trap keyboard focus.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e4.3 Focus Is Always Visible (WCAG 2.4.7, 2.4.11)\u003c/h3\u003e\nThe keyboard focus indicator must be visible at all times. WCAG 2.2 added criterion 2.4.11 (Focus Not Obscured), requiring that focused elements are not entirely hidden by sticky headers or other overlapping content.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Tab through your page. Can you see which element is focused at all times? Is the focus ring visible against the background?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e CSS rules like \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eoutline: none\u003c/code\u003e or \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eoutline: 0\u003c/code\u003e applied globally without a replacement focus style.\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 5: Color and Visual Presentation\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e5.1 Color Contrast for Text (WCAG 1.4.3)\u003c/h3\u003e\nNormal text (under 18pt regular or 14pt bold) must have a contrast ratio of at least \u003cstrong class=\"text-slate-700 font-semibold\"\u003e4.5:1\u003c/strong\u003e against its background. Large text requires at least \u003cstrong class=\"text-slate-700 font-semibold\"\u003e3:1\u003c/strong\u003e.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Use a browser extension like Colour Contrast Analyser or check in Chrome DevTools Accessibility panel.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCommon failures:\u003c/strong\u003e Light gray text on white backgrounds, white text on light-colored buttons, placeholder text in form fields.\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e5.2 Information Not Conveyed by Color Alone (WCAG 1.4.1)\u003c/h3\u003e\nIf your UI uses color to communicate meaning (red = error, green = success), that meaning must also be conveyed through text, icons, or patterns.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e View your page in grayscale. Is all the information still understandable?\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eSection 6: Content Structure\u003c/h2\u003e\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e6.1 Heading Hierarchy Is Logical (WCAG 1.3.1)\u003c/h3\u003e\nPages should have one \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch1\u003e\u003c/code\u003e that describes the page topic. Subheadings use \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch2\u003e\u003c/code\u003e, sub-subheadings use \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch3\u003e\u003c/code\u003e, and so on. Headings must not skip levels (e.g., \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch1\u003e\u003c/code\u003e to \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch3\u003e\u003c/code\u003e).\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Use a browser extension or the \u003ca href=\"/\" class=\"text-amber-700 hover:text-amber-600 underline underline-offset-2\"\u003eOnePageAudit\u003c/a\u003e scanner to view your heading structure. Is there exactly one \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ch1\u003e\u003c/code\u003e? Do heading levels flow in order without skipping?\n\u003ch3 class=\"text-lg font-bold text-slate-900 mt-8 mb-3\"\u003e6.2 Links Are Descriptive (WCAG 2.4.4)\u003c/h3\u003e\nLink text must describe the link destination when read in isolation. Screen reader users frequently navigate by jumping between links. \"Click here\" and \"read more\" provide no context.\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eCheck:\u003c/strong\u003e Read your link text out of context. Does it tell you where the link goes?\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eWhat fails:\u003c/strong\u003e \"Click here,\" \"learn more,\" empty anchor tags \u003ccode class=\"bg-slate-100 text-slate-600 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ca href=\"#\"\u003e\u003c/code\u003e, and image links with no alt text.\n\u003ch2 class=\"text-2xl font-bold text-slate-900 mt-10 mb-4\"\u003eRunning This Checklist\u003c/h2\u003e\n\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003eManual checking takes time. An automated scanner catches the items with clear pass/fail rules: missing alt text, missing labels, missing page language, empty links, missing skip navigation, missing page title, and heading structure.\u003c/p\u003e\n\u003ca href=\"/\" class=\"text-amber-700 hover:text-amber-600 underline underline-offset-2\"\u003eRun a free automated scan on OnePageAudit\u003c/a\u003e to identify your site's current violations in under 60 seconds. The scan maps each issue to the specific WCAG criterion and tells you how to fix it.\n\u003cp class=\"text-slate-500 leading-relaxed my-4\"\u003eAfter fixing automated findings, complete the manual steps above, particularly keyboard navigation and screen reader testing.\u003c/p\u003e\n\u003cstrong class=\"text-slate-700 font-semibold\"\u003eRelated reading:\u003c/strong\u003e\n\u003cul class=\"list-disc list-inside space-y-1 my-4 ml-2\"\u003e\u003cli class=\"text-slate-500 leading-relaxed\"\u003e\u003ca href=\"/blog/wcag-2-2-requirements\" class=\"text-amber-700 hover:text-amber-600 underline underline-offset-2\"\u003eWCAG 2.2 Requirements: What Your Website Needs\u003c/a\u003e\u003c/li\u003e\u003cli class=\"text-slate-500 leading-relaxed\"\u003e\u003ca href=\"/blog/how-to-make-website-ada-compliant\" class=\"text-amber-700 hover:text-amber-600 underline underline-offset-2\"\u003eHow to Make Your Website ADA Compliant\u003c/a\u003e\u003c/li\u003e\u003cli class=\"text-slate-500 leading-relaxed\"\u003e\u003ca href=\"/blog/ada-website-lawsuits\" class=\"text-amber-700 hover:text-amber-600 underline underline-offset-2\"\u003eADA Website Lawsuits: Statistics and Trends\u003c/a\u003e\u003c/li\u003e\u003c/ul\u003e"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"div\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$1f\"}}]\n"])</script><script>self.__next_f.push([1,"1c:[\"$\",\"div\",null,{\"className\":\"mt-12 border-t border-slate-200 pt-10\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900 mb-6\",\"children\":\"Frequently Asked Questions\"}],[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"details\",\"Is there a government-published ADA website compliance checklist?\",{\"className\":\"group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm\",\"children\":[\"Is there a government-published ADA website compliance checklist?\",[\"$\",\"span\",null,{\"className\":\"ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform\",\"children\":\"⌄\"}]]}],[\"$\",\"div\",null,{\"className\":\"px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4\",\"children\":\"The DOJ does not publish a step-by-step website checklist, but its April 2024 final rule references WCAG 2.1 AA as the technical standard for government websites under Title II. The W3C's own WCAG Quick Reference (wcag.com/quick-reference) provides an authoritative breakdown of all criteria. For most businesses, the practical checklist is: fix missing alt text, add form labels, ensure keyboard navigation works, verify color contrast, and declare page language.\"}]]}],[\"$\",\"details\",\"Does this checklist apply to private businesses or only government websites?\",{\"className\":\"group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm\",\"children\":[\"Does this checklist apply to private businesses or only government websites?\",[\"$\",\"span\",null,{\"className\":\"ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform\",\"children\":\"⌄\"}]]}],[\"$\",\"div\",null,{\"className\":\"px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4\",\"children\":\"The April 2026 deadline specifically targets state and local government websites under ADA Title II. Private businesses fall under Title III, which has no single compliance deadline but is actively enforced through lawsuits. Courts use WCAG 2.1 or 2.2 AA as the practical standard for Title III cases, so this checklist applies to both sectors.\"}]]}],[\"$\",\"details\",\"How long does it take to fix ADA compliance issues?\",{\"className\":\"group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm\",\"children\":[\"How long does it take to fix ADA compliance issues?\",[\"$\",\"span\",null,{\"className\":\"ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform\",\"children\":\"⌄\"}]]}],[\"$\",\"div\",null,{\"className\":\"px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4\",\"children\":\"Simple fixes like adding alt text and declaring page language can be done in hours. Structural issues like keyboard navigation failures or missing heading hierarchy may take days or weeks depending on your CMS or framework. The best approach is to scan first, categorize by severity, and fix critical violations first since those are most likely to appear in demand letters.\"}]]}],\"$L20\"]}]]}]\n"])</script><script>self.__next_f.push([1,"1d:[\"$\",\"div\",null,{\"className\":\"mt-12 border-t border-slate-200 pt-10\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-900 mb-6\",\"children\":\"Related Resources\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-3 gap-4\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/industries\",\"className\":\"p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-slate-900 mb-1\",\"children\":\"Industry Guides\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-slate-500\",\"children\":\"ADA compliance for ecommerce, healthcare, restaurants, and more.\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"/ada-compliance\",\"className\":\"p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-slate-900 mb-1\",\"children\":\"ADA Compliance Guide\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-slate-500\",\"children\":\"Complete guide to WCAG 2.2 requirements and remediation.\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"/checklist\",\"className\":\"p-4 border border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-50 transition-colors\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-slate-900 mb-1\",\"children\":\"Compliance Checklist\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-slate-500\",\"children\":\"Step-by-step checklist to audit your website yourself.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1e:[\"$\",\"div\",null,{\"className\":\"mt-12 text-center bg-white border border-slate-200 rounded-xl p-8 shadow-sm\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-black text-slate-900 mb-3\",\"children\":\"Scan your website free\"}],[\"$\",\"p\",null,{\"className\":\"text-slate-500 mb-6\",\"children\":\"Find ADA compliance issues in under 60 seconds. No account required.\"}],[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"inline-block px-8 py-3 bg-slate-900 hover:bg-amber-600 text-white font-bold rounded-xl transition-colors\",\"children\":\"Run Free Scan\"}]]}]\n"])</script><script>self.__next_f.push([1,"20:[\"$\",\"details\",\"What happens if my website fails an ADA audit?\",{\"className\":\"group bg-white border border-slate-200 rounded-xl overflow-hidden shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex items-center justify-between px-6 py-4 cursor-pointer list-none font-semibold text-slate-900 hover:text-amber-700 transition-colors text-sm\",\"children\":[\"What happens if my website fails an ADA audit?\",[\"$\",\"span\",null,{\"className\":\"ml-4 text-slate-400 shrink-0 text-lg leading-none group-open:rotate-180 transition-transform\",\"children\":\"⌄\"}]]}],[\"$\",\"div\",null,{\"className\":\"px-6 pb-4 text-sm text-slate-500 leading-relaxed border-t border-slate-200 pt-4\",\"children\":\"For government entities, failure after the April 2026 deadline can result in DOJ enforcement, civil penalties up to $75,000 for a first violation, and injunctive relief. For private businesses, the most common consequence is a demand letter followed by a lawsuit seeking injunctive relief, attorney fees, and settlement payments. Most private-sector ADA website cases settle in the $5,000 to $75,000 range according to data from Accessible.org.\"}]]}]\n"])</script><script>self.__next_f.push([1,"16:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"21:I[22535,[\"/_next/static/chunks/0qzfdvdk371rp.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"/_next/static/chunks/02bf9o60-dgl9.js?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\"],\"IconMark\"]\n13:null\n"])</script><script>self.__next_f.push([1,"18:[[\"$\",\"title\",\"0\",{\"children\":\"ADA Website Compliance Checklist 2026 | OnePageAudit Blog\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A practical ADA website compliance checklist for 2026. Covers the 9 most common violations, WCAG 2.2 AA requirements, the April 2026 federal deadline, and how to verify your site is compliant.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"ada compliance checker,wcag checker,website accessibility checker,accessibility audit,ada compliance,wcag audit\"}],[\"$\",\"meta\",\"3\",{\"name\":\"saashub-verification\",\"content\":\"qqjj1wzkvk91\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://onepageaudit.com/blog/ada-website-compliance-checklist-2026\"}],[\"$\",\"meta\",\"5\",{\"name\":\"google-site-verification\",\"content\":\"RNmCn43fpIXTRKRhk0ZMcCQ6KtmeeJhF9YrA27kC7zg\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"ADA Website Compliance Checklist 2026\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"A practical ADA website compliance checklist for 2026. Covers the 9 most common violations, WCAG 2.2 AA requirements, the April 2026 federal deadline, and how to verify your site is compliant.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://onepageaudit.com/blog/ada-website-compliance-checklist-2026\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"10\",{\"property\":\"article:published_time\",\"content\":\"2026-03-22\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"ADA Website Compliance Checklist 2026\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"A practical ADA website compliance checklist for 2026. Covers the 9 most common violations, WCAG 2.2 AA requirements, the April 2026 federal deadline, and how to verify your site is compliant.\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico?dpl=dpl_Gtccu2cG6t4MZXtoDvUYgJSWb9Wc\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L21\",\"15\",{}]]\n"])</script></body></html>