Free & open source · MIT license

The last mile of PDF accessibility,
without the enterprise price tag

LastMilePDF is a free desktop app for cleaning up the tag structure behind PDF/UA and WCAG compliance — built for the accessibility work that auto-taggers leave half-finished, and designed to make the manual pass fast and easy, especially for scanned PDFs.

LastMilePDF in its dark theme. A PDF page preview fills the left pane, with a bulleted list on the page outlined in teal and labelled /L. The tag tree in the middle has that list's /L tag selected and expanded to show its /LI, /Lbl and /LBody children. Tag properties on the right show the role "L", empty language and alt text fields, and a live list preview of the four bullet items.
Dark theme
The same window in the light theme: identical document, identical selected list tag, on a white background with darker text and outlines.
Light theme
Why it exists

Accessibility remediation is a mandate, and Acrobat alone doesn't cut it.

Universities and nonprofits are under real, growing pressure to make PDFs accessible — course materials, grant reports, public filings, scanned archives. Most of that work is manual tag cleanup, and most institutions doing it are stretched thin on both staff and software budget.

🎓

Built for the compliance reality

Title II ADA rules, Section 508, and WCAG 2.1 AA obligations apply to campus course content, public-facing documents, and grant deliverables alike. The gap is almost always in the tag tree, not the visible page.

💸

Not another per-seat license

LastMilePDF is free and open source under the MIT license. Use it on as many machines as you need — a disability services office, a library digitization lab, a one-person communications team — without a procurement cycle.

🤝

A companion, not a replacement

It doesn't OCR or auto-tag — it makes the manual review and cleanup pass fast. Keep using whatever auto-tagger or Acrobat license you already have; LastMilePDF covers the editing experience Acrobat's UI makes painful.

Features

Everything the last mile of tagging actually needs

Keyboard-first tag editing, built specifically around the repetitive cleanup work that scanned and auto-tagged PDFs generate.

/TagFast structural editing

Reorder, retype, merge, and delete tags with keyboard shortcuts built for doing it hundreds of times in a row — not for occasional use.

/TableTable editor with auto-scope

Fix table headers and scope automatically instead of hand-tagging every <TH>/<TD> relationship.

✏️ Tag straight from the page

Drag a rectangle over the page and press one key to tag what's underneath. Text is cut at the rectangle's edges, so a heading swallowed into the paragraph below comes out as a real heading, and a box around bullets or a hanging-indent reference list becomes a properly structured list.

/TableDraw a table over a scan

Drag a rectangle over a scanned table and the rows and columns are guessed for you. Adjust the dividers, or let AI lay out the grid, then build the whole table in one step.

✂️ Split content

Cut a run of page content in two — a list label from its item, a run-in heading from its paragraph — so each half gets its own tag.

🔍 Find/Replace for tag types

Bulk-correct a mis-tagged role across the whole document in one pass.

🧩 Visual script builder

Sequence repeated cleanup actions into a saved script, then run the same fix across every document in a batch of scans.

🪄 One-click flatten

Strip extraneous span/div tags that auto-taggers leave behind, without touching the content that matters.

🤖 Optional AI-assisted OCR proofing

Fix OCR errors in Actual Text with any AI provider you choose, including one your university hosts. Every change is highlighted for review, with one-click revert.

🖼️ Catch missed figures

Tag figures on scanned pages that the auto-tagger skipped, and filter straight to figures when it's time to add alt text.

🗂️ Filters for every pass

Narrow the tree to Figures, Tables or Lists, to the tags still missing alt text, to empty ones, or to just the ones an AI fix changed.

🚶 Guided walk mode

Walk the tree automatically at the pace you set — no more holding down the arrow key through a 40-page document.

👁️ Proofread & AT-diff views

Compare OCR text against the source image side by side, and highlight any difference between Actual Text and OCR so you can review your own edits.

✨ Smartifact

Artifact full-page decorative figures in one click — the fix for auto-taggers that generate a spurious figure tag on every scanned page.

