Accessibility Checking

Accessibility Blog

Website Accessibility Checklist for Developers (2026)

Website Accessibility Checklist for Developers (2026)

You’ve read the WCAG specification. You know accessibility matters. But when you sit down to actually audit a page, the 86 success criteria across three conformance levels blur together, and you’re not sure where to start or when you’re done.

This is the website accessibility checklist you work through before every launch, redesign, or quarterly review. It’s organized by what you’re actually checking, not by WCAG numbering, with the specific tests, the pass/fail criteria, the tools that automate each check, and links to the deep-dive guides where you need more context. Bookmark this page and use it as your working reference.

Run a full automated scan first to surface the machine-detectable issues, then work through the manual checks below. Automated tools catch roughly 30–40% of WCAG issues; this checklist covers the rest.


Images and Non-Text Content

What you’re checking: Every image, icon, chart, and graphic communicates its purpose to assistive technology or is correctly hidden when decorative.

CheckPass criteriaWCAGHow to test
Every <img> has an alt attributeNo missing alt attributes (empty alt="" is fine for decorative)1.1.1 (A)Alt Text Reviewer flags missing and junk alt
Informative images have descriptive alt textAlt describes the image’s purpose in context, not just appearance1.1.1 (A)Manual review — automated tools detect missing alt, not bad alt
Decorative images use alt=""Screen readers skip decorative images entirely1.1.1 (A)Manual review
Functional images describe the actionIcon-button alt says “Search” not “magnifying glass”1.1.1 (A)Manual review
Complex images have a long descriptionCharts, infographics, and data graphics have full detail in adjacent text or a data table1.1.1 (A)Manual review
Inline SVGs have accessible namesrole="img" + aria-label or <title> on informative SVGs; aria-hidden="true" on decorative1.1.1 (A)Manual review
CSS background images don’t carry informationIf they do, expose with role="img" + aria-label1.1.1 (A)Manual review

Deep dive: How to Write Alt Text for Images


Color and Contrast

What you’re checking: Text and UI elements are readable regardless of color vision, and color is never the sole carrier of meaning.

CheckPass criteriaWCAGHow to test
Normal text contrast ≥ 4.5:1Foreground/background ratio of 4.5:1 or higher1.4.3 (AA)Contrast Checker
Large text contrast ≥ 3:1Text ≥24px (or ≥18.66px bold) at 3:1 or higher1.4.3 (AA)Contrast Checker
UI component contrast ≥ 3:1Borders, focus rings, icons, chart elements at 3:1 against adjacent colors1.4.11 (AA)Contrast Checker
Color is not the only visual cueStatus indicators, errors, links, charts use icon/text/pattern alongside color1.4.1 (A)Colour Blindness Simulator
Focus indicators are visibleFocus ring has 3:1 contrast against adjacent colors2.4.7 (AA)Manual keyboard test + contrast check

Deep dives: WCAG Color Contrast Requirements · Designing for Color Blindness


Typography and Readability

What you’re checking: Text is readable, scalable, and survives user overrides.

CheckPass criteriaWCAGHow to test
Body text ≥ 16px (1rem)No body text below the practical readability floorBest practiceTypography Accessibility Checker
Font sizes use relative unitsrem, em, % not fixed px1.4.4 (AA)Code review
Page usable at 200% zoomNo clipped text, no horizontal scroll on single-column layouts1.4.4 (AA)Browser zoom test
Page survives text spacing overrideLine height 1.5×, letter spacing 0.12em, word spacing 0.16em, paragraph spacing 2em no content lost1.4.12 (AA)Apply override bookmarklet, walk all pages
Line height ≥ 1.5 (unitless)Body text line-height uses unitless number ≥ 1.51.4.12 (AA)Typography Accessibility Checker
No fixed-height text containersContainers use min-height, not height + overflow: hidden1.4.12 (AA)Text spacing override test
Characters are distinguishableIl1 and O0 test passes on body fontBest practiceVisual inspection

Deep dive: Accessible Typography Guide


Heading Structure

What you’re checking: Headings create a logical document outline that screen readers can navigate.

CheckPass criteriaWCAGHow to test
Exactly one <h1> per pageThe page has a single H1 describing its topic1.3.1 (A)Heading Structure Map
Heading hierarchy is sequentialNo skipped levels (H2 → H4 without H3)1.3.1 (A)Heading Structure Map
Headings are real heading elements<h2>, not styled <div class="heading">1.3.1 (A)Code review or automated scan
Heading text is descriptiveEach heading describes its section’s content2.4.6 (AA)Manual review

