VPAT and ACR
VPAT: Voluntary Product Accessibility Template
A VPAT is the form. An Accessibility Conformance Report is the completed form you hand a buyer. This page covers which edition to download, who is allowed to fill it in, and the rows almost every software vendor gets wrong: the ones about the PDFs your product generates. Render any template with the tool below to see what your own output produces.
- Early access, launching soon
- No card required
- Your HTML stays yours
Live demo
Runs in your browser. Nothing is uploaded.
Your HTML
Live preview
Your PDF is downloading. Want this as one API call, with the page archived too?
Short answer
A VPAT (Voluntary Product Accessibility Template) is a free form published by the Information Technology Industry Council (ITI) that a vendor fills in to document how a product meets accessibility standards. The completed document is called an Accessibility Conformance Report (ACR). ITI describes the VPAT as "a free template that translates accessibility requirements and standards into actionable testing criteria for products and services", and the current family is VPAT 2.5Rev, published April 2025, in four editions: 508, WCAG, EU and INT. The word voluntary is misleading, and Section508.gov says so directly: "it is not voluntary to complete an ACR if you wish the government to consider purchasing your product." It is a self-assessment, not a certification, and no government body approves or signs it. Only WCAG Level A and AA are required in an ACR intended to inform US federal procurement. If your product exports invoices, statements or reports as PDFs, those files are Electronic Documents under the Revised 508 Standards and they are rated in the same tables as your user interface.
Last updated 21 August 2026. Written and fact checked by the Sitepdf team.
The VPAT rows your generated PDF output is actually judged on
Most VPAT guidance stops at the user interface. This table covers the part that catches software vendors out at renewal: the Level A and AA success criteria that apply to the documents your product generates, what each one means once the content is a PDF rather than a web page, where the outcome is actually decided, and the rating an honest vendor writes in the box. The W3C technique numbers in the second column are the official PDF techniques from the WCAG 2.2 documentation, which is the reference an evaluator will reach for.
| WCAG success criterion | What it means in a generated PDF | Where the outcome is decided | What separates Supports from Partially Supports |
|---|---|---|---|
| 1.1.1 Non-text Content (A) | Every meaningful image carries alternate text and every decorative one is marked as an artifact so it is skipped. W3C techniques PDF1 and PDF4. | Your HTML source: the alt attribute, and alt="" on decorative images. |
A machine can see whether alt text exists. Only a human can see whether it describes the image. "chart.png" is present and worthless, and an evaluator will call that Partially Supports. |
| 1.3.1 Info and Relationships (A) | Headings, lists and tables are marked up as what they are, and data tables carry real header associations. W3C techniques PDF6, PDF9 and PDF21. | Your HTML source (h1 to h6, ul, th with scope) plus tagging switched on at render time. |
This is the single most common failure in generated documents. A layout built from styled div elements tags cleanly and still conveys no structure. Tables without th scope almost always drop to Partially Supports. |
| 1.3.2 Meaningful Sequence (A) | Content is read in an order that makes sense. W3C technique PDF3, correct tab and reading order. | DOM order in your template. CSS that visually reorders content does not reorder the tag tree. | Multi column layouts and flexbox order are the usual culprits. If a screen reader reads across your two columns instead of down them, this is a Does Not Support and no checker will have flagged it. |
| 1.4.1 Use of Color (A) | Color is never the only way meaning is conveyed. A red figure that means overdue needs a word or a symbol too. | Design decision in the template, before any rendering happens. | Entirely a human judgment. Financial documents fail this constantly: red for negative, green for paid, with no text equivalent anywhere. |
| 1.4.3 Contrast (Minimum) (AA) | Text meets 4.5 to 1 against its background, or 3 to 1 for large text. | Your CSS. Measurable before you render anything. | The easiest row on the page to move to Supports and the most frequently failed, usually by light gray small print in footers, disclaimers and table captions. |
| 1.4.5 Images of Text (AA) | Text is real selectable text, not a picture of text. | Your rendering engine. Anything built on html2canvas renders the whole page as an image. | Binary. A vector PDF from a real rendering engine Supports this. A screenshot placed in a PDF Does Not Support it, and fails 1.4.4 and 1.1.1 at the same time. |
| 2.4.2 Page Titled (A) | The document has a title in its metadata, not only in the visible header. W3C technique PDF18. | A render setting or document metadata, not your markup. | Frequently missed because the file looks fine open on screen. If the Title entry is empty, assistive technology announces the filename instead, which is why this is a Does Not Support rather than a cosmetic issue. |
| 2.4.4 Link Purpose (In Context) (A) | Link text says where the link goes. W3C techniques PDF11 and PDF13. | Your HTML source, the anchor text itself. | "Click here" and bare URLs in a document footer are the standard failure. A list of identical "View" links in a table is the subtler one. |
| 3.1.1 Language of Page (A) | A document language is set so the correct pronunciation engine is used. W3C technique PDF16, the /Lang entry in the document catalog. |
The lang attribute on your html element, carried through by the renderer. |
One attribute, one line of template, and it is either present or it is not. There is no partial version of this row. |
| 4.1.2 Name, Role, Value (A) | Interactive form fields expose a name, a role and a value. W3C techniques PDF10, PDF12 and PDF23. | Only relevant if you generate fillable PDF forms. | For a static generated report this is legitimately Not Applicable, and marking it so is correct rather than evasive. For a fillable form it is one of the hardest rows to reach Supports on. |
The pattern worth taking away: seven of these ten rows are decided in your HTML template, not in your PDF library. That is good news, because it means the fix is a template change applied once rather than a remediation project repeated per file. It also means switching rendering engines will not rescue a document assembled from unstructured markup. Two rows, 2.4.2 and 1.3.1, additionally depend on tagging being switched on at render time, which is off by default in a surprising number of wrappers. If you want the engine side of this, our accessible PDF generation comparison covers which HTML to PDF engines emit tagged output and which actually target PDF/UA. If instead you are pricing the platforms that will test the user interface half, only one of the four big accessibility vendors publishes a rate card. And if you are still choosing the tooling to test all of this with, 508 compliance testing software prices nine of the options and separates the ones that read web pages from the two that read documents.
VPAT and ACR: the template, the report, and why the naming confuses everyone
Two words get used interchangeably and they are not the same thing.
The VPAT is the blank form. It is published by the Information Technology Industry Council, a Washington trade association, and it is free to download. ITI describes it as a template that translates accessibility requirements and standards into actionable testing criteria. Nothing more: it is a structured questionnaire with a row per success criterion.
The Accessibility Conformance Report, or ACR, is what you get when a vendor fills that form in for a specific product at a specific version. Section508.gov defines an ACR as a document that explains how information and communication technology products such as software, hardware, electronic content and support documentation conform to the Revised 508 Standards.
So a buyer who asks for "your VPAT" is asking for your ACR. Nobody in procurement will correct you on this, and the ITI form itself is titled as an Accessibility Conformance Report, which is why the two terms collapsed together in practice.
One naming rule that does matter legally: VPAT is an ITI registered service mark. ITI states that the VPAT name and report form should not be altered without its express written permission. You can use the form as published and you should not rebuild it into your own branded variant and keep calling it a VPAT.
There is also a second route worth knowing about, because it is free and machine readable and most vendors have never heard of it. The GSA publishes the OpenACR Editor at acreditor.section508.gov, which produces an ACR in a structured format rather than a Word document. If you have ever tried to diff two versions of a fifty page Word table to see what changed between product releases, the appeal is obvious.
Which VPAT edition should you use?
ITI publishes the current form as VPAT 2.5Rev, dated April 2025, in four editions. Downloading the wrong one is the most common wasted afternoon in this whole exercise, because the tables differ and a buyer will notice.
- VPAT 2.5 508 covers the Revised Section 508 standards, the US federal accessibility standard. This is the one you want if you are selling to a US federal agency.
- VPAT 2.5 WCAG covers WCAG 2.0, 2.1 and 2.2 only. Use it for commercial US buyers, universities, health systems and state agencies whose contract names WCAG rather than 508.
- VPAT 2.5 EU covers EN 301 549, the European procurement standard.
- VPAT 2.5 INT is the international edition and incorporates all three of the above. It is the longest form by a distance and the right choice only if you genuinely sell into all of those markets.
For a US software vendor the practical answer is usually 508 or WCAG, and if you are unsure which, ask the buyer which standard their solicitation names. It will be in the document.
A version note that catches people out: if you produced an ACR against the original 2001 Section 508 standards, Section508.gov states you must update it using the Revised Section 508 Standards published in 2017. A report against the 2001 standard is not merely old, it is scored against requirements that no longer apply.
Only Level A and Level AA are required in an ACR intended to inform US federal procurement. Level AAA rows exist in the WCAG edition and you are not obliged to complete them. Filling them in anyway is a reasonable competitive choice if you do well on them, and an expensive way to advertise gaps if you do not.
Is a VPAT legally required?
Not by statute, and yes in practice. The distinction is worth understanding because vendors regularly talk themselves out of producing one on a technicality.
No US law says "every software vendor must publish a VPAT". What the law does is bind the buyer. Section 508 requires federal agencies to procure accessible information and communication technology, which pushes the requirement down into every solicitation they issue. Section508.gov puts the consequence about as bluntly as a government website ever does: "it is not voluntary to complete an ACR if you wish the government to consider purchasing your product."
The pressure does not stop at federal. State procurement offices, public universities, school districts and health systems routinely request an ACR, and increasingly so do large private enterprises whose own accessibility programs require it of their suppliers. ADA Title II adds a separate stream: state and local government entities now have a fixed WCAG 2.1 Level AA deadline for web content and conventional electronic documents, and their duty flows into their vendor contracts. Those deadlines moved in 2026, and our accessible PDF generation page carries the current dates read from ada.gov.
The realistic way to think about it: a VPAT is not a legal obligation, it is a sales prerequisite. The cost of not having one is not a penalty, it is being screened out of a bid before anyone reads your pricing. If you are weighing an internal self-assessment against hiring a third party, our VPAT services cost guide compares what the vendors who publish a rate actually charge.
Who can complete a VPAT, and is a self-assessment enough?
Anyone can fill in the form. There is no accreditation, no licensing body, and no government approval step. Nobody stamps your ACR.
ITI recommends the manufacturer do the testing, stating that the Original Equipment Manufacturer is likely the best source to conduct the testing necessary to complete the VPAT. That is sound: you know your product, its configurations and its edge cases better than a contractor reading your documentation for a week.
Section508.gov describes ACR authors as organizations that develop or provide ICT products or services to federal agencies, including commercial companies and contractors. It also settles a question that comes up constantly with embedded components: "You are responsible for completing an ACR for the product you developed." If your application embeds a third party PDF viewer or charting library, that vendor is responsible for their ACR and you are responsible for yours, including for how your product uses theirs.
So a self-assessment is legitimate and it is the norm. What a self-assessment does not do is protect you from the consequences of being wrong. An ACR is a vendor claim that a buyer relies on, and an inaccurate one is a misrepresentation in a procurement process, not a paperwork error. The rational middle path most serious vendors take is to test and write the report internally, then have someone with accessibility expertise review it before it goes out. That is much cheaper than a full third party audit, where the ADA compliance audit cost published by the two providers that publish anything runs from $500 for a narrow evaluation to $7,000 for a large interactive site, and it catches the confident wrong answers, which are the dangerous ones.
A wording note that tells you how carefully these terms were chosen: ITI records that Partially Supports replaced the earlier phrase "supports with exceptions" at the request of the US Access Board. The old phrasing let vendors bury real gaps in a footnote. The new one puts the gap in the rating column where a buyer sorting fifty reports will see it.
The other thing that makes a report credible is what goes in the Remarks and Explanations column. Section508.gov guidance is explicit that where a product Partially Supports or Does Not Support a criterion, you should explain how the standard is not met. A report that is all Supports with empty remarks reads as untested to anyone who has evaluated more than a handful, and evaluators do read these comparatively. A report with candid Partially Supports rows and specific, informed remarks reads as a vendor who actually did the work.
The rows software vendors get wrong: the documents your product generates
Here is the gap that this page exists for, and it is a large one.
Almost every VPAT walkthrough treats the product as a user interface. Teams test their web app carefully, get their screens into good shape, and complete the tables honestly. Then the product generates a PDF invoice, a monthly statement, an exported report, a permit, a benefits letter, and that file is never tested at all.
Under the Revised 508 Standards this is not an oversight you can wave away. Section508.gov guidance names Electronic Documents as one of the product categories that requires evaluation against the WCAG tables, alongside Web Content, Software and Authoring Tool. Your generated PDFs are electronic documents produced by your product. They belong in the same report.
Two consequences follow, and they pull in opposite directions.
The uncomfortable one: if your product emits untagged PDFs, several Level A rows in your ACR are not Supports. 1.3.1 and 1.3.2 in particular are difficult to claim with a straight face for an untagged file, because there is no structure and no defined reading order in the document at all. Writing Supports anyway is exactly the kind of claim a buyer with an accessibility team will test.
The encouraging one: generated documents are the cheapest accessibility problem you will ever have. A remediation team fixing existing PDFs works file by file forever. You have one template and one render configuration, and fixing them corrects every document your system will ever produce, including all the ones that do not exist yet. Very little else in an accessibility program has that shape.
The practical sequence is short. Put real semantic structure in the template: heading levels in order, real lists, tables with th and scope, alt text on meaningful images and empty alt on decorative ones, and lang on the html element. Switch tagging on at render time, which is one parameter and off by default in many wrappers. Set a document title in metadata. Then validate what actually came out with a free checker rather than trusting what you intended. Our PDF accessibility checker comparison covers which tools decide PDF/UA conformance formally, and our guide to testing PDF accessibility covers the process, along with the failures no checker can catch. Do that once and the document rows in your next ACR stop being the ones you hope nobody asks about.
How often does an ACR need updating?
More often than most vendors assume. Section508.gov states that "Every time your product is changed or updated (e.g. version change, bug fix, etc.), an updated ACR may be required to address any changes in the product's accessibility."
Read literally that is per release, which for a SaaS product shipping continuously is not a workable cadence. What serious vendors do instead is treat the ACR as a versioned artifact tied to a product version, review it on a fixed schedule, and re-test whenever a release touches anything in scope. A change to your PDF template, your rendering configuration, your component library or your color palette is in scope. A backend performance fix is not.
Every ACR names the product version and the evaluation date on its title page, and buyers do look at that date. A report dated three years ago against a product on a weekly release train tells an evaluator something specific about how the vendor treats accessibility, and it is not flattering.
This is where the machine readable route earns its keep. An ACR kept in the OpenACR format can live in version control next to the product, be diffed between releases and be regenerated as part of a release process. A fifty page Word table cannot realistically do any of that, which is a large part of why so many published ACRs are stale.
curl https://api.sitepdf.com/v1/render \
-H "Authorization: Bearer $SITEPDF_KEY" \
-d url="https://app.example.com/statements/2026-08/1042" \
-d tagged=true \
-d title="August 2026 Account Statement" \
-d archive=true
{
"pdf_url": "https://api.sitepdf.com/v1/documents/doc_3m8vq.pdf",
"pages": 6,
"tagged": true,
"title": "August 2026 Account Statement",
"archive": {
"id": "arc_p24hz",
"captured_at": "2026-08-21T10:04:18Z",
"retrieve_url": "https://api.sitepdf.com/v1/archives/arc_p24hz"
}
}
The API is in early access; this is the documented call shape it opens with. Full request and response walkthrough.
Questions about this job
What is a VPAT?
What is the difference between a VPAT and an ACR?
Is a VPAT required by law?
Who can complete a VPAT?
Which VPAT version should I use?
What does Partially Supports mean in a VPAT?
Do the PDFs my software generates need to be in the VPAT?
How often does an ACR need to be updated?
Which WCAG level does an ACR need to cover?
Index
More PDF and archiving tools
- Convert HTML to PDF
- Webpage to PDF
- Save webpage as PDF
- URL to PDF API
- Website archiving
- Monitor website changes
- Screenshot API
- React to PDF
- Java PDF library
- C# PDF library
- Python PDF generation
- HTML to PDF Node.js
- Laravel HTML to PDF
- Vue to PDF
- Next.js PDF generator
- Angular to PDF
- Markdown to PDF API
- Django HTML to PDF
- Blazor HTML to PDF
- Spring Boot HTML to PDF
- Airtable to PDF
- Rails HTML to PDF
- PDF generator API
- Website archiving software
- Document generation API
- Legal document automation software
- Document automation software
- Bulk HTML to PDF
- Accessible PDF generation
- ADA compliance audit cost
- 508 compliance testing
- PDF remediation
- PDF accessibility checker
- Wayback Machine alternative
- Best HTML to PDF API
- DocRaptor alternative
- Puppeteer alternative
- Wkhtmltopdf alternative
- PDFShift alternative
- Urlbox alternative
- PDFCrowd alternative
- Api2Pdf alternative
- Browserless alternative
- APITemplate alternative
- CraftMyPDF alternative
- PDFMonkey alternative
- dompdf alternative
- Gotenberg alternative
- GrabzIt alternative
- Adobe PDF Services API
- PDF SDK pricing
- HTML to image API pricing
- CloudConvert alternative
- CloudConvert pricing
- Direct mail API pricing
- E-signature API pricing
- Sparticuz Chromium Lambda cost
- Browserbase pricing
- Aspose PDF pricing
- PDF API pricing
- How it works
- Features
- Pricing
Early access
Get on the early-access list
The API opens to the list first, in order. Early access locks the planned launch rates for 12 months. No card required, launching soon.