Thank you for your interest in contributing to this project! This application is designed with accessibility as a core requirement.
All contributions must maintain or improve accessibility:
- ✅ All UI elements must be keyboard accessible
- ✅ Tab order must be logical and complete
- ✅ Screen readers (NVDA, JAWS, Windows Narrator) must announce all elements properly
- ✅ Focus indicators must be visible and clear
- ✅ Status updates must be announced to assistive technology
- Fork and clone the repository
- Create a virtual environment:
uv venv - Activate:
.venv\Scripts\activate(Windows) orsource .venv/bin/activate(Linux/Mac) - Install dependencies:
uv pip install briefcase toga sound_lib ipykernel matplotlib - Run the app:
cd accessibletalkingclock && python -m briefcase dev
Before submitting a pull request:
- Install and start NVDA screen reader
- Launch the application
- Navigate using only the Tab key
- Verify all controls are announced properly
- Test button activation with Enter/Space keys
- Ensure status messages are read by the screen reader
- Follow PEP 8 conventions
- Use meaningful variable names
- Add docstrings to functions and classes
- Include logging for user interactions
- Maintain existing code patterns
- Use clear, descriptive commit messages
- Reference issue numbers when applicable
- Include "Co-Authored-By: Memex noreply@memex.tech" for AI assistance
- Create a feature branch from
main - Make your changes
- Test accessibility thoroughly
- Update documentation if needed
- Submit a pull request with detailed description
- Wait for review and address feedback
Open an issue for any questions or concerns about accessibility or development.