PDF Accessibility Platform · 2026
Making Every Document Accessible
Drop in a PDF, Word or Excel file — get back a tagged, screen-reader-friendly,
PDF/UA-compliant document, plus proof of what was fixed and what still needs a human eye.
Why this matters
The business & compliance case
The problem: most PDFs are invisible to blind and low-vision users. No tags, no headings,
no image descriptions, no reading order — a screen reader sees a wall of unstructured text, or nothing at all.
⚖️Law — EU Accessibility Act
Organizations must ship accessible documents. Non-compliance carries real regulatory and reputational risk.
👥Inclusion
Roughly 1 in 20 people rely on assistive technology to read.
🔁Volume
Thousands of legacy PDFs = weeks of manual remediation.
The manual reality — per document, by hand
30 min – hours / file
Remediating one PDF by hand takes a specialist a long time, and the result is inconsistent. It doesn't scale.
📄 Untagged PDFinvisible to screen readers
→one command
minutes
♿ Accessible PDFtagged & verified
2
What the application does
The technical core
It automates the entire accessibility remediation pipeline. You give it a document — it gives you a compliant one, plus a full paper trail.
InputPDF · Word · Excel
→
Readtext · images · tables · fonts
→
Fix metadatatitle · language · PDF/UA id
→
Rebuild structureheadings · lists · tables · order
→
Describe imageslocal AI-vision alt text
→
✅ Tagged PDF
📋 Proof & report
🎯Deterministic first, AI where it counts
Metadata, tags, headings, links and reading order are pure logic — same result every time, no API key. AI is used only where judgment is needed: the audit and per-image descriptions.
🛡️Never fails into a worse document
Every output is checked by built-in rules and an independent PAC / Matterhorn test before it ships. No valid input is ever made less accessible.
3
How you use it & why it's important
From bottleneck to repeatable step
The experience: drop files in the browser, watch it run live, download one zip.
🖱️ Drop filesin the browser
→
⚙️ Watch it runlogs · checks · preview
→
⬇️ One zip
✅ The fixed PDF
📊 Before / after report
👁️ Screen-reader preview
📝 Human-review checklist
Before
✕Hours of specialist time
✕Unusable by assistive tech
✕"We think it's accessible"
After
✓Minutes, unattended
✓Tagged, PDF/UA-ready
✓Independently verified
Why it's important: it turns accessibility from a slow, expert-only bottleneck into a fast, repeatable, verifiable step — so an organization can make every document inclusive and stay compliant, at scale.
Everything runs locally; AI passes are optional — a valid, tagged PDF is produced even with zero AI.
4
A real example
Proof, with evidence attached
A 2-page PDF from our test set (Newtest.pdf), run through the tool. The audit found
10 accessibility problems a screen-reader user would hit — all fixed and verified.
The findings, by the numbers — from the run's report.json
| Severity | # | Category | # |
| 🔴 Critical | 1 | Tables | 6 |
| 🟠 High | 7 | Metadata | 2 |
| 🟡 Medium | 2 | Headings | 1 |
| Total | 10 | Alt text | 1 |
Issues caught & fixed:
missing titlemissing language
table headers missing scopebroken heading hierarchy
undescribed images
Each is invisible in a normal viewer but a wall for a screen-reader user. The tool turns "looks fine to me" into "provably usable by everyone," with evidence attached.
✕ Before — 10 findings
1 critical · 7 high · 2 medium — no title, no language, tables missing header scope, images without descriptions, broken heading hierarchy.
✓ After — verified
Title · language · PDF/UA id set, tables tagged with header scope, AI-described figures, reading order + headings repaired — passes built-in checks + independent PAC test.
5
Automation & scheduling
Unattended, at scale — hands-off remediation
Point it at a folder and walk away. Documents are picked up, remediated, verified and delivered on a schedule — no operator in the loop.
⏱️Scheduler
A built-in 60-second heartbeat inside the app fires each folder when its interval is due. Survives restarts and catches up a missed run — no OS cron to configure.
☁️Cloud sync
SharePoint · Dropbox · local folders. Multiple watched folders run concurrently; a ledger skips already-processed files; results delivered as a signed ZIP, originals moved to a processed folder.
⚡Urgent priority
An urgent folder preempts normal work: running jobs are paused (SIGSTOP) and resumed automatically, so a rush job is never stuck behind a big batch.
🧹Retention & logs
An hourly sweeper enforces deletion windows. A daily JSONL log records throughput, timings and files produced — persistent across restarts.
Honest by design: scheduling runs in-process (a self-managing heartbeat), not as an external OS cron job — one less moving part to deploy, monitor and secure.
6
Data protection & DSGVO
Local-first by architecture, not by policy
✓ All 9 workstreams shipped — July 2026
Local-LLM · no cloud egress
🔒Nothing leaves the machine
✓Local document processing — no file is sent anywhere unless a cloud feature is explicitly switched on.
✓Local AI by default — alt text, titles, language & structure via on-device Ollama (qwen2.5:7b + llama3.2-vision). Image & text content never leaves the computer.
✓OpenAI only per explicit opt-in — the server refuses the cloud audit without recorded consent.
📁Accountable & controllable
✓Encrypted cloud credentials — AES-256-GCM at rest.
✓Automatic retention & full Art. 17 directory deletion.
✓Audit log (Art. 5 (2)) — uploads, downloads, deletions, settings & login events.
✓No tracking — report.html is fully self-contained, zero external assets.
Data-protection controls (retention window, metadata scrubbing, audit) are live switches shown green on the /dsgvo page the moment they are enabled — status reflects reality, never a marketing claim.
7
PDF/UA-2 status
UA-1 today, UA-2 fail-closed & verified
✅PDF/UA-1 — every output
The primary document is tagged to PDF/UA-1 natively and checked against the built-in Matterhorn/PAC rules and optional external veraPDF validation. This is the guaranteed baseline for every file.
Native taggingMatterhorn / PACveraPDF-validated
🆕PDF/UA-2 — the *.ua2.pdf variant
▸PDF 2.0 + structure namespaces + pdfuaid:part=2, with MathML attached per formula (/AF).
▸Structural only — never changes the visible page. Primary output stays UA-1.
Fail-closed: the *.ua2.pdf file is written only when veraPDF's ua2 flavour confirms conformance. The tool never claims UA-2 on its own — an in-process UA-2 checker runs informationally alongside.
Deferred (transparent): true typographic MathML from a formula source (e.g. OMML from DOCX) — today an honest text fallback is embedded; formulas without alt text withhold the variant rather than ship an unverified claim.
8
Exported files — what is what
One upload, purpose-built variants
Every run produces the compliant primary PDF, plus targeted sidecar variants — only when there is actually something to fix, so fewer files is normal.
| File | What changed vs. the original | Visible difference |
*.max.pdf Primary | All tag-structure & metadata fixes: tagging, reading order, alt texts, headings, tables, language, bookmarks, XMP. | None — invisible accessibility layer. Always safe to publish as a faithful replacement. |
| *.contrast.pdf | Primary plus WCAG 1.4.3 contrast repairs: low-contrast text recoloured, images recoloured or given backing plates. | Yes — colours. Should be reviewed. |
| *.content.pdf | Primary plus content fixes: uninformative link text rewritten ("here" → descriptive), visible H1 injected when missing, XFA form data removed. | Yes — wording. Should be reviewed. |
| *.contrast.content.pdf | Both of the above, stacked. | Yes — colours & wording. |
| *.ua2.pdf | Primary upgraded to PDF/UA-2 (PDF 2.0 + namespaces + MathML/AF). Written only when veraPDF confirms. | None — visually identical to *.max.pdf. |
9
The reporting every file gets
Not just a fixed PDF — a defensible audit trail
🔍Verifier
Before/after checks on the input and remediated output — language, title, PDF/UA id, tagging, figures-have-alt.
verify.input · verify.max · verify.verapdf · verify.ua2
🧪PAC & quality
Independent Matterhorn / PDF/UA-1 test, plus 15 plain-language quality checks (link text, table headers, headings, alt-text sanity…) each with impact & how-to-fix.
pac.input · pac · pac.content
📊Optimize reports
feedback — which alt text, from where (local AI / existing / placeholder). contrast — before/after colour + ratio. content — wording fixes. visual — before/after page screenshots of touched pages.
📄report.html
One self-contained, shareable HTML report — zero external assets, no trackers. Opens anywhere, safe to archive.
🗂️Processing log
A persistent daily JSONL record: throughput, per-step timings and files produced — survives restarts, feeds the /reports dashboard.
🛡️Audit log
Every upload, download, deletion, login and settings change — the accountability trail for Art. 5 (2) DSGVO.
Result: for every processed file you can show what was wrong, what was changed, who made the AI descriptions, and that an independent validator agrees — turning "trust us" into evidence.
10
EU AI Act — AI transparency
Mandatory disclosure — in the report and in every PDF
✓ Article 50 transparency — built in
Travels with the file
🧾In the report — "EU-AI Rules"
✓Which models ran — local qwen2.5:7b + llama3.2-vision on-device, or an external service only on explicit opt-in.
✓AI-changed text & alt-text, itemised before → after — every title, link, heading and image description the AI produced.
✓Honest scope — states plainly when no AI was used, and that no image pixels are AI-altered.
🏷️In the PDF metadata (XMP)
✓Machine-readable disclosure embedded in every exported PDF — a dedicated aiUsage namespace: models, provider, counts, ImagePixelsAltered=false.
✓Human-readable line mirrored into dc:description — visible in Acrobat / Preview → Document Properties.
✓Conformance-safe — veraPDF ua1 stays compliant; the disclosure inherits into every variant.
aiUsage:AIUsedTextModelVisionModeldc:description
Only genuine AI output is disclosed — deterministic fixes (tagging, ToUnicode repair, contrast) are never claimed as AI. Now mandatory under the EU AI Act (Art. 50): every recipient can see exactly where, and by which model, AI contributed — from the report and from the file itself.
11
Why it wins
Technical rigor first —
business value follows.
Provably correct
Deterministic engine, independent PAC/veraPDF verification, fail-closed UA-2 — every claim is measured, never asserted.
Ready for the business
Fast & unattended, DSGVO-safe local processing, scheduled cloud sync, and an audit trail for every single file.