Skip to main content
ADA / WCAG PDF Cleaning Features Added for Difficult PDFs

We fed some difficult PDFs into our ADA cleaning process and some could not be cleaned fully, so we dove into how we might be able to clean them. We were successful creating software updates that tackle the toughest glyph-font errors (think wingdings). Those can now surgically be removed, and the system now snapshots the exact area that is failing in the scan.

By continually improving the ADA / PDF cleaner, it will get smarter and work more thoroughly over time.


Details of Improvement:

  • Preview: the scan worker now locates every unmapped character (font + char code, including dingbat checkmarks hiding in annotation appearance streams, where the annotation /Rect gives an exact position) and renders a cropped page snippet with a red box around the offending mark. The vague "1 place · page 1" becomes a picture. I verified it end-to-end on a synthetic dingbat PDF — the preview shows "permit: □□□ Approved" with the squares boxed in red.

  • Map to text (the preferred fix): quick chips (Checked box, Empty checkbox, Checkmark, Bullet, Arrow, Star) or free text → pikepdf writes/merges a /ToUnicode CMap. Zero visual change, clears 7.21.7 honestly. No new dependencies — pikepdf + pypdfium2 + Pillow, all already pinned.

  • Remove this mark: surgical strip of just that character code (not the whole font), with a consent checkbox, snapshot-first via the standard save_back path, verification rescan after.

  • Accepted — won't fix: per-issue waiver with optional note. Honest by design — the card dims, moves to the bottom, and explicitly states it still counts against the compliance score.

More: CMS Feature Updates