PDFScanAccess
A commercial PDF accessibility scanner. Upload a document, pay per scan (or use the free tier), and background workers run 16 automated WCAG and PDF/UA checks before a scored, downloadable report lands in your inbox.
View live demo (opens in new window)
Overview
Most PDFs are inaccessible to screen readers, and most teams have no idea. PDFScanAccess makes the problem visible: upload a document and it audits the file against WCAG and PDF/UA criteria (tagged structure, heading hierarchy, alt text, table headers, font embedding, and more) then returns a scored, downloadable report with fix suggestions.
I designed and built the whole commercial loop: a Nuxt 3 frontend, a FastAPI backend with a Redis/RQ job queue, pay-per-scan checkout, and email delivery. It’s the project where accessibility stopped being a checklist for me and became a product.
What I built
- 16 automated accessibility checks covering tagged structure, heading hierarchy, alt text, and PDF/UA validation via veraPDF. PyMuPDF handles the parsing and Redis/RQ workers run the scans in the background.
- Per-file and aggregate job scoring with pass / fail / review status, delivered as downloadable PDF reports (ReportLab + Jinja2) with per-issue breakdowns and fixes.
- A secure upload pipeline: required ClamAV virus scanning and magic-number validation before any file reaches analysis.
- Pay-per-scan with PayPal checkout and webhook verification, a free tier (up to 2 PDFs / 50 pages), and optional SendGrid report delivery.
- Real-time job status and progress API, backed by SQLAlchemy 2.0 and Pydantic v2, with pytest, Vitest, and Playwright test coverage.
Next project