ARIA-style, TTS-driven accessibility layer for the Tk ecosystem
Project description
🧭 tkaria11y
tkaria11y is a Python framework for building fully accessible Tkinter applications—offering ARIA-style metadata, automatic text-to-speech feedback, keyboard navigation, high-contrast theming, and dyslexic-friendly fonts.
Whether you're crafting GUIs for the visually impaired, dyslexic users, screen-reader users, or simply building inclusive software, tk-a11y gives you a robust set of tools with minimal boilerplate.
🚀 Features
- ✅ Accessible Widget Classes (e.g., AccessibleButton, AccessibleEntry)
- 🎙️ Text-to-Speech Feedback on focus and hover
- 🔍 ARIA-style metadata: accessible_name, role, description
- ⌨️ Logical keyboard navigation with /
- 🎨 High-contrast themes and OpenDyslexic font support
- 🧱 Dynamic widget factory for custom widgets
- 🧪 Runtime widget inspector with metadata overlay
- 🛠️ Type-stub generator for full IDE support
- 📦 Codemod migration CLI (coming soon)
📦 Installation
Install the stable release from PyPI:
bash pip install tk-a11y
Install optional dev tools (testing, type checking, stub generation):
bash pip install "tkaria11y[dev]"
🧪 Quickstart
🔍 Runtime Inspector
Press F2 to open the built-in accessibility inspector:
- Shows widget hierarchy and metadata
- Highlights currently focused widget
- Helps audit accessible names, roles, and navigation
🧰 Developer Tools
Generate Type Stubs
bash python scripts/generate_stubs.py
Creates stubs/widgets.pyi for type checkers and IDEs.
Run Tests
bash pytest
Lint & Format
bash black . flake8 .
🧙♂️ Codemod (Coming Soon)
Automatically upgrade your Tkinter codebase to accessible widgets:
bash tka11y-migrate path/to/your/app.py --interactive
Supports auto-imports, accessible_name inference, and config-based overrides.
📚 Documentation
Documentation lives in the docs/ folder and is published at tk-a11y.readthedocs.io (coming soon).
🤝 Contributing
We welcome accessibility advocates, Tkinter hackers, and curious contributors of all skill levels.
- See CONTRIBUTING.md
- Run tests and generate stubs before submitting PRs
- Open issues for bugs, ideas, or widget requests
- Adhere to our Code of Conduct
📄 License
MIT © [Your Name]
See LICENSE for details.
🙌 Acknowledgements
Inspired by ARIA specs, WCAG principles, open-source accessibility tooling, and the Python community’s commitment to inclusion.
🗺️ Roadmap
Want to see where we're headed? Check out ROADMAP.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tkaria11y-0.0.1.tar.gz.
File metadata
- Download URL: tkaria11y-0.0.1.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
980168e51102b072acf37a7c2fcbf4e8aae6cb95391812d87ca7d84363de134b
|
|
| MD5 |
f5c7c2bfb8a58f629b742cba89e6186a
|
|
| BLAKE2b-256 |
a715af00a2f08ff272d8dd838375c67d683c1608b611ac9f6f275d7f632660a6
|
File details
Details for the file tkaria11y-0.0.1-py3-none-any.whl.
File metadata
- Download URL: tkaria11y-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
931dba35c4cabfdd9085c9fec273294b4274eb4127d52c32eaef9ecd50637b41
|
|
| MD5 |
7dc4ffdbcb0408b94255198b18952ed0
|
|
| BLAKE2b-256 |
3300fe198e3d090529edd2c2b96771c4ffaf1b141dd8635ee8f43fc18545f078
|