Skip to main content
digital accessibility compliance for state and local government
Scan a site

Government Website Accessibility Checklist 2028

44 items. Every one says how to check it and what a pass looks like.

No email address, no form, no “we will send it to you”. The file is a link.

Version 1.3 · 8 September 2026 · WCAG 2.1 AA

Two formats, one source

This page is the checklist. The PDF is a copy of it.

Download the PDF, 114 KB

This page
The canonical version. Every item, every criterion, linkable at the item — #b4 is a permanent anchor.
The PDF
Tagged, with a document outline, a real title and the language set. US Letter. Passes veraPDF against the PDF/UA-1 profile, checked on every build.
Validation
Passes veraPDF against the PDF/UA-1 profile. The validation runs in CI on every build and the build fails on any failure.
What it is not
Not a fillable form, not a spreadsheet, not a Word file. A fillable PDF form that is not accessible is worse than a page.

An accessibility vendor publishing an untagged PDF signs its own conviction.

The file on this page is validated on every build, against the same profile and the same validator this product runs against your documents.

How to use it

Work down it once for the whole site, not once per page. Most of these items are template problems: an issue in a shared navigation appears on 1,238 pages and is fixed once.

Assign a column, not a person — content editors, developers, whoever runs the agenda portal. Item ownership is the part that stalls.

Do not score it. There is no total at the bottom of this checklist and there never will be. A percentage invites a report to a council that says 82%, which means nothing.

Where an item says an automated tool can see it, use one and move on. Where it says a tool cannot, a person has to look, and that is most of them.

The boxes are for a pen or a printer. Nothing on this page stores anything about you.

A — Before you check anything

4 items

  1. A1Name the person responsible

    Why
    28 CFR 35.107 requires a public entity with 50 or more employees to designate a responsible employee and to publish grievance procedures. Most have neither, and the first letter an entity receives asks for both by name.
    How
    Ask your clerk for the adopted resolution or the personnel file that names the ADA coordinator. Then search your own website for the name and see whether a resident could have found it.
    Pass
    A named person, an email address and a published grievance procedure, all three reachable from your website without knowing who to ask.
    WCAG
    —
    Automated?
    No
  2. A2Find out which deadline applies to you

    Why
    The federal date depends on your entity type and your population, and a state rule may already apply to you today. Working to the wrong date is how a two-year programme becomes a three-month one.
    How
    Take your entity type and your population from your own most recent census figure. Public entities of 50,000 or more have 26 April 2027. Interim final rule; a legal challenge is pending. Under 50,000, and special districts of any size, have 26 April 2028. Interim final rule; a legal challenge is pending. Then check whether your state has its own statute — Colorado’s has been in force since 1 July 2025.
    Pass
    A date written down, with the rule number beside it, and a note of any state statute that applies sooner. The note repeats the rule status, because a date quoted without it is a date somebody will plan against as though it were settled.
    WCAG
    —
    Automated?
    No
  3. A3Write down what counts as your website

    Why
    The obligation covers the web content and mobile apps a public entity provides, which includes the systems a vendor runs on your behalf. The agenda portal on a vendor’s hostname is in scope and is almost never in the list.
    How
    List every address a resident reaches from your homepage, including the ones that leave your domain. Read your own footer, your payment links and the links inside your council agendas.
    Pass
    One list, naming every hostname, who runs it, and which department owns the relationship. Section D is the same list read a second way.
    WCAG
    —
    Automated?
    No
  4. A4Count your documents

    Why
    The number is always larger than the guess, and documents are the largest part of the work. A city of 78,877 people had 1,180 of them.
    How
    Search your site for each extension in turn — `filetype:pdf site:yourdomain.gov` in a search engine gets you an order of magnitude in a minute. Then ask whoever runs the agenda portal for their own count, because those files are rarely indexed.
    Pass
    A number you are willing to say out loud in a budget meeting, and the date you counted it on.
    WCAG
    —
    Automated?
    No

B — The twelve checks a person can do in an afternoon

12 items

