Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

  1. Getting Started with Screen Readers
  2. NVDA-Specific Tips
  3. JAWS-Specific Tips
  4. General Terminal Accessibility
  5. Working with Long Output
  6. Keyboard Shortcuts Reference
  7. 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:

FeatureNVDAJAWS
CostFreeCommercial (paid)
InstallationSimpleComplex but thorough
PowerShell SupportExcellentExcellent
Learning CurveGentleSteeper
CustomizationGoodExtensive

Recommendation: Start with NVDA if you’re new to screen readers. Both will work for this curriculum.

Before You Start

  1. Make sure your screen reader is running before opening PowerShell
  2. Open PowerShell and let your screen reader read the title and prompt
  3. If you don’t hear anything, press Alt+Tab to cycle windows and find PowerShell
  4. 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

CommandWhat It Does
NVDA+HomeRead the current line (your command or output)
NVDA+Down ArrowRead from cursor to end of screen
NVDA+Up ArrowRead from top to cursor
NVDA+Page DownRead next page
NVDA+Page UpRead previous page
NVDA+F7Open the Review Mode viewer (can scroll through text)
NVDA+Shift+Right ArrowRead next word
NVDA+Shift+Down ArrowRead entire screen
NVDA+EndJump to end of line
NVDA+HomeJump 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:

  1. After the command finishes, press NVDA+Home to read the current line
  2. Press NVDA+Down Arrow repeatedly to read all output
  3. Or press NVDA+F7 to open Review Mode and use arrow keys to scroll

NVDA Settings for PowerShell

Enable verbosity for better feedback:

  1. Press NVDA+Ctrl+V to open NVDA menu
  2. Go to Preferences -> Settings
  3. Under “Speech”, increase verbosity
  4. 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

CommandWhat It Does
Insert+Down ArrowRead line by line downward
Insert+Up ArrowRead line by line upward
Insert+Page DownRead next page of text
Insert+Page UpRead previous page of text
Insert+EndJump to end of text on screen
Insert+HomeJump to start of text on screen
Insert+Ctrl+DownRead to end of screen
Insert+Ctrl+UpRead to beginning of screen
Insert+Shift+Page DownSelect and read next page
Insert+F3Open JAWS menu

Example: Reading Long Output

Scenario: You ran ls -n | Out-File list.txt and saved output to a file.

Solution with JAWS:

  1. Open the file: notepad.exe list.txt
  2. In Notepad, press Insert+Ctrl+Down to hear all content
  3. Use Insert+Down Arrow to read line by line at your own pace

JAWS Settings for PowerShell

Enable specific settings for terminals:

  1. Press Insert+F3 to open JAWS menu
  2. Go to “Options” -> “Settings Manager”
  3. Search for “terminal” or “console”
  4. Enable “Announce output” and “Speak when program speaks”

General Terminal Accessibility

Understanding the PowerShell Layout

The PowerShell window contains:

  1. Title bar: Window name (e.g., “Windows PowerShell”)
  2. Content area: Command history and output
  3. Prompt: The PS> area where you type

Your screen reader reads from top to bottom, but focus is at the prompt (bottom).

When you open PowerShell:

  1. Your screen reader announces the window title
  2. Then it announces the prompt line
  3. Anything before the prompt is previous output
  4. 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:

  • findstr searches for a pattern
  • \.scad means “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)

KeyActionWhy It Matters
Up ArrowShow previous commandRepeat commands without retyping
Down ArrowShow next commandNavigate through history
TabAuto-completeFaster than typing full names
Shift+TabCycle backward through completionsIf Tab went too far
HomeJump to start of lineEdit beginning of command
EndJump to end of lineEdit end of command
Ctrl+ASelect allCopy entire command line
Ctrl+CStop commandAbort long-running tasks
Ctrl+LClear screenStart fresh
Ctrl+KClear all(Alternative to Ctrl+L)
EnterRun commandExecute what you typed

Screen Reader Navigation

KeyNVDA ActionJAWS Action
Up/DownMove through line (native)Move through line (native)
Numpad+Start/stop review mode(Not needed in JAWS)
Function+HomeRead current lineRead current line
Function+Page DownRead next pageRead next page
Alt+TabSwitch 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:

  1. 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
  2. Output scrolled off-screen

    • Solution: Redirect to file: command > output.txt
    • Then read file: notepad.exe output.txt
  3. 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
  4. Large amount of output overwhelming screen reader

    • Solution: Use filtering: ls -n | findstr "pattern"
    • Or save to file for paced reading

Problem 2: “Tab Completion Isn’t Working”

Causes & Solutions:

  1. Need at least one character

    • Wrong: Type cd then Tab (won’t work without a path)
    • Right: Type cd D then Tab
  2. Exact path needed

    • If folder is “Documents”, typing cd Doc and Tab works
    • But typing cd X won’t find “Documents”
  3. Check if item exists

    • Use ls -n first to see available items
    • Then Tab-complete to them

Problem 3: “Screen Reader Says ‘Access Denied’ or ‘Permission Denied’”

Causes & Solutions:

  1. Need admin rights

    • Close PowerShell
    • Right-click PowerShell -> Run as administrator
    • Confirm the UAC prompt
  2. File is in use

    • Close any programs using the file
    • Try the command again
  3. File path contains spaces

    • Use quotes: cd "Program Files"
    • Or use Tab completion (handles spaces automatically)

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:

  1. Press Up Arrow to show previous command
  2. Use arrow keys to move through it
  3. Edit the command as needed
  4. 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 s to make it cd Documents
  • Press Enter to run it

Problem 6: “My Screen Reader Keeps Interrupting Each Other”

Causes & Solutions:

  1. NVDA verbosity too high

    • Press NVDA+Ctrl+V to open menu
    • Go to Settings -> Speech
    • Lower the verbosity level
  2. Multiple applications speaking

    • Use Alt+Tab to make PowerShell active window
    • Minimize other programs
  3. 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.


For every new task:

  1. Know where you are: pwd
  2. See what’s around: ls -n
  3. Plan your next step: Think before typing
  4. Run the command: Type and press Enter
  5. Check the output: Use screen reader or redirect to file
  6. Move forward: Next command or cd to 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.