automated-accessibility-enhancer is a Python-based tool that processes .pptx files to improve their accessibility by automatically tagging headings and correcting reading order. The script takes a directory of PowerPoint files as input and outputs a new directory of updated, accessibility-enhanced presentations, while preserving original layout and visual design.
This project was developed as part of the University of Washington Advancing Accessibility for Engineering Education initiative, under the guidance of Prof. Anant and Dr. Lalitha Subramanian. The work has been presented at EDUCAUSE 2025 Online as part of a broader effort to scale accessibility remediation in instructional materials.
Feedback on the design, architecture, or implementation is very welcome. You can reach me via email or LinkedIn.
At a high level, the tool:
- Ingests a directory of
.pptxfiles - Parses slide structure and elements
- Automatically identifies and tags headings
- Updates reading order to improve screen reader navigation
- Writes updated
.pptxfiles to a separate output directory
The core processing logic is implemented in Python and is designed to be deterministic and non-destructive to slide content and aesthetics.
Planned or exploratory enhancements include:
- Image alt-text generation using vision-language models
- Support for additional file types, such as PDFs or exported Prezi files
- Configurable rules for heading detection and structure inference
- Batch processing safeguards, including validation and rollback
- Optional GUI or CLI wrapper for easier use by non-technical users
- Integration into automation platforms (e.g., self-hosted workflow engines)
Some of the main challenges encountered so far include:
- File I/O and execution context constraints when integrating Python-based file processing into external automation workflows
- Handling binary PPTX data reliably across different orchestration environments
- Scalability and storage management, especially for batch uploads
- Platform limitations in free or self-hosted automation tools compared to managed cloud offerings
- Balancing automation with accuracy, particularly for complex slide layouts
These constraints are actively being explored, and design tradeoffs are documented as the project evolves.
The core Python script is functional for local, directory-based processing. Work is ongoing to improve robustness, extensibility, and integration into larger accessibility pipelines.
Contributions, feedback, and design discussions are encouraged.