Ordered by how often they fail on a US government site, which is not the order WCAG puts them in.

  1. B1Unplug the mouse and use the site

    Why
    Someone using a keyboard, a switch or voice control reaches every control the same way: in order, one at a time. If a control cannot be reached that way, it does not exist for them.
    How
    Put the mouse out of reach. Press Tab from the top of the page to the bottom of the footer, then Shift and Tab back up. Open every menu, complete the search box, and try to leave every component you entered.
    Pass
    Every link, button, field and menu can be reached and operated, in an order that matches what you see, and nothing holds focus once you try to leave it.
    WCAG
    2.1.1 Keyboard (A)
    Automated?
    Partly
  2. B2Watch where the focus ring goes, and whether you can see it

    Why
    A keyboard user who cannot see where they are has to guess what pressing Enter will do. The most common cause is a stylesheet that removed the browser’s own outline and put nothing back.
    How
    Repeat B1 and watch only the ring. Note every stop where it disappears, where it sits behind a sticky header, or where it is a faint dotted line on a coloured button.
    Pass
    At every stop there is an indicator you can see from normal reading distance, it is never clipped by another element, and it never vanishes.
    WCAG
    2.4.7 Focus Visible (AA)
    Automated?
    Partly
  3. B3Zoom to 400% in a 320 px wide window

    Why
    Someone who magnifies the page four times is reading it in a column about as wide as a phone. If the page still asks them to scroll sideways for every line, reading it is work nobody sustains.
    How
    Make the browser window 1,280 px wide, set the zoom to 400%, and read the page. That is the 320 px viewport the criterion names. Then read a long sentence and a wide table.
    Pass
    No horizontal scrollbar on the page itself. A data table may scroll inside its own region. If you have to scroll sideways to read a sentence, it fails.
    WCAG
    1.4.10 Reflow (AA)
    Automated?
    No
  4. B4Check every image says something useful or says nothing at all

    Why
    A decorative image with alternative text is as wrong as a meaningful one without it — the first makes a screen reader read out `banner_final_v2.jpg`, the second removes the information entirely.
    How
    Turn images off in the browser, or read the page with a screen reader, and go down the page asking one question per image: if this were a sentence, what would it say? An engine will tell you which images have no alternative text at all; it cannot tell you that a description is wrong.
    Pass
    Every image either says something useful or says nothing at all, and no description begins with “image of” or repeats the text beside it.
    WCAG
    1.1.1 Non-text Content (A)
    Automated?
    Partly
  5. B5Check the text against its background

    Why
    Low-contrast text is the most common failure on a government website and the cheapest to fix, because it is almost always three or four values in one stylesheet.
    How
    Use your browser’s own inspector — it reports the contrast ratio on any text node — or any free contrast checker with the two hex values. Check the body text, the muted “helper” text, the link colour, and the text sitting on your header image.
    Pass
    Every piece of body text reaches 4.5:1 against what is behind it. Text at 24 px, or 18.66 px bold and above, reaches 3:1.
    WCAG
    1.4.3 Contrast (Minimum) (AA)
    Automated?
    Yes
  6. B6Check buttons, borders and icons against their background

    Why
    The same rule applies to the things that are not text, at a lower threshold, and it is the one people forget: a field whose border is a pale grey line is a field somebody cannot find.
    How
    Check the outline of every input, the edge of every button, the focus ring, and any icon that carries meaning on its own. Judge which graphics are meaningful — a tool cannot decide that for you.
    Pass
    Every control boundary and every meaningful graphic reaches 3:1 against what sits behind it, in every state including focus and hover.
    WCAG
    1.4.11 Non-text Contrast (AA)
    Automated?
    Partly
  7. B7Read the headings on their own and see if they are an outline

    Why
    A screen reader user moves through a page by its headings, the way a sighted reader moves by skimming. A page whose headings were chosen for their font size is a page with no outline at all.
    How
    Read only the headings, top to bottom. Check there is exactly one first-level heading, that no level is skipped, and that nothing is a heading because it needed to be bigger.
    Pass
    The headings alone read as a table of contents for the page, in order, with no level skipped and nothing missing.
    WCAG
    1.3.1 Info and Relationships (A)
    Automated?
    Partly
  8. B8Click every form label and see if the field takes focus

    Why
    A label that is only text beside a box is not a label. Clicking it is the two-second test for whether the two are connected, and the connection is what a screen reader announces and what voice control targets.
    How
    Click the words, not the box, on every field of every form you have — search, contact, permits, the newsletter box in the footer. Then check that a field whose only label is placeholder text still has one once you start typing.
    Pass
    Clicking the label moves focus into its field, every field has a visible label that stays visible, and no field is labelled by its placeholder alone.
    WCAG
    4.1.2 Name, Role, Value (A)
    Automated?
    Partly
  9. B9Submit a form wrong on purpose

    Why
    The moment a form rejects something is the moment it is least usable, and it is almost never tested. A red border and nothing else tells a screen reader user that nothing happened.
    How
    Leave a required field empty, put letters in a date, and submit. Then do the same thing with the keyboard only, and note where focus lands and what is announced.
    Pass
    The error says what is wrong and how to fix it, in text, beside the field and in a summary at the top; focus moves to the summary; and nothing that was typed is lost.
    WCAG
    3.3.1 Error Identification (A)
    Automated?
    No
  10. B10Read the link text with the page hidden

    Why
    Screen reader users list the links on a page and pick one. Eleven links reading “read more” are eleven identical choices, and the one that says “click here” says nothing at all.
    How
    Copy the page’s links into a list, or use a screen reader’s link list, and read them without the surrounding text. An engine will find an empty link; it cannot tell you that “read more” is ambiguous.
    Pass
    Every link says where it goes without the sentence around it, and no two links with different destinations read the same.
    WCAG
    2.4.4 Link Purpose (In Context) (A)
    Automated?
    Partly
  11. B11Check the page title and the page language

    Why
    The title is what a browser tab, a bookmark and a search result all show, and the language attribute is what decides whether a screen reader reads your page in English or in the voice it happened to be set to.
    How
    Read the browser tab on ten pages and see whether any two are the same. Then view the source and check that the opening `html` tag carries `lang="en"`, or the language the page is actually written in.
    Pass
    Every page has a title that names that page first, no two pages share one, and every page declares its language.
    WCAG
    2.4.2 Page Titled (A) · 3.1.1 Language of Page (A)
    Automated?
    Yes
  12. B12Play a video with the sound off

    Why
    A council meeting recording without captions is a public meeting somebody could not attend. It is also the item most often marked done on the strength of the platform’s automatic captions.
    How
    Play each video with the sound off and read the captions against what is being said. Check the names of speakers, the place names, and any number that matters.
    Pass
    Auto-generated captions are a failure, not a partial pass. If the captions came from the platform and nobody corrected them, the item does not pass.
    WCAG
    1.2.2 Captions (Prerecorded) (A)
    Automated?
    No

