A fully accessible desktop application launcher with speech output and a BrailleNote-inspired function key interface.
- 20 built-in plugins: Audio Recorder, Books, Calculator, Contacts, Dictionary, Email, Files, Help, News, Notes, Podcasts, Radio, Settings, Telegram, Timer, To-Do, Translator, Weather, Wikipedia, YouTube Player
- Category navigation: Left/Right to switch categories, Up/Down to browse items
- Type-to-filter: Start typing to search plugins by name
- Full speech output (SAPI via Windows TTS)
- Function key shortcuts (F1-F12) for all common actions
- Ctrl+F: Read any foreground window via UI Automation
- Ctrl+O: System menu — battery status, shutdown, restart, sleep, network info, disk space, and more
- Setup wizard on first run with rate, volume, speech toggles
- All controls accessible: focus tracking, text character echo, screen reader friendly
git clone https://github.com/yourusername/main-menu.git
cd main-menu
pip install -r requirements.txt
python main.py
| Key | Action |
|---|---|
| Left / Right | Switch plugin category |
| Up / Down | Select plugin |
| Enter | Open plugin |
| F1 | Help |
| F2 | Settings (rate, volume, speech) |
| F3 | Read current screen |
| F4 | Announce time and date |
| F5 | Reload plugins |
| F6 | About |
| F7 / F8 | Volume up / down |
| F9 / F10 | Speech speed up / down |
| F11 | Toggle speech on/off |
| F12 | Quit |
| Ctrl+F | Read any foreground window |
| Ctrl+O | System menu |
| Escape | Clear filter or quit |
| Type any letters | Filter plugins by name |
main-menu/
main.py # Entry point, UI, navigation
voice.py # TTS engine (SAPI)
accessible.py # Focus tracking and accessibility helpers
audio.py # Sound effects manager
plugin_manager.py # Auto-discovers plugins
settings.json # User preferences (ignored by git)
sounds/ # Audio files
plugins/ # All 20 plugins
This app is designed for blind and low-vision users. NVDA and other screen readers should not interact with the app — all speech is handled internally via SAPI. The app uses Qt's accessibility API to announce control names, types, and values on focus, and announces each typed character in text fields.