Modern TUI frameworks like Ink, Bubble Tea, and tcell treat terminals as 2D grids, making them worse for screen readers than poorly built graphical apps.
Key Takeaways
CLIs use a linear stdin/stdout stream; TUIs use a spatial grid model that teleports the hardware cursor, causing screen readers like Speakup and NVDA to spam random fragments.
Ink-based tools like gemini-cli trigger full re-renders on every state change; with long conversation history, input lag can reach 10 seconds per keystroke.
Accessible TUIs (nano, vim, irssi) work by hiding the cursor or using VT100 scrolling regions, not by diffing and rewriting the full screen buffer.
Google’s gemini-cli has open accessibility issues (#3435, #11305, #1553) silently closed by stale bot, removing them from the backlog without fixes.
The fix: expose a cursor-hide or headless mode, avoid spinner/timer redraws, and prefer linear output for any tool that must be accessible.