About This Project

Mission

The GLOW Accessibility Toolkit helps authors, publishers, and organizations produce documents that comply with the American Council of the Blind Large Print Guidelines and WCAG 2.2 Level AA. The toolkit audits, fixes, and templates Word, Excel, PowerPoint, Markdown, PDF, and ePub documents for accessibility.

GLOW stands for Guided Layout & Output Workflow -- a guided, confidence-building accessibility experience built for real publishing workflows.

Back to top

Organizations

American Council of the Blind (ACB)
The nation's leading membership organization of blind and visually impaired people. ACB publishes the Large Print Guidelines through its Board of Publications, which define minimum standards for font, size, spacing, emphasis, and layout in large print materials.
Blind Information Technology Solutions (BITS)
A special interest affiliate of the American Council of the Blind. BITS members are professionals in the technology field who are blind or visually impaired. BITS sponsors this open source project to advance document accessibility tooling.
W3C Web Accessibility Initiative (WAI)
Develops the Web Content Accessibility Guidelines (WCAG), which this toolkit uses for digital content requirements including contrast, reflow, and line spacing.
DAISY Consortium
An international association of libraries and organizations serving people with print disabilities. DAISY develops the Ace accessibility checker, the Accessibility Metadata Viewer, and the Accessible Publishing Knowledge Base used by this toolkit for ePub accessibility.
Back to top

Standards and References

Back to top

Open Source Dependencies

This project is built with open source software. We gratefully acknowledge the following projects:

Core Libraries

Python libraries used by the GLOW Accessibility Toolkit
Library Version License Purpose
Python 3.13+ PSF Runtime language
Flask 3.1+ BSD-3-Clause Web application framework
Flask-WTF 1.2+ BSD-3-Clause CSRF protection and form handling
Flask-Limiter 3.5+ MIT Rate limiting for abuse prevention
Gunicorn 23.0+ MIT Production WSGI server
python-docx 1.1+ MIT Read, audit, and modify Word (.docx) documents
Mammoth 1.8+ BSD-2-Clause Convert Word documents to clean HTML
openpyxl 3.1+ MIT Read and audit Excel (.xlsx) workbooks
python-pptx 1.0+ MIT Read and audit PowerPoint (.pptx) presentations
PyMuPDF (fitz) 1.24+ AGPL-3.0 Read and audit PDF documents
MarkItDown 0.1+ MIT Convert documents and audio to Markdown (Microsoft)
DAISY Ace 1.3+ MIT EPUB accessibility checker -- 100+ axe-core rules + EPUB metadata validation (DAISY Consortium)
DAISY a11y-meta-viewer 2.0 CC BY-NC-SA 4.0 Reference implementation of the W3C Accessibility Metadata Display Guide 2.0 -- generates human-readable accessibility statements from EPUB metadata (DAISY Consortium)
Pandoc 3.1+ GPL-2.0 Universal document converter -- transforms Markdown, Word, reStructuredText, OpenDocument, Rich Text, and ePub into accessible HTML, Word (.docx), EPUB 3, and PDF (via WeasyPrint) with embedded ACB Large Print formatting (John MacFarlane, University of California, Berkeley)
WeasyPrint 62.0+ BSD-3-Clause CSS-based PDF rendering engine -- converts Pandoc HTML output to accessible PDF with ACB BOP print formatting (Arial 18pt, 1.15 line spacing, 1-inch margins, @page rules). Uses Liberation Sans font (metrically identical to Arial) for consistent print typography (CourtBouillon)
DAISY Pipeline 2 1.15+ LGPL-3.0 Advanced document conversion engine -- Word to EPUB 3, HTML to EPUB 3, EPUB to DAISY 2.02, EPUB to DAISY 3/DTBook. Used for producing accessible e-books and talking book formats (DAISY Consortium)

Optional and Build Dependencies

Optional libraries used for GUI, testing, and packaging
Library Version License Purpose
wxPython 4.2+ wxWindows (LGPL-like) Desktop GUI (wizard interface)
pytest 8.0+ MIT Test framework
PyInstaller 6.0+ GPL-2.0 (with exception) Windows desktop executable packaging
Inno Setup 6.0+ Inno Setup License (free) Windows installer (.exe) creation

Infrastructure

Infrastructure and deployment components
Component License Purpose
Docker Apache 2.0 Container runtime for web deployment
Caddy Apache 2.0 Reverse proxy with automatic HTTPS
OpenJDK (JRE) GPL-2.0 + Classpath Java runtime required by DAISY Pipeline 2
Back to top

Project Information

Source code
github.com/accesswatch/acb-large-print-toolkit
Changelog
View the complete project history
License
MIT License
Author
Jeff Bishop, President of BITS
Current release
1.0.0
Desktop tool version
1.0.0
Web application version
1.0.0
Python version
3.13+
Back to top

Stress Testing

The toolkit includes a reproducible synthetic Word-document stress harness for the heading-detection and fixing pipeline. The current corpus covers 1000 heading scenarios across 1000 generated documents.

These generated documents deliberately mix ACB-conformant content with failure patterns such as centered titles, justified paragraphs, hanging indents, faux headings, signature blocks, copied web formatting, and body-text emphasis drift. Each failure that proves useful is folded back into the audit rules, fixer behavior, or online help so the product learns from the corpus instead of letting that knowledge stay trapped in tests.

Validation transparency: For the current 1,000-document scale, maintainers measure four things: full-suite test health, direct detector-vs-ground-truth accuracy, denser randomized accuracy, and full fix-then-audit ACB compliance. The current measured runs were clean.

What we learned: The biggest risks were not crashes. They were subtle document-policy gaps, especially short false positives and correctly detected headings that still needed hierarchy or text cleanup after repair.

How the platform changed: We strengthened false-positive handling, widened random scenario coverage, and added heading normalization so converted headings no longer leave behind ALL CAPS text or skipped levels.

What the documents represented: The generated files stood in for the kinds of Word documents people really upload: agendas, newsletters, policy manuals, legal outlines, training handouts, appendices, email-style content, and plain-text paste with no real heading styles. The goal was to test realistic document behavior, not just isolated heading samples.

Back to top

Acknowledgments

This project would not be possible without the tireless advocacy of the American Council of the Blind and the volunteers who authored and maintain the ACB Large Print Guidelines. Special thanks to the ACB Board of Publications for establishing clear, enforceable standards that make printed and digital materials accessible to people who are blind or have low vision.

We gratefully acknowledge the DAISY Consortium for their leadership in accessible publishing. This toolkit relies on three DAISY projects: DAISY Ace for EPUB accessibility validation, the DAISY Accessibility Metadata Viewer for human-readable display of EPUB accessibility metadata per the W3C Accessibility Metadata Display Guide 2.0, and DAISY Pipeline 2 for advanced document-to-EPUB and EPUB-to-DAISY conversions that produce accessible publications for e-readers, refreshable braille displays, and DAISY players.

The HTML conversion engine is powered by Pandoc, the universal document converter created by John MacFarlane. Pandoc transforms Markdown, Word, reStructuredText, OpenDocument, Rich Text, and ePub files into accessible HTML with ACB Large Print styling.

Thanks also to the BITS community for testing, feedback, and ongoing development support, and to the open source maintainers whose libraries make this toolkit possible.

Back to top