[BUG] /mcp TUI arrow key navigation is inaccessible with NVDA screen reader on Windows + WSL2
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The /mcp interactive dialog is unusable with a screen reader. When navigating the server list with arrow keys, the element announced by NVDA does not match the element that is actually focused. Pressing Enter on what NVDA reports as "claude.ai Microsoft 365" opens "claude.ai Draw.io MCP Server" instead.
This makes it impossible for blind users to select and authenticate any specific MCP server. There is no CLI alternative to /mcp for authenticating remote servers, so this is a complete blocker.
What Should Happen?
Arrow key navigation in the /mcp TUI should move the terminal cursor to the focused item, so that NVDA reads the correct server name at each step. The announced name and the actually selected item should always be the same.
Steps to Reproduce
- Open Claude Code CLI in Windows Terminal running WSL2
- Run
/mcp - Navigate with Down arrow key through the server list while NVDA is active
- Note the server name announced by NVDA
- Press Enter
- The detail panel that opens belongs to a different server than the one announced
Environment
- Claude Code version: 2.1.148
- OS: Windows 11 + WSL2 (kernel
5.15.167.4-microsoft-standard-WSL2) - Terminal: Windows Terminal
- Screen reader: NVDA (Windows)
- Shell: bash
Error Messages / Logs
No error message. The mismatch is silent — NVDA announces one item, Enter activates a different one.
Additional context
The root cause is likely that the TUI uses a virtual/logical cursor (ink-based rendering) that does not move the actual terminal cursor when focus changes. NVDA tracks the physical terminal cursor position, not the visual highlight, so the two get out of sync.
A fix could be to ensure the TUI emits a proper cursor move (\033[row;colH) to the focused row on each arrow key press, which would let NVDA (and other screen readers reading the terminal) announce the correct item.
Claude Model
_Not applicable — this is a TUI/CLI issue_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