ProGame Vocational
A VS Code extension designed to teach Python programming to visually-impaired students using NVDA screen reader, with support for English, Telugu (తెలుగు), and Kannada (ಕನ್ನಡ).
✨ Features
- Learn-Practice-Quiz Pedagogy: Structured learning approach with three stages
- Multi-lingual Support: Learn in English, Telugu, or Kannada
- NVDA Screen Reader Optimized: Specially designed for NVDA compatibility
- Sequential Lesson Progress: Lessons unlock as you complete previous ones
- Code Validation: Built-in syntax and structure checking
- Accessible Quiz Interface: Screen reader-friendly multiple-choice questions
- Progress Sync: Your learning progress syncs across devices
🎯 Target Audience
This extension is specifically designed for:
- Visually-impaired students learning Python
- NVDA screen reader users
- Students who prefer learning in Telugu or Kannada
- Beginners in programming
📋 Requirements
Required Software
- VS Code: Version 1.107.0 or higher
- NVDA Screen Reader: Version 2023.1 or later (recommended)
- Python: Version 3.x for code execution
NVDA Language Support
For Telugu/Kannada support:
- eSpeak NG with Telugu language pack
- eSpeak NG with Kannada language pack
- Automatic language switching enabled in NVDA
🚀 Getting Started
1. Install the Extension
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "ProGame Vocational"
- Click Install
2. Enable Screen Reader Mode
Critical for NVDA users!
The extension will prompt you to enable Screen Reader Mode when first activated. Click "Yes" and restart VS Code.
Or manually:
- Open Settings (Ctrl+,)
- Search for "accessibility support"
- Set
Editor: Accessibility Support to "on"
- Restart VS Code
3. Sign Up or Log In
- Press
Ctrl+K then I to log in, or Ctrl+K Shift+I to sign up
- Enter your license key when prompted (
Ctrl+K then E after login)
4. Select Your Language
- Open Command Palette (Ctrl+Shift+P)
- Run:
ProGame Vocational: Select Language
- Choose: English, Telugu, or Kannada
5. Start Learning
- Open Command Palette (Ctrl+Shift+P)
- Run:
ProGame Vocational: Next
- Follow the Learn → Practice → Quiz workflow
📚 Available Commands
| Command |
Description |
Keyboard Shortcut |
ProGame Vocational: Next |
Move to next step (lesson/practice/quiz) |
Ctrl+K N |
ProGame Vocational: Previous |
Go to previous step |
Ctrl+K B |
ProGame Vocational: Open Lesson |
Open a specific lesson |
Ctrl+K L |
ProGame Vocational: Check My Code (Hybrid) |
Validate your code |
Ctrl+K C |
ProGame Vocational: Run My Code |
Run code in terminal |
Ctrl+K R |
ProGame Vocational: Select Language |
Change learning language |
Ctrl+K Shift+L |
ProGame Vocational: Check Progress |
View your completion status |
Ctrl+K G |
ProGame Vocational: Reset Progress |
Start over from beginning |
Ctrl+K Shift+R |
ProGame Vocational: Check NVDA Status |
Diagnose NVDA configuration |
Ctrl+K S |
ProGame Vocational: Show Keyboard Shortcuts |
List all shortcuts |
Ctrl+K H |
ProGame Vocational: Login |
Log in to your account |
Ctrl+K I |
ProGame Vocational: Logout |
Log out |
Ctrl+K O |
ProGame Vocational: Enter License Key |
Activate your license |
- |
⚙️ Extension Settings
Accessibility Settings
Configure for optimal NVDA experience:
Type: Dropdown
Default: mixed
Options:
mixed - Latin letters with pause (A... విలువను నిల్వ చేస్తుంది)
native - Native script prefixes (ఎ. విలువను నిల్వ చేస్తుంది)
numeric - Numbers only (1. విలువను నిల్వ చేస్తుంది)
paused - Explicit pause delimiter
Recommended:
- English:
mixed
- Telugu:
native
- Kannada:
native
pythonTutor.accessibility.usePauseDelimiters
Type: Boolean
Default: true
Description: Add pauses between mixed scripts for better NVDA reading
pythonTutor.accessibility.announcementDelay
Type: Number (milliseconds)
Default: 100
Range: 0-2000
Description: Delay before announcements to give NVDA processing time
pythonTutor.skipScreenReaderCheck
Type: Boolean
Default: false
Description: Skip the automatic screen reader mode check on startup
Example Configuration
Add to your settings.json:
{
"editor.accessibilitySupport": "on",
"pythonTutor.accessibility.optionLabelFormat": "native",
"pythonTutor.accessibility.usePauseDelimiters": true,
"pythonTutor.accessibility.announcementDelay": 150
}
🔧 Troubleshooting
NVDA Not Reading Text?
Check Screen Reader Mode:
- Run:
ProGame Vocational: Check NVDA Status
- Ensure "Screen Reader Mode: ✓ Enabled"
Verify NVDA is Running:
- Press
NVDA+N to open NVDA menu
- If no response, start NVDA
Test Basic VS Code Reading:
- Open a text file
- Type some text
- Use arrow keys to navigate
- NVDA should read each line
Enable NVDA Speech Viewer:
NVDA+N → Tools → Speech Viewer
- See what NVDA is receiving
Common Issues
| Issue |
Solution |
| Quiz options not reading |
Try different optionLabelFormat settings |
| Announcements silent |
Check Windows notification settings |
| Language switching fails |
Install language packs in NVDA |
| Reading too fast |
Adjust NVDA speech rate (NVDA+Ctrl+Arrow) |
For detailed troubleshooting: See the NVDA_TROUBLESHOOTING.md file included with the extension.
📖 Learning Flow
1. Learn Stage
- Read lesson content about a Python concept
- Examples and explanations provided
- Press
ProGame Vocational: Next when ready
2. Practice Stage
- Write Python code based on lesson
- Use
ProGame Vocational: Check My Code (Hybrid) to validate
- Must pass validation to continue
3. Quiz Stage
- Answer multiple-choice questions
- Test understanding of the lesson
- Quiz must pass to unlock next lesson
🌍 Language Support
Supported Languages
- English (en): Full support
- Telugu (తెలుగు): Full support with native script
- Kannada (ಕನ್ನಡ): Full support with native script
Language-Specific Features
- Lesson content translated
- Practice instructions translated
- Quiz questions in selected language
- Native script option labels for screen readers
📝 Lessons Included
- Print Output - Learn to display text
- Variables - Store and use values
- Data Types - Numbers and text
- Operators - Mathematical operations
- Conditions - If statements
- For Loop - Repeat with for
- While Loop - Repeat with while
🛠️ Technical Details
Built With
- TypeScript
- VS Code Extension API
- Python for code execution
- Firebase for authentication and progress sync
Accessibility Features
- Custom QuickPick implementation for NVDA
- Status bar announcements
- Language boundary detection
- Configurable option formatting
- Enhanced information messages
📄 License
Proprietary — All rights reserved. NextSkills360.
📞 Support
Documentation
- See ACCESSIBILITY.md included with the extension
- See NVDA_TROUBLESHOOTING.md included with the extension
- Email: support@nextskills360.com
🙏 Acknowledgments
- NVDA community for accessibility insights
- Telugu and Kannada language contributors
- Visually-impaired beta testers
📚 Additional Resources
Version: 1.0.0
Last Updated: February 2026
Tested with: NVDA 2023.1, 2024.1 | VS Code 1.107.0+