Guide
How to triage a PDF backlog
You have thousands of documents and a deadline. How to find out what you are actually dealing with before committing to a plan, at no cost.
About 20 minutes · moderate
Measure before you plan
The most expensive mistake in a remediation programme is committing to a schedule before knowing the distribution of work. “Forty thousand documents” is not a plan. “Eleven thousand need work, of which two thousand need a person” is.
The census costs nothing. Taggart’s validator is free and unlimited precisely so this step is not a budget item.
The four buckets
Already usable. Tagged, correct reading order, language set, alt text present. Usually documents exported properly from Word or InDesign. Leave them alone.
Mechanical only. Missing title, missing language, missing DisplayDocTitle, headers not artifacted, TH cells without /Scope. All fixable in one pass with no judgement calls. This bucket is where automation earns its keep.
Needs a person. Broken reading order, untagged content, missing alt text, tables that are really layout. Real work, and the bucket that determines your schedule.
Not a PDF problem. Scanned images with no text layer. These need OCR before anything else is possible, and OCR is a different tool and a different budget line.
How to run it
- Gather the files. This is usually the slow part — they are in a CMS, a shared drive and someone’s laptop.
- Run the validator over all of them, exporting JSON per file.
- Bucket by the finding IDs. A document whose only findings are
06-003,07-001and11-001is mechanical. One with09-001or01-005needs a person. One with no text at all needs OCR. - Cross-reference against usage. Your analytics know which documents are actually opened. A 2015 committee minute nobody has downloaded in three years is not the same priority as this year’s application form.
- Now write the plan.
What the numbers usually show
Two things surprise people.
More documents are fine than expected. Anything exported from a well-built template usually passes. If your organisation standardised its templates at some point, everything after that date may be in good shape.
The bad ones cluster. Failures are rarely evenly distributed — they come from a specific template, a specific author, or a specific year. Finding the cluster is worth more than fixing any individual document, because fixing the template fixes the future.
Where Taggart fits
The validator is free and unlimited, and its output is JSON, so bucketing several thousand documents is a script rather than a project:
taggart check report.pdf --json | jq '[.findings[].ruleId] | unique'
The CLI in the Pro tier does folder processing with a report per file, which is the shape you want for a recurring census rather than a one-off.
Frequently asked questions
How long does a census take?
Machine time, minutes to hours depending on volume — Taggart checks a typical document in well under a second. Human time is mostly in gathering the files and deciding the categories, which is usually a day.
What proportion of a typical backlog needs real work?
In our experience roughly a third are already usable, a third need only mechanical fixes, and a third need a person. Your distribution will differ, which is exactly why you measure rather than assume.
Do we have to fix everything?
Read your instrument's exceptions rather than a summary of them — they are narrower than people hope. Then prioritise by consequence: forms first, then anything required to access a service, then the rest.
Related failure conditions
- 01-005 Content is neither marked as Artifact nor tagged as real content Every text-showing, image-painting and path-painting operator on a page must sit either inside a marked-content sequence that maps to the structure tree, or inside an artifact sequence. Content that is in neither is orphaned.
- 09-001 Tags are not in logical reading order The order of elements in the structure tree does not match the order a human would read the page. This is the single most common substantive defect in tagged PDFs and the one Acrobat's own tooling handles worst.
- 31-027 A font dictionary does not contain the ToUnicode entry and no exemption applies A ToUnicode CMap is required unless the font uses MacRoman/MacExpert/WinAnsi encoding, or is a Type 1/Type 3 whose glyph names are all in the Adobe Glyph List or the Symbol set, or is a Type 0 whose descendant uses a standard Adobe character collection, or is a non-symbolic TrueType.
Check your own file. Taggart's validator is free and unlimited — no page cap, no watermark, no account.
Last updated .