SECTION 508 AND ENTERPRISE PROCUREMENT
Why did procurement reject our VPAT?
Almost never because the product failed a criterion. Reviewers expect gaps — every real product has them, and an ACR claiming full conformance across all fifty criteria is the one that draws suspicion. Documents get sent back because they cannot be read as evidence: a row marked as a partial failure with nothing written beside it, a missing date, no statement of how any of it was tested. The reviewer is not judging your product. They are judging whether your document lets them judge your product.
Open the free VPAT/ACR generatorThe reviewer's actual problem
Put yourself on the other side of the table. Someone has three ACRs from three vendors and a deadline. They cannot install your software, they cannot run a screen reader against it, and they are not going to take your word for anything they cannot see stated. Every conclusion they reach comes out of the document in front of them.
That makes an empty Remarks cell the most expensive thing in the file. A criterion marked Partially Supports has told the reviewer that something is broken. With nothing beside it, they have no way to tell a cosmetic focus-outline gap from a form nobody using a screen reader can complete — so the defensible assumption is the second one. The row you left blank to avoid drawing attention is the row that gets read most harshly.
What a usable remark looks like
Sent back: “Partially Supports. Some issues exist.”
Accepted: “Partially Supports. The data-grid column headers are not programmatically associated with their cells, so NVDA and JAWS announce cell values without the column name. Affects the reporting module only; the same data is available in the CSV export, which is fully accessible. Fix scheduled for the 4.2 release.”
An illustration of the shape, not a template to copy — the content has to come from your own testing of your own product. What makes the second version work is that it names the component, the assistive technology, the user-facing consequence, and whether there is a way around it.
WebAIM's own procurement guidance singles out generic remarks as a distinct failure from missing ones, and the reason is worth sitting with: “partially conformant” pasted onto twelve rows tells a reviewer those rows were filled in rather than evaluated. It reads as less trustworthy than a blank, because a blank at least does not pretend.
The three header fields that decide whether the rest gets read
A conformance table with no context is not evidence of anything. Three fields carry most of that context, and a report missing them is hard to weigh against a competitor's:
Product name and version. An ACR describes a specific build. Without the version, a reviewer cannot tell whether it covers what they are about to buy.
Report date. Distinguishes a current assessment from one written three releases ago and never revisited. An undated ACR is treated as old.
Evaluation methods used. The single field that separates a tested report from an asserted one. Say what you actually did: which assistive technologies and versions, which browsers, manual testing or automated scanning or both, and who performed it.
The generator on this site will not let those three go quietly. It lists each blank one alongside the row-level problems, before you export, while it is still cheap to fix.
Not Evaluated is a real answer
The template carries five values, and Not Evaluated is one of them. It is the honest label for a criterion nobody has tested yet, and it is a far better position than a guess. A guess that proves wrong is a misrepresentation in a document attached to a bid, with consequences that outlast the bid; an admitted gap is a scheduling conversation. A reviewer who sees three Not Evaluated rows and a note about when they will be covered is looking at an ACR written by someone who genuinely evaluated the other forty-seven.
Unanswered criteria default to Not Evaluated here rather than being dropped from the document, for the same reason: a fifty-row table with forty-one rows in it raises a question the vendor did not mean to raise.
What this tool does, and the line it will not cross
It formats your answers and checks them for completeness. It does not scan your product, does not crawl anything, and never picks a conformance level for you — every value and every remark is yours, entered from your own testing, and you remain responsible for all of it. That boundary is the whole design: a tool that guessed at conformance levels would be producing an assessment it is in no position to make, in a document you are signing.
What it can do is make sure the document you sign does not fail for a reason that has nothing to do with your product.
Common questions
Why would a reviewer reject a VPAT when our product conforms well?
Because conformance and evidence are different things. A reviewer cannot verify your product; they can only read your document. An ACR that says "Partially Supports" on a criterion and leaves Remarks blank has told them a problem exists and nothing about its size, so the safe reading is the worst one. A report with fewer "Supports" rows but a real sentence on every partial row routinely scores better than a cleaner-looking one that explains nothing.
Which rows actually need remarks?
The ones marked Partially Supports and Does Not Support. Those are the two values a reviewer reads as risk, and Remarks is the only place the document says how much. A Supports row is self-explanatory and a Not Applicable row is usually obvious from the product type, so leaving those blank costs little. The generator on this site flags every Partially Supports or Does Not Support row with empty Remarks before you export.
What header fields do reviewers check first?
Product name, report date, and evaluation methods used. The date tells a reviewer whether the report describes the version being bought or one from three releases ago. Evaluation methods tell them whether the answers came from assistive-technology testing, an automated scan, or somebody's recollection. A report missing either is hard to weigh against a competing vendor's, and those three fields are exactly the ones this generator refuses to let you export quietly.
Is a generic remark better than a blank one?
Only slightly, and WebAIM's procurement guidance names generic remarks as its own failure. "Some issues exist" or "partially conformant" repeated on twelve rows tells a reviewer that the rows were filled in rather than evaluated. A useful remark names what does not work, where, and what a user encounters: which component, which assistive technology, and whether a workaround exists. Two specific sentences beat a paragraph of hedging.
Should we mark a criterion Not Evaluated or guess at it?
Mark it Not Evaluated. It is one of the template's own values and it is the honest label for a row nobody has tested. A guess that turns out wrong is a misrepresentation in a procurement document, which is a far worse position than an admitted gap. A reviewer who sees three Not Evaluated rows with a note about when they will be tested is reading an ACR written by someone who tested the other forty-seven.
How many criteria does an ACR have to cover?
This generator walks the 50 WCAG 2.1 Level A and Level AA success criteria that most ACRs in circulation are scored against, grouped by the four principles in the order the standard and the template both use. It does not cover Level AAA or the nine WCAG 2.2 additions. Check the criterion set against the W3C's own materials and the current ITI template before you submit, the same as every other output of this tool.
Does this tool test our product or choose conformance levels for us?
No, and that limit is deliberate. It never scans, crawls, or assesses anything, and it never selects a level on your behalf. Every conformance value and every remark is yours, entered from your own testing. What it does is format those answers into the standard table shape and flag the completeness problems that get a document sent back. Format and completeness, never assessment.
Is anything we type sent anywhere?
No. The generator runs entirely in your browser tab, with no account and no upload. An optional draft auto-save writes to your own browser's local storage and can be turned off; clearing your browser data clears it. An unreleased product's accessibility gaps are commercially sensitive, which is the reason the tool has no server in the loop at all.
Start your ACR