✅ Built-in accessibility check

Run the common PDF/UA and WCAG checks locally, jump straight to each failure, and repair the mechanical ones in a click.

♻️ Artifacts tab

List everything the file marks as an artifact, and tag it back into the tree when it was skipped by mistake.

📍 Picks up where you left off

Reopen a document and it comes back to the tag, the expanded branches and the page you left it on.

Works with Claude

Let Claude take a pass while you watch

Turn on the Desktop Agents connection and a Claude session on the same computer, in the Claude desktop app or Claude Code, can work on the PDF you have open. Ask it to fix one table, every table like it, or the whole document.

👀

Sees what you see

The page you're on, the tags you've selected, the whole tag tree, the Verify report and pictures of any page. It turns the page and selects tags to show you what it means.

🛠️

"Fix this PDF"

One request runs a full remediation pass from instructions you can rewrite: heading outline, lists and tables split across pages, captions, alt text, bookmarks, title and author, then a report of what still needs a person.

↩️

You stay in charge

You watch the edits land, Esc takes control back, and a whole session is one undo. Claude can't open or save files, and only programs on your own computer can connect.

See it

A closer look at the parts that save the most time

Three of the places the manual pass usually gets slowest: proofreading OCR text against the page, sorting out table headers, and working out what still needs fixing.

Proofread Mode in the dark theme. The page preview sits on the left, a wide Actual Text field in the middle holds the selected tag's text with the words an AI pass changed highlighted in yellow, and a narrow tag tree strip on the right marks each corrected tag with an "AI fix" badge. A bar below the field reads "AI fix applied — changes highlighted" next to a Revert button.
Proofread Mode with AI-assisted OCR fixes. The page image and the text it produced sit side by side, every AI change is highlighted for approval, and Revert puts the original back. The tag strip flags which tags were touched.
The Table Editor dialog in the light theme, showing a five-row table as an editable grid. Header cells carry scope arrows — a down arrow for column scope, a down-and-right arrow for both — and a red cross marks one header with no scope set. The cell reading "Trieste, 1909-1912" is selected, with column span, row span, and "Convert to Header (TH) or Data (TD)" controls along the bottom.
Table editor with scope at a glance. Edit cells in place, add or delete rows and columns, set spans, and convert between header and data cells — with each header's scope shown as an arrow, so a missing one is obvious.
The Accessibility Check dialog in the light theme, reporting "4 failed checks". Results are grouped under Document, Bookmarks and Headings, and every row is marked with a tick, a cross or a dash beside its name: "Tagged PDF" passes, "Document title" fails with "No document title is set", and "Bookmarks present for long documents" is marked not applicable.
A checker that says what to fix next. Common PDF/UA and WCAG problems, grouped and explained, with an inline Repair button on the ones the app can fix for you. Each result is marked by shape as well as colour, so the report itself doesn't depend on distinguishing green from red.
Honest scope

What it's for, and what it's deliberately not

✅ What LastMilePDF is for

  • Cleaning up and correcting tag structure that a tagger already produced
  • Fast manual editing of roles, reading order, alt text, and Actual Text
  • Table structure and scope review
  • Bulk fixes via find/replace and saved scripts
  • OCR proofreading with optional AI assistance you control
  • Handing a first pass, or a whole document, to Claude while you review

⚠️ What it doesn't do (yet)

  • It can't run OCR
  • It can't auto-tag an untagged PDF from scratch
  • It doesn't currently support full manual tagging of a document with no structure at all

It's meant to complement the tools you likely already have — an auto-tagger and/or Adobe Acrobat — by making the manual review and correction pass fast.

Download

Get LastMilePDF

Free, MIT-licensed, no account required.

Windows & Linux
Checking the latest release…

Installers are unsigned, so Windows SmartScreen will show a warning on first launch — click "More info" → "Run anyway." Linux AppImages need chmod +x and, on some distros, libfuse2. macOS isn't packaged yet; running from source works, see the README. All releases are visible on the GitHub releases page.