C — Documents

9 items

A city of 78,877 people had 1,180 documents on its website, and 412 of them were not accessible.

Word, Excel and PowerPoint files are recorded but not yet validated, and say so. Files over 25 MB are not checked, and say so.

  1. C1Check that every PDF is tagged

    Why
    An untagged PDF is a picture of a document as far as a screen reader is concerned: no headings, no reading order, no table structure. It is the single fact that decides whether the rest of this section is even checkable.
    How
    Open the file and look at the tags panel in your PDF reader, or run the free veraPDF validator against the PDF/UA-1 profile. Either answers it outright.
    Pass
    The document has a structure tree, and the tags are headings and paragraphs rather than one undifferentiated block.
    WCAG
    1.3.1 Info and Relationships (A)
    Automated?
    Yes
  2. C2Check every PDF has a real title, and that it opens showing it

    Why
    The title is what a reader hears first and what a bookmark records. A file that announces itself as `Microsoft Word - agenda_final_v3.docx` has told the reader nothing and told them it was not checked.
    How
    Read the document properties, and check the viewer preference that makes the reader show the title instead of the filename. Treat these as missing, not present: `untitled`, `document`, `document1`, anything beginning `Microsoft Word -`, and any title identical to the filename.
    Pass
    A title a person wrote, describing the document, and the reader shows it in the window bar rather than the filename.
    WCAG
    2.4.2 Page Titled (A)
    Automated?
    Yes
  3. C3Check every PDF says what language it is in

    Why
    Without a language, a screen reader reads an English agenda in whatever voice it was last set to. On a bilingual site it is the difference between a Spanish notice being read and being mangled.
    How
    Read the document properties for the language setting, or run the same free validator. Check any passage in a second language separately — a Spanish paragraph inside an English document needs its own.
    Pass
    The document declares its language, and any passage in another language declares its own.
    WCAG
    3.1.1 Language of Page (A)
    Automated?
    Yes
  4. C4Read the document in tag order and see if it matches the page

    Why
    Tags can be present and in the wrong order, which is the normal result of exporting a two-column agenda. The reader gets the left column and the right column interleaved, sentence by sentence.
    How
    Read the document with a screen reader, or step through the tags panel, and compare what you hear with what you see. Pay attention to headers, footers, page numbers, sidebars and anything in two columns.
    Pass
    What is read matches what is seen, in the order a person would read it, with running headers and page numbers marked as decoration rather than read out mid-sentence.
    WCAG
    1.3.2 Meaningful Sequence (A)
    Automated?
    No
  5. C5Check the tables are tables, and that the header row is marked as one

    Why
    A budget table read without its headers is a list of numbers. A validator can see that something was tagged as a table; it cannot tell you that a layout grid was tagged as one or that the wrong row was marked as the header, and both are common.
    How
    For each table, ask a screen reader to read one cell in the middle and listen for the column and row it names. Then look for tables that are not tables — three columns of text laid out in a grid for appearance.
    Pass
    Every table of data has its header cells marked as headers, every cell is announced with its column, and nothing that is only a layout is tagged as a table.
    WCAG
    1.3.1 Info and Relationships (A)
    Automated?
    No
  6. C6Check the scanned pages are real text, and that the text is right

    Why
    A scanned minute book is an image. Recognition software turns it into text, and the text it produces is wrong often enough that a resident searching for their own street will not find it.
    How
    Select a paragraph with the mouse and see whether anything is selected, then search the document for a word you can see on the page. Read the recognised text of a page against the page itself — names and numbers first.
    Pass
    Text is selectable and searchable throughout, and the text under a scan says what the scan says. A page of recognised text nobody read is not a pass.
    WCAG
    1.4.5 Images of Text (AA)
    Automated?
    No
  7. C7Check every image in a document describes what it is there for

    Why
    A map of a proposed annexation carries the whole point of the notice. A validator will report a figure with no description; it will not report a description that is wrong, and in a board packet most of the wrong ones say “image”.
    How
    Open the tags panel and read each figure’s description against the figure. Decide which images carry meaning and which are decoration, and mark the decoration as an artifact so it is skipped rather than read.
    Pass
    Every image that carries meaning has a description a reader could act on, and every decorative image is marked as decoration.
    WCAG
    1.1.1 Non-text Content (A)
    Automated?
    No
  8. C8Check anything longer than 20 pages has bookmarks that match its sections

    Why
    A 240-page board packet with no bookmarks can only be read from the top. A reader looking for one agenda item scrolls for it, and somebody using a screen reader scrolls through all of it.
    How
    Open the bookmarks panel and compare it with the document’s own table of contents. A list that exists but names `Heading 1`, `Heading 2`, `Heading 3` is a list nobody can navigate by.
    Pass
    Every document over 20 pages has bookmarks, they name the sections a reader is looking for, and they are nested the way the document is.
    WCAG
    2.4.5 Multiple Ways (AA)
    Automated?
    No
  9. C9Count the documents that are not PDFs, and the ones nothing will check

    Why
    Word, Excel and PowerPoint files are published on government sites constantly and are left out of most inventories. So are the very large files — a 40 MB scanned plan set is skipped by most tooling without saying so.
    How
    Count each extension separately, and count the files over 25 MB. Then decide, in writing, which of them get remediated, which get replaced with an accessible page, and which are archived.
    Pass
    A count per format and a count of the oversized files, each with a decision beside it. “Word, Excel and PowerPoint files are recorded but not yet validated” is an honest line in an inventory; leaving them out is not.
    WCAG
    —
    Automated?
    No

