From 4ae0bddb40f9a178c857904858cac439b5050b78 Mon Sep 17 00:00:00 2001 From: Benjamin Mako Hill Date: Thu, 13 Aug 2026 18:21:38 -0700 Subject: [PATCH] README: point the verification section at veraPDF The section previously led with a pikepdf one-liner and described veraPDF as unavailable because it is not in Debian. It is available, just not from apt, and it is the only check that actually tests the PDF/UA-2 claim these templates make rather than merely confirming a structure tree exists. Verified against the templates: all four tagged builds pass ua2, and the pre-fix builds of the paper and memo fail it. So this check would have caught the untagged-but-declared-UA-2 state at any point; it was simply never run. Co-Authored-By: Claude Opus 5 (1M context) --- README | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/README b/README index eca5413..023525b 100644 --- a/README +++ b/README @@ -122,16 +122,29 @@ build their headings and title blocks from the article class's own Verifying --------- -To see whether a PDF really carries structure, open the tag tree in a -PDF reader that shows one, or check for the tags directly: +Check a built PDF against the standard with veraPDF: + + verapdf -f ua2 text.pdf + +It prints PASS or FAIL for the file, and --format text will list the +clauses that failed. All four of the tagged templates pass as shipped, +so a FAIL means something in the document needs attention rather than +something in the template. + +Run it. A document that declares PDF/UA-2 and does not meet it is +worse than one that makes no claim, because the claim is what a reader +relying on assistive software will trust. The declaration costs one +line and validating it is the only thing that makes the line true. + +veraPDF is not packaged in Debian; download it from +https://verapdf.org/ and put it on your PATH. + +For a quicker look at whether a PDF carries any structure at all, +without checking conformance: python3 -c "import pikepdf,sys; d=pikepdf.open(sys.argv[1]); \ print(d.Root.get('/StructTreeRoot') and 'tagged' or 'UNTAGGED')" file.pdf -That confirms structure exists but not that the file conforms to -PDF/UA-2. Full conformance checking needs veraPDF -(https://verapdf.org/), which is not packaged in Debian. - Posters -------