Screen Reader Accessibility Guide for PowerShell
Target Users: NVDA, JAWS, and other screen reader users
Last Updated: 2026
This guide is used throughout the PowerShell Foundation curriculum to help screen reader users navigate and work efficiently with the terminal.
Table of Contents
- Getting Started with Screen Readers
- NVDA-Specific Tips
- JAWS-Specific Tips
- General Terminal Accessibility
- Working with Long Output
- Keyboard Shortcuts Reference
- Troubleshooting
Getting Started with Screen Readers
Which Screen Reader Should I Use?
Both NVDA and JAWS work well with PowerShell, but they have different strengths:
| Feature | NVDA | JAWS |
|---|---|---|
| Cost | Free | Commercial (paid) |
| Installation | Simple | Complex but thorough |
| PowerShell Support | Excellent | Excellent |
| Learning Curve | Gentle | Steeper |
| Customization | Good | Extensive |
Recommendation: Start with NVDA if you’re new to screen readers. Both will work for this curriculum.
Before You Start
- Make sure your screen reader is running before opening PowerShell
- Open PowerShell and let your screen reader read the title and prompt
- If you don’t hear anything, press Alt+Tab to cycle windows and find PowerShell
- Use your screen reader’s screen review features to understand the layout
NVDA-Specific Tips
NVDA is free and available from https://www.nvaccess.org/
Key Commands for PowerShell
| Command | What It Does |
|---|---|
| NVDA+Home | Read the current line (your command or output) |
| NVDA+Down Arrow | Read from cursor to end of screen |
| NVDA+Up Arrow | Read from top to cursor |
| NVDA+Page Down | Read next page |
| NVDA+Page Up | Read previous page |
| NVDA+F7 | Open the Review Mode viewer (can scroll through text) |
| NVDA+Shift+Right Arrow | Read next word |
| NVDA+Shift+Down Arrow | Read entire screen |
| NVDA+End | Jump to end of line |
| NVDA+Home | Jump to start of line |
Example: Reading Long Output
Scenario: You ran ls -n and it listed 50 files. You can’t hear them all.
Solution with NVDA:
- After the command finishes, press NVDA+Home to read the current line
- Press NVDA+Down Arrow repeatedly to read all output
- Or press NVDA+F7 to open Review Mode and use arrow keys to scroll
NVDA Settings for PowerShell
Enable verbosity for better feedback:
- Press NVDA+Ctrl+V to open NVDA menu
- Go to Preferences -> Settings
- Under “Speech”, increase verbosity
- Look for “Report font changes” and enable it (helps with code)
JAWS-Specific Tips
JAWS is a commercial screen reader available from https://www.freedomscientific.com/
Key Commands for PowerShell
| Command | What It Does |
|---|---|
| Insert+Down Arrow | Read line by line downward |
| Insert+Up Arrow | Read line by line upward |
| Insert+Page Down | Read next page of text |
| Insert+Page Up | Read previous page of text |
| Insert+End | Jump to end of text on screen |
| Insert+Home | Jump to start of text on screen |
| Insert+Ctrl+Down | Read to end of screen |
| Insert+Ctrl+Up | Read to beginning of screen |
| Insert+Shift+Page Down | Select and read next page |
| Insert+F3 | Open JAWS menu |
Example: Reading Long Output
Scenario: You ran ls -n | Out-File list.txt and saved output to a file.
Solution with JAWS:
- Open the file:
notepad.exe list.txt - In Notepad, press Insert+Ctrl+Down to hear all content
- Use Insert+Down Arrow to read line by line at your own pace
JAWS Settings for PowerShell
Enable specific settings for terminals:
- Press Insert+F3 to open JAWS menu
- Go to “Options” -> “Settings Manager”
- Search for “terminal” or “console”
- Enable “Announce output” and “Speak when program speaks”
General Terminal Accessibility
Understanding the PowerShell Layout
The PowerShell window contains:
- Title bar: Window name (e.g., “Windows PowerShell”)
- Content area: Command history and output
- Prompt: The
PS>area where you type
Your screen reader reads from top to bottom, but focus is at the prompt (bottom).
Navigation Sequence
When you open PowerShell:
- Your screen reader announces the window title
- Then it announces the prompt line
- Anything before the prompt is previous output
- Anything after the prompt is where new output will appear
Reading Output Effectively
Strategy 1: Immediate Output (Small Amount)
- Run a command
- Your screen reader announces output immediately
- This works well for short outputs (a few lines)
Strategy 2: Large Output (Many Lines)
- Redirect to a file:
command > output.txt - Open the file:
notepad.exe output.txt - Read in Notepad (easier for long text)
Strategy 3: Searching Output
- Use
findstr(find string) to filter:ls -n | findstr "pattern" - Only results matching “pattern” are shown
Working with Long Output
This is one of the most common challenges for screen reader users. Here are proven solutions:
Solution 1: Redirect to a File
Command:
ls -n > list.txt
Then open:
notepad.exe list.txt
Advantages:
- Easy to navigate at your own pace
- Works with all screen readers
- Output doesn’t scroll away
- You can save it for later
Solution 2: Use Pagination
Command:
ls -n | more
How to use:
- Press Space to see next page
- Press Q to quit
- Note: Some screen readers struggle with
more, so Solution 1 is preferred
Solution 3: Filter Output
Example: Find only .scad files
ls -n | findstr "\.scad"
How it works:
findstrsearches for a pattern\.scadmeans “files ending in .scad”- Only matching items are displayed
Solution 4: Count Before Displaying
Command:
(ls -n).Count
What it does:
- Tells you how many items there are
- Helps you know if you should redirect to file
- If count > 20, probably use file method
Keyboard Shortcuts Reference
All Users (Works in PowerShell regardless of screen reader)
| Key | Action | Why It Matters |
|---|---|---|
| Up Arrow | Show previous command | Repeat commands without retyping |
| Down Arrow | Show next command | Navigate through history |
| Tab | Auto-complete | Faster than typing full names |
| Shift+Tab | Cycle backward through completions | If Tab went too far |
| Home | Jump to start of line | Edit beginning of command |
| End | Jump to end of line | Edit end of command |
| Ctrl+A | Select all | Copy entire command line |
| Ctrl+C | Stop command | Abort long-running tasks |
| Ctrl+L | Clear screen | Start fresh |
| Ctrl+K | Clear all | (Alternative to Ctrl+L) |
| Enter | Run command | Execute what you typed |
Screen Reader Navigation
| Key | NVDA Action | JAWS Action |
|---|---|---|
| Up/Down | Move through line (native) | Move through line (native) |
| Numpad+ | Start/stop review mode | (Not needed in JAWS) |
| Function+Home | Read current line | Read current line |
| Function+Page Down | Read next page | Read next page |
| Alt+Tab | Switch windows (works in any app) | Switch windows (works in any app) |
Troubleshooting
Problem 1: “I Can’t Hear the Output After Running a Command”
Causes & Solutions:
-
Cursor not at prompt
- Solution: Press End or Ctrl+End to go to the end of text
- Then use Up Arrow or screen reader commands to review
-
Output scrolled off-screen
- Solution: Redirect to file:
command > output.txt - Then read file:
notepad.exe output.txt
- Solution: Redirect to file:
-
Screen reader focus on window title, not content
- Solution: Press Tab or arrow keys to move to the content area
- Then use screen reader commands to read
-
Large amount of output overwhelming screen reader
- Solution: Use filtering:
ls -n | findstr "pattern" - Or save to file for paced reading
- Solution: Use filtering:
Problem 2: “Tab Completion Isn’t Working”
Causes & Solutions:
-
Need at least one character
- Wrong: Type
cdthen Tab (won’t work without a path) - Right: Type
cd Dthen Tab
- Wrong: Type
-
Exact path needed
- If folder is “Documents”, typing
cd Docand Tab works - But typing
cd Xwon’t find “Documents”
- If folder is “Documents”, typing
-
Check if item exists
- Use
ls -nfirst to see available items - Then Tab-complete to them
- Use
Problem 3: “Screen Reader Says ‘Access Denied’ or ‘Permission Denied’”
Causes & Solutions:
-
Need admin rights
- Close PowerShell
- Right-click PowerShell -> Run as administrator
- Confirm the UAC prompt
-
File is in use
- Close any programs using the file
- Try the command again
-
File path contains spaces
- Use quotes:
cd "Program Files" - Or use Tab completion (handles spaces automatically)
- Use quotes:
Problem 4: “Command Runs Forever and Won’t Stop”
Solution: Press Ctrl+C
Examples of long-running commands:
ping google.com(will ping forever until stopped)- Connecting to a slow server
- Large file operations
Always press Ctrl+C when a command seems stuck.
Problem 5: “I Need to Edit My Last Command”
Solutions:
- Press Up Arrow to show previous command
- Use arrow keys to move through it
- Edit the command as needed
- Press Enter to run the modified version
Example:
- You typed:
cd Document(missing the ‘s’) - Press Up Arrow to show it again
- Press End to go to the end
- Type
sto make itcd Documents - Press Enter to run it
Problem 6: “My Screen Reader Keeps Interrupting Each Other”
Causes & Solutions:
-
NVDA verbosity too high
- Press NVDA+Ctrl+V to open menu
- Go to Settings -> Speech
- Lower the verbosity level
-
Multiple applications speaking
- Use Alt+Tab to make PowerShell active window
- Minimize other programs
-
JAWS reading too fast
- Press Insert+Down Arrow in settings
- Look for speech rate and slow it down
Pro Tips for Efficiency
1. Create Aliases for Frequently Used Commands
Example in PowerShell:
Set-Alias -Name la -Value "ls -n -ad"
Now you can type just la instead of ls -n -ad.
2. Use Command History Effectively
See all recent commands:
history
Run a previous command by number:
Invoke-History 5
(Runs the 5th command in history)
3. Redirect Everything to Files for Accessibility
If a command produces output, save it:
command-name > results.txt
notepad.exe results.txt
This is always more accessible than reading from terminal.
4. Create a README for Yourself
Create a simple help file:
echo "ls -n means list names only (screen reader friendly)" > my-notes.txt
echo "cd means change directory" >> my-notes.txt
notepad.exe my-notes.txt
Come back to it whenever you forget something.
Recommended Workflow
For every new task:
- Know where you are:
pwd - See what’s around:
ls -n - Plan your next step: Think before typing
- Run the command: Type and press Enter
- Check the output: Use screen reader or redirect to file
- Move forward: Next command or
cdto next folder
This workflow keeps you oriented and prevents errors.
Quick Reference Card
Print or save this:
EVERY COMMAND STARTS WITH:
1. pwd (where am I?)
2. ls -n (what's here?)
3. cd path (go there)
LONG OUTPUT?
-> command > file.txt
-> notepad.exe file.txt
STUCK?
-> Ctrl+C
WANT TO REPEAT?
-> Up Arrow
-> History
NEED HELP?
-> Get-Help command-name
Additional Resources
- NVDA Documentation: https://www.nvaccess.org/documentation/
- JAWS Documentation: https://www.freedomscientific.com/support/
- PowerShell Docs: https://docs.microsoft.com/powershell/
- Accessibility Best Practices: https://www.w3.org/WAI/
Feedback
This guide is meant to help YOU. If something isn’t clear:
- Try a different approach from the “Solutions” sections
- Reach out to instructors with specific questions
- Share what worked for you with classmates
Remember: Using a terminal with a screen reader is absolutely possible. These tools and techniques will help you master it.