D — The systems that are not on your website

6 items

These are in scope for your obligation and they are not on your domain.

A VPAT older than 24 months is stale. Zero “Does Not Support” entries in a vendor’s VPAT is a red flag, not a green one.

  1. D1Check the agenda and minutes portal

    Why
    It is where the public record lives, it is almost always on a vendor’s hostname, and it is the system residents are most often trying to use when they complain.
    How
    Click through from your own site and read the address bar — it is usually a host like `granicus.com` or `civicplus.com`. Ask the vendor for their current conformance report, check its date, and read what your contract says about accessibility.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No
  2. D2Check online payments

    Why
    A utility bill somebody cannot pay is a service they are excluded from, and the payment flow is usually the one system nobody in the building can change.
    How
    Start a payment and read the address bar at each step — the handoff often happens silently. Then ask the vendor for their conformance report, check its date, and read the contract.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No
  3. D3Check permits and licensing

    Why
    These are long multi-step forms with file uploads and session timeouts, which is the hardest thing on this list to get right and the most expensive to be wrong about.
    How
    Begin an application and note every hostname it passes through — `accela.com` and `tylertech.com` are the usual ones. Ask for the conformance report, check its date, and read the contract.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No
  4. D4Check job applications

    Why
    An application system somebody cannot use is a job they cannot apply for, and it is the one on this list most likely to produce a complaint that names a person.
    How
    Start an application, note the hostname, and try the whole flow from the keyboard. Ask the vendor for the conformance report, check its date, and read the contract.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No
  5. D5Check the library catalogue

    Why
    The catalogue and its ebook platform are separate systems, usually from separate vendors, and the second one is almost never in anybody’s scope list.
    How
    Search the catalogue, then borrow something, and note every hostname on the way. Ask each vendor for a conformance report, check the dates, and read both contracts.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No
  6. D6Check maps and GIS

    Why
    A zoning map is often the only published form of the information, and an interactive map is the hardest kind of content to make usable without sight. The answer is usually a text equivalent rather than a better map.
    How
    Open each map, note the hostname, and try to get the same answer from the keyboard alone. Ask the vendor for the conformance report, check its date, read the contract, and write down what the text equivalent is going to be.
    Pass
    The hostname is in your scope list, you hold a conformance report dated within 24 months, somebody has read it, and you know what your contract says about accessibility.
    WCAG
    —
    Automated?
    No