Deep dive: Heading Structure for Accessibility


Keyboard Accessibility

What you’re checking: Every interactive element is reachable and operable without a mouse.

CheckPass criteriaWCAGHow to test
All interactive elements reachable by TabLinks, buttons, inputs, selects, custom widgets all receive keyboard focus2.1.1 (A)Tab through the page end to end
No keyboard trapsFocus can always move away from every element2.1.2 (A)Tab test: verify you can exit every modal, dropdown, and widget
Focus order matches visual orderTab sequence is logical, not jumbled2.4.3 (AA)Tab test: visual inspection of focus movement
Focus indicator is visibleEvery focused element shows a visible outline or highlight2.4.7 (AA)Tab test: watch for elements with outline: none and no replacement
Custom widgets have keyboard interactionDropdowns, tabs, accordions, date pickers work with arrow keys, Enter, Escape2.1.1 (A)Manual keyboard test per component
Skip-to-content link presentFirst Tab stop is a “Skip to main content” link2.4.1 (A)Tab once on page load; the skip link should appear
Modals trap focus correctlyTab cycles within an open modal; Escape closes it; focus returns to trigger2.1.2 (A) / 2.4.3 (AA)Open modal, Tab through, Escape

Forms and Errors

What you’re checking: Form fields have labels, errors are described, and users have enough time.

CheckPass criteriaWCAGHow to test
Every input has a visible labelAssociated via <label for=""> or aria-label / aria-labelledby1.3.1 (A) / 3.3.2 (A)Automated scan + manual review
Required fields are indicatedNot by color alone text “(required)” or aria-required="true"1.4.1 (A) / 3.3.2 (A)Manual review
Error messages name the field and describe the fix“Please enter a valid email” not “Error: invalid input”3.3.1 (A) / 3.3.3 (AA)Submit forms with bad data, check messages
Errors are linked to fieldsaria-describedby or aria-errormessage connects the error to its input4.1.2 (A)Screen reader test
aria-invalid="true" set on errored fieldsScreen readers announce the field as invalid4.1.2 (A)Code review on error state
Session timeout warns and allows extensionUsers get at least 20 seconds to extend before timeout2.2.1 (A)Trigger a timeout, check for warning

Target Size

What you’re checking: Interactive elements are large enough to tap or click reliably.

CheckPass criteriaWCAGHow to test
Targets ≥ 24×24px (AA)Including padding — content + padding + border ≥ 24×24 CSS pixels2.5.8 (AA)DevTools box model inspection
OR 24px spacing from adjacent targetsIf target is < 24×24, at least 24px clear space to the nearest target2.5.8 (AA)DevTools measurement
Aim for ≥ 44×44px (AAA)Platform guidelines (Apple 44pt, Google 48dp) align with this2.5.5 (AAA)DevTools measurement
Custom checkboxes/radios meet sizeStyled replacements must meet target size (user-agent exemption lost)2.5.8 (AA)DevTools inspection
Packed icon rows have adequate spacingSocial links, toolbars, action buttons: check hit areas and gaps2.5.8 (AA)Manual measurement

Deep dive: WCAG 2.2 Target Size Requirements


Language and Page Structure

What you’re checking: The page communicates its language and structure programmatically.

CheckPass criteriaWCAGHow to test
<html lang="en"> set correctlyLanguage matches the page’s primary content3.1.1 (A)Code review
Language changes marked inlineForeign phrases wrapped in <span lang="fr"> etc.3.1.2 (AA)Manual review
Page has a descriptive <title>Unique, describes the page’s purpose2.4.2 (A)Check browser tab
Landmark regions used<header>, <nav>, <main>, <footer> or ARIA landmarks1.3.1 (A)Screen reader landmark navigation test
Lists use <ul> / <ol> / <dl>Not divs styled to look like lists1.3.1 (A)Code review

Media

What you’re checking: Audio and video content is accessible.

