PowerShell PSReadLine Auto-Disabling Issue: Fixing False Screen Reader Detection in Win10/PowerShell 7


1 views


When launching PowerShell 7.0.0 on Windows 10, many developers encounter this warning:

Warning: PowerShell detected that you might be using a screen reader 
and has disabled PSReadLine for compatibility purposes. 
If you want to re-enable it, run 'Import-Module PSReadLine'.

This occurs despite not running any screen reader software, creating unnecessary friction in the development workflow.

The issue stems from PowerShell's accessibility detection mechanism which can be triggered by:

  • Certain accessibility-related registry keys being present
  • Visual Studio's accessibility hooks
  • Third-party software that modifies UI automation settings

Method 1: Create PowerShell Profile

Edit your profile to automatically load PSReadLine:

if ($host.Name -eq 'ConsoleHost') {
    Import-Module PSReadLine
}

Method 2: Registry Modification

For advanced users who want to disable the detection entirely:

reg add HKCU\Control Panel\Accessibility /v BlindAccess /t REG_DWORD /d 0 /f

Method 3: Update PSReadLine

Newer versions handle detection better:

Install-Module -Name PSReadLine -Force -AllowClobber

After implementing any solution, verify PSReadLine is active:

Get-Module PSReadLine | Select-Object Version,Path

Should return module information instead of $null.


When launching PowerShell 7 on Windows 10, you might encounter this warning:

Warning: PowerShell detected that you might be using a screen reader 
and has disabled PSReadLine for compatibility purposes. 
If you want to re-enable it, run 'Import-Module PSReadLine'.

This occurs because PowerShell's auto-detection mechanism has falsely identified your environment as using screen reader accessibility tools.

The detection is based on several system-level checks:

  • Presence of UI Automation clients running
  • Certain accessibility-related registry keys
  • Running processes associated with screen readers

False positives can occur when you have development tools like Visual Studio (2017/2019) installed, as they may interact with accessibility APIs during debugging.

To temporarily re-enable PSReadLine, run:

Import-Module PSReadLine

Option 1: Modify PowerShell Profile

Edit your PowerShell profile to always load PSReadLine:

# For current user
notepad $PROFILE

# Add this line:
Import-Module PSReadLine

Option 2: Disable Screen Reader Detection

Create or modify the PSReadLine configuration:

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -ContinuationPrompt ">> "
Set-PSReadLineOption -BellStyle None

After implementing fixes, check PSReadLine status:

Get-Module PSReadLine

# Should return version information if loaded

For developers who want to inspect the detection logic:

# Check accessibility status
[System.Windows.Forms.SystemInformation]::ScreenReader

# Alternative check
Add-Type -AssemblyName UIAutomationClient
[Windows.Automation.AutomationElement]::RootElement

If you have VS2017/2019 installed, try these additional steps:

# Reset VS accessibility settings
devenv /resetsettings

PSReadLine enhances CLI experience but adds overhead. Benchmark with:

Measure-Command { Import-Module PSReadLine }