About the ADA Document Remediator
1Software Information
Version: 1.0.0
Date: July 8, 2026
Developers: Jeff Osborne, Cursor AI, and Claude Opus
Location: Manchester University, North Manchester, Indiana, USA
Hosted by: Osborne Lab
2Algorithm & Design
Office Open XML parsing: Reads Word and PowerPoint files directly from their underlying OOXML structure (not by converting to HTML first).
Per-format engines: Separate scan/apply pipelines for .docx and
.pptx, sharing format-neutral rules (color contrast math, alt-text quality, link text).
Rule-based checks: Detects ADA, WCAG 2.1 AA, and Section 508 accessibility issues with deterministic heuristics (headings, alt text, table headers, contrast, links, and more).
Human-in-the-loop fixes: Every proposed change is shown beside the content it affects; nothing is written until you approve, edit, or reject it.
True-fidelity preview: LibreOffice renders your file to PDF server-side; PDF.js displays it in the browser so the preview matches Word’s pages or PowerPoint’s slides.
3Key Features
Word (.docx) and PowerPoint (.pptx): Upload either format; the app dispatches automatically on file extension.
Two-pane review: Document preview on the left, proposed fixes on the right, aligned to the line (Word) or slide (PowerPoint) where each issue occurs.
Non-destructive output: Your original file is never modified; approved fixes are
written to a new …_ADA.docx or …_ADA.pptx.
Image alt text: Flags missing, filename-like, generic, or duplicate alt text; drafts suggestions and offers a “mark decorative” option.
Table headers & alt text: Flags tables missing header rows or accessible title/description; drafts both for you to review.
Color & contrast: Detects low-contrast text (WCAG 1.4.3) and meaning conveyed by color alone (WCAG 1.4.1); suggests compliant colors and emphasis options.
Link text: Flags raw URLs and vague “click here” links; suggests descriptive labels from the destination.
Word-specific checks: Fake headings, manual lists, small fonts, and all-caps runs.
PowerPoint-specific checks: Missing slide titles and reading-order issues (flag + suggest; reorder only when you approve that card).
Scan options: Toggle optional checks (color contrast, reading order, small font in lists, and more) before scanning.
Approve all safe: One-click approval of straightforward fixes; structural changes (like reading-order reordering) stay opt-in.
Privacy: All processing runs on this server; uploads live in a temporary per-scan directory that is cleaned up automatically.
4Technical Stack
Backend: Python 3.12 with Flask
Word engine: python-docx and lxml for OOXML access
PowerPoint engine: python-pptx with direct XML for decorative markers and theme colors
PDF preview: LibreOffice headless (writer_pdf_Export /
impress_pdf_Export) plus PDF.js in the browser
Frontend: HTML5, CSS3, JavaScript (ES6+)
Session storage: Per-scan working directories under var/scans/; TTL
cleanup after inactivity
Server: Gunicorn on loopback, with Apache reverse proxy at /ada
5Contact & Support
For questions, bug reports, or feature requests, please contact Jeff Osborne.
Email: jposborne@manchester.edu
Return to the scanner to get started.