CheckPass criteriaWCAGHow to test
Videos have captionsSynchronized, accurate, human-reviewed1.2.2 (A)Watch with captions on
Pre-recorded audio has a transcriptFull text alternative available1.2.1 (A)Check for transcript link
No auto-playing audioOr a mechanism to pause/stop/mute within the first 3 seconds1.4.2 (A)Load page, listen
Audio descriptions for video (if applicable)Visual-only information is described in audio1.2.5 (AA)Watch with eyes closed; does it make sense?

PDFs and Documents

What you’re checking: Downloadable documents meet the same standards as web pages.

CheckPass criteriaWCAGHow to test
PDFs are taggedTag tree present with proper heading, paragraph, list, table, and figure tags1.3.1 (A)PDF Accessibility Checker
PDF has title and language in metadataSet in Document Properties, not just the filename2.4.2 (A) / 3.1.1 (A)Check document properties
PDF images have alt textEvery <Figure> tag has alternate text1.1.1 (A)PDF Accessibility Checker
PDF tables have header cells<TH> tags with scope, not all <TD>1.3.1 (A)Screen reader test or Acrobat accessibility check
PDF reading order is logicalMulti-column layouts flow correctly1.3.2 (A)Screen reader test

Deep dive: PDF Accessibility Guide


Documentation and Compliance

What you’re checking: Your accessibility work is documented and your legal obligations are met.

CheckPass criteriaHow to do it
Accessibility statement publishedPublic page at /accessibility with commitment, known issues, and contact infoAccessibility Statement Generator
VPAT / ACR completedCriterion-by-criterion conformance report for enterprise and government buyersFree VPAT Generator
HIPAA + accessibility dual compliance (healthcare)Both data protection and access requirements verifiedHIPAA Website Risk Check
Remediation roadmap maintainedKnown issues tracked with priorities, owners, and target datesInternal documentation
Testing cadence establishedQuarterly or after every major release, not once and doneInternal process

Deep dives: How to Write an Accessibility Statement · How to Create a VPAT · Healthcare Website Accessibility


The Testing Workflow

Don’t try to check everything at once. This order gets the most coverage in the least time:

1. Automated scan (5 minutes). Run a full scan to surface contrast failures, missing alt text, heading errors, missing labels, and other machine-detectable issues. Fix these first; they’re the fastest wins.

2. Keyboard walkthrough (15 minutes per page). Tab through the entire page. Can you reach every interactive element? Can you operate every widget? Can you always move away? Is focus visible? This catches what no automated tool can.

3. Screen reader test (15 minutes per page). Turn on NVDA (Windows) or VoiceOver (macOS). Navigate by headings, landmarks, form fields, and links. Does the page make sense? Are images described? Are forms labeled? Do custom widgets announce their state?

4. Zoom and text spacing test (5 minutes). Zoom to 200% any content lost? Apply the SC 1.4.12 text spacing override any overflow or clipping?

5. Color test (5 minutes). Run through the Colour Blindness Simulator under deuteranopia. Does every piece of information survive without color?

6. Document check. If you publish PDFs, run them through the PDF Accessibility Checker.

Total for a single page: under an hour. For a site, prioritize the five highest-traffic pages and all unique templates (homepage, product page, form, blog post, checkout). Fix those, and most of the site inherits the fixes through shared components.


Website Accessibility Checklist FAQ

How many WCAG criteria do I need to pass for AA?

All applicable Level A and Level AA success criteria. For WCAG 2.2, that’s approximately 55 criteria (the exact count depends on what’s applicable to your content type).

Can I automate the whole thing?

No. Automated tools catch roughly 30–40% of issues, mostly contrast, missing alt attributes, heading sequence, and missing labels. Keyboard behavior, meaningful alt text, reading order, and screen reader experience require manual testing.

How often should I audit?

At minimum, quarterly, or after every major release, redesign, or content migration. Accessibility isn’t a one-time project; new content and features introduce new issues.

What about mobile?

WCAG applies to all platforms. Test on real devices — touch targets, zoom behavior, and screen reader interaction differ between desktop and mobile. iOS VoiceOver and Android TalkBack are your mobile testing tools.

Which pages should I test first?

The highest-traffic pages plus every unique template. Homepage, landing pages, product/service pages, contact forms, checkout/signup flows, and one blog post. Shared components (nav, footer, forms) propagate fixes across the site.


This checklist covers the WCAG 2.2 Level AA requirements most relevant to web applications and content sites. For the full specification, refer to the WCAG 2.2 standard. This is general guidance, not legal advice.

Last reviewed September 11, 2026