E — What to write down

7 items

This is the part a demand letter tests, and it is the part nobody does.

  1. E1Write down what was tested, when, by whom, and with what

    Why
    A result with no scope is a result nobody can rely on a year later. “The site was tested” and “eight page templates were tested on 14 September 2026 with NVDA 2026.1 and Firefox” are different claims, and only the second survives a question.
    How
    For every round of testing, record the pages or templates covered, the date, the person, the tool and its version number. A spreadsheet is enough to start.
    Pass
    Any row in the record answers what was tested, when, by whom and with which tool at which version, without anyone having to remember.
    WCAG
    —
    Automated?
    No
  2. E2Write down what was fixed, by whom, and on what date

    Why
    The gap between “we fixed it” and a record of who changed what, when, is the gap a demand letter is written into.
    How
    Record the change beside the finding it answers rather than in a separate ticket queue. Name the person, the date and what actually changed.
    Pass
    Every finding you consider resolved has a dated entry naming the person who resolved it.
    WCAG
    —
    Automated?
    No
  3. E3Write down what was verified, how, and what the verification covered

    Why
    A submitted fix is not a confirmed fix. Verification is a separate event with its own method and its own scope, and collapsing the two is how a programme reports work it has not checked.
    How
    For each fix, record who re-tested it, by which method — a person or a tool — and on which pages. Write the scope into the sentence: “verified fixed for this test scope”, never “verified”.
    Pass
    Every verification names an actor, a method and a scope, and it is a separate entry from the fix it checked.
    WCAG
    —
    Automated?
    No
  4. E4Write down what you decided not to fix, why, who decided, and when it is next looked at

    Why
    Deferring work is a legitimate decision and an undated one is how a deferral becomes permanent without anybody choosing that. The reason is also the part a reviewer reads first.
    How
    For each deferral, record the owner, the reason in their own words, and a review date. “Legacy section scheduled for replacement Q3 2027” is a reason; “low priority” is not.
    Pass
    No deferred item is without an owner, a written reason and a date it is looked at again.
    WCAG
    —
    Automated?
    No
  5. E5Write down what is out of scope, and under which exception

    Why
    The rule names specific exceptions — archived content, pre-existing documents, third-party content not under contract, individualised password-protected documents, older social media posts, and content whose failure is de minimis. A claim that names a whole section or a file type is the one that gets pulled.
    How
    For each claim, name the specific page or document, the exception it falls under, who decided, and when. Treat the de minimis claim as the one you will be asked about first, and write down why that particular failure has so minimal an effect.
    Pass
    Every exception claim names a specific item, a specific exception, a person and a date, and reads as a decision rather than as a category.
    WCAG
    —
    Automated?
    No
  6. E6Write down what a resident told you, and what happened next

    Why
    A report from a member of the public is the highest-quality finding you will ever get, and the record of what you did about it is what shows a programme is running rather than filed.
    How
    Give people one address or form to report a barrier, acknowledge every report, and record what was done and when it was closed. Say so even when the answer is that nothing will change, and say why.
    Pass
    Every report has an acknowledgement, an outcome and a date, and the reporter was told the outcome.
    WCAG
    —
    Automated?
    No
  7. E7Decide where all of this lives, and who can find it without asking

    Why
    This is the part a demand letter tests, and it is the part nobody does. A record held in one person’s inbox is a record that leaves with them.
    How
    Pick one place — a shared drive, a system, a folder — write down where it is, and tell the clerk, the attorney and the department heads. Then check that somebody other than you can open it.
    Pass
    Two people who are not you can produce the whole record from memory of where it is, within a day, without your help.
    WCAG
    —
    Automated?
    No

F — What no checklist can tell you

6 items

  1. F1Plan for the barriers no tool reports

    Why
    Automated testing detects roughly 30–40% of real barriers. Manual testing covers the rest.
    How
    Read the `Automated?` column of the criterion map below and count the items it answers for you. Then put the rest into a plan with names and dates against it.
    Pass
    Your plan has time in it for the work no tool reports, and the person who has to do that work knows it is theirs.
    WCAG
    —
    Automated?
    No
  2. F2Know how much of the standard a tool can see

    Why
    16 of the 50 WCAG 2.1 AA success criteria have any automated coverage — 32%.
    How
    When a vendor shows you a number, ask which criteria it covers and which it does not. The answer is a list, and a vendor who cannot produce one is reporting on a subset without saying which.
    Pass
    You can name the criteria your tooling does not cover, and nobody in your organisation reads a scan result as a statement about the whole standard.
    WCAG
    —
    Automated?
    No
  3. F3Treat this as a triage, not an audit

    Why
    This checklist is a triage, not an audit. It will not produce a conformance claim.
    How
    Use it to find out where the work is and how much there is. When you need a conformance claim, that comes from a completed evaluation against every applicable criterion, with its scope written down.
    Pass
    Nothing produced from this checklist is presented to a council or a court as an audit.
    WCAG
    —
    Automated?
    No
  4. F4Ask a person who uses a screen reader to do one real task on your site

    Why
    Nothing here tells you whether a real person can complete a real task on your site. Ask one.
    How
    Pick a task somebody actually comes to you for — pay a bill, find a meeting agenda, apply for a permit. Ask a resident who uses assistive technology, or a local disability organisation, to try it. Pay them for their time.
    Pass
    Somebody who does not work for you has completed a real task on your site, and you wrote down where it went wrong.
    WCAG
    —
    Automated?
    No
  5. F5Do not read a finished checklist as a conformance claim

    Why
    Passing every item does not make a site conformant, and no tool issues that verdict.
    How
    When somebody asks whether the site conforms, answer with what was tested, what was found, what was fixed and what remains open. That is an answer you can support.
    Pass
    No document your organisation publishes claims conformance on the strength of a finished list.
    WCAG
    —
    Automated?
    No
  6. F6Do not read a clean scan as a clean site

    Why
    A clean automated scan is not a conformant site.
    How
    When a scan comes back with nothing, treat it as a statement about the test rather than about the site, and go and do B1, B3 and B9 by hand.
    Pass
    A clean scan result is recorded with the sentence that qualifies it, wherever it is reported.
    WCAG
    —
    Automated?
    No

Which criterion each item covers

Checklist items mapped to WCAG 2.1 success criteria. 44 rows.
ItemWhat it checksWCAG criterionLevelAutomated?
A1 — Name the person responsibleName the person responsibleNo success criterionNot applicableNo
A2 — Find out which deadline applies to youFind out which deadline applies to youNo success criterionNot applicableNo
A3 — Write down what counts as your websiteWrite down what counts as your websiteNo success criterionNot applicableNo
A4 — Count your documentsCount your documentsNo success criterionNot applicableNo
B1 — Unplug the mouse and use the siteUnplug the mouse and use the site2.1.1 KeyboardAPartly
B2 — Watch where the focus ring goes, and whether you can see itWatch where the focus ring goes, and whether you can see it2.4.7 Focus VisibleAAPartly
B3 — Zoom to 400% in a 320 px wide windowZoom to 400% in a 320 px wide window1.4.10 ReflowAANo
B4 — Check every image says something useful or says nothing at allCheck every image says something useful or says nothing at all1.1.1 Non-text ContentAPartly
B5 — Check the text against its backgroundCheck the text against its background1.4.3 Contrast (Minimum)AAYes
B6 — Check buttons, borders and icons against their backgroundCheck buttons, borders and icons against their background1.4.11 Non-text ContrastAAPartly
B7 — Read the headings on their own and see if they are an outlineRead the headings on their own and see if they are an outline1.3.1 Info and RelationshipsAPartly
B8 — Click every form label and see if the field takes focusClick every form label and see if the field takes focus4.1.2 Name, Role, ValueAPartly
B9 — Submit a form wrong on purposeSubmit a form wrong on purpose3.3.1 Error IdentificationANo
B10 — Read the link text with the page hiddenRead the link text with the page hidden2.4.4 Link Purpose (In Context)APartly
B11 — Check the page title and the page languageCheck the page title and the page language2.4.2 Page Titled3.1.1 Language of PageAYes
B12 — Play a video with the sound offPlay a video with the sound off1.2.2 Captions (Prerecorded)ANo
C1 — Check that every PDF is taggedCheck that every PDF is tagged1.3.1 Info and RelationshipsAYes
C2 — Check every PDF has a real title, and that it opens showing itCheck every PDF has a real title, and that it opens showing it2.4.2 Page TitledAYes
C3 — Check every PDF says what language it is inCheck every PDF says what language it is in3.1.1 Language of PageAYes
C4 — Read the document in tag order and see if it matches the pageRead the document in tag order and see if it matches the page1.3.2 Meaningful SequenceANo
C5 — Check the tables are tables, and that the header row is marked as oneCheck the tables are tables, and that the header row is marked as one1.3.1 Info and RelationshipsANo
C6 — Check the scanned pages are real text, and that the text is rightCheck the scanned pages are real text, and that the text is right1.4.5 Images of TextAANo
C7 — Check every image in a document describes what it is there forCheck every image in a document describes what it is there for1.1.1 Non-text ContentANo
C8 — Check anything longer than 20 pages has bookmarks that match its sectionsCheck anything longer than 20 pages has bookmarks that match its sections2.4.5 Multiple WaysAANo
C9 — Count the documents that are not PDFs, and the ones nothing will checkCount the documents that are not PDFs, and the ones nothing will checkNo success criterionNot applicableNo
D1 — Check the agenda and minutes portalCheck the agenda and minutes portalNo success criterionNot applicableNo
D2 — Check online paymentsCheck online paymentsNo success criterionNot applicableNo
D3 — Check permits and licensingCheck permits and licensingNo success criterionNot applicableNo
D4 — Check job applicationsCheck job applicationsNo success criterionNot applicableNo
D5 — Check the library catalogueCheck the library catalogueNo success criterionNot applicableNo
D6 — Check maps and GISCheck maps and GISNo success criterionNot applicableNo
E1 — Write down what was tested, when, by whom, and with whatWrite down what was tested, when, by whom, and with whatNo success criterionNot applicableNo
E2 — Write down what was fixed, by whom, and on what dateWrite down what was fixed, by whom, and on what dateNo success criterionNot applicableNo
E3 — Write down what was verified, how, and what the verification coveredWrite down what was verified, how, and what the verification coveredNo success criterionNot applicableNo
E4 — Write down what you decided not to fix, why, who decided, and when it is next looked atWrite down what you decided not to fix, why, who decided, and when it is next looked atNo success criterionNot applicableNo
E5 — Write down what is out of scope, and under which exceptionWrite down what is out of scope, and under which exceptionNo success criterionNot applicableNo
E6 — Write down what a resident told you, and what happened nextWrite down what a resident told you, and what happened nextNo success criterionNot applicableNo
E7 — Decide where all of this lives, and who can find it without askingDecide where all of this lives, and who can find it without askingNo success criterionNot applicableNo
F1 — Plan for the barriers no tool reportsPlan for the barriers no tool reportsNo success criterionNot applicableNo
F2 — Know how much of the standard a tool can seeKnow how much of the standard a tool can seeNo success criterionNot applicableNo
F3 — Treat this as a triage, not an auditTreat this as a triage, not an auditNo success criterionNot applicableNo
F4 — Ask a person who uses a screen reader to do one real task on your siteAsk a person who uses a screen reader to do one real task on your siteNo success criterionNot applicableNo
F5 — Do not read a finished checklist as a conformance claimDo not read a finished checklist as a conformance claimNo success criterionNot applicableNo
F6 — Do not read a clean scan as a clean siteDo not read a clean scan as a clean siteNo success criterionNot applicableNo

