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.