[BUG] /mcp TUI arrow key navigation is inaccessible with NVDA screen reader on Windows + WSL2

Resolved 💬 2 comments Opened May 22, 2026 by florentleveque Closed Jun 22, 2026

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

  1. Open Claude Code CLI in Windows Terminal running WSL2
  2. Run /mcp
  3. Navigate with Down arrow key through the server list while NVDA is active
  4. Note the server name announced by NVDA
  5. Press Enter
  6. 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_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