12 of these 44 items can be checked by a tool. 32 need a person.

Use it, copy it, put your own logo on it

Published under Creative Commons Attribution 4.0.

You may copy this, print it, edit it, translate it and publish it on your own site, including with your own branding. Keep a line saying where it came from. You do not need to ask us.

Have the first five pages checked for you

The scan is the only thing on this site behind an email address, and it is behind one because the result is emailed.

Five pages, no account, no card. It is a sample, not an assessment of the whole site.

Scan 5 pages, free

Questions people ask about this checklist

Do I have to give you my email address?

No. There is no form on this page. The PDF is a link and the page is the same content.

Can I put this on our intranet with our own logo?

Yes. It is published under Creative Commons Attribution 4.0. Keep a line saying where it came from.

Is this a conformance audit?

No. It is a triage. It will tell you where to start and it will not produce a conformance claim. Only a completed manual evaluation does that.

Why is there no score at the end?

Because a percentage invites a report to a council that says 82%, and 82% of a checklist means nothing about whether a resident can use the site.

Does BarrierOps check all 44 of these?

No. 12 of them can be checked automatically and BarrierOps checks those. The other 32 need a person, and the product’s manual testing module is where those live.

Is the 2028 date right for us?

It depends on your entity type and population. Public entities of 50,000 or more have 26 April 2027. Under 50,000, and special districts of any size, have 26 April 2028. Interim final rule; a legal challenge is pending.

https://barrierops.com/tools/checklist-2028