PDF Accessibility Tag Checker

Checks a PDF's internal structure against the requirements PDF/UA and Section 508 are actually built from: is it a tagged PDF (a structure tree a screen reader can follow), does it have a title and a declared language, do its images have alternate text, do form fields have an accessible name, and does every page have a real text layer rather than being an un-OCR'd scan. Runs entirely in your browser -- the file is never uploaded. Preparing for ADA Title II's April 2027/2028 deadlines? PDFs your site links are "web content" under that rule too.

1. Choose a PDF (nothing is uploaded)

Drag a PDF here, or

Waiting for a file.

2. Or batch-scan a whole document library with the CLI

Node.js, no dependencies to install -- checks the exact same things as the browser page:

node cli/check.mjs ./document-library/ --json

Get check.mjs, engine.mjs, and pdf-parser.mjs from the repo — plain Node, nothing to install. It only ever reads the files you point it at; nothing goes through this site. Point it at a folder to scan every .pdf in it (recursively), or list files directly. Exits non-zero if any file has a finding, so it works as a CI or scheduled-job gate.

Common questions

Does a clean report mean my PDF is PDF/UA or Section 508 compliant?

No. This checks a specific set of automatable structural signals -- tagging, title, language, an approximate image/alt-text count, form-field labels, and whether a page has a text layer at all. It cannot judge whether an alt-text string is accurate, whether the reading order is actually correct, or run a real assistive-technology test. Treat a clean report as evidence about these specific checks, not a compliance determination -- PDF/UA and Section 508 both require things this tool cannot verify from structure alone.

Is my PDF uploaded anywhere?

No. The browser page reads the file you choose entirely inside your own tab, using the browser's native DecompressionStream API to read compressed PDF streams -- nothing is sent to this site or anywhere else. The CLI reads the file directly on your own machine. This matters for government and legal documents that may contain information you would rather not hand to a third-party server, which is what most other free online PDF accessibility checkers ask you to do.

Why does this check PDF tags instead of just running a visual accessibility scanner?

A PDF's accessibility to a screen reader depends on structure that isn't visible on the page at all: a tag tree describing reading order and roles, a declared language, and alternate text attached to images in the structure tree, not just present somewhere in the file. PDF/UA and Section 508 are both built around this "tagged PDF" requirement, so checking the structure directly is what actually answers the question, the same way an HTML accessibility checker reads the DOM rather than a screenshot.

What does the "approximate" alt-text count actually mean?

This tool counts image objects in the document and, separately, structure-tree elements that carry non-empty alt text, and compares the two totals. It does not walk the marked-content ID chain that maps one specific structure element to one specific image, so it cannot say for certain which image is missing alt text -- only whether the document-wide totals suggest some or all of them are. Zero alt-bearing elements against one or more images is reported as a clear finding; a partial count is reported as a notice to review by hand.

Why is there also a CLI, not just the browser page?

A government IT office or university disability-services team usually has a document library, not one PDF -- an accessibility pass means checking hundreds of them. The CLI takes a folder and reports every PDF in it in one run, which is the shape you actually want for a batch remediation project or a recurring CI/scheduled check on newly-published documents. It shares the exact same checking code as the browser page, so the two can never silently disagree.

Preparing web-page (not PDF) evidence for the same deadline? See the ADA Title II deadline lookup and WCAG evidence report. Buying software rather than publishing your own PDFs? See the VPAT/ACR generator for a vendor's own accessibility conformance report.