Modern TUIs Are a Nightmare for Accessibility
Avoid using Ink/Bubble Tea for blind users; switch to linear CLI or hide cursor to preserve screen reader usability.
Avoid using declarative TUI frameworks for blind users; switch to linear CLI or implement no‑cursor mode.
Summary
Modern Text User Interfaces (TUIs) built with frameworks such as Ink (React/Node.js), Bubble Tea (Go), and tcell treat the terminal as a 2‑D grid rather than a linear stream, causing screen readers to receive rapid cursor jumps and content spam. Ink’s diff‑based redraws trigger a full re‑render on every state change, which spams screen readers with timer updates, chat history, and status indicators, leading to confusion and even crashes on NVDA. Large chat histories exacerbate the problem, as the diff calculation can delay keystroke echo by up to ten seconds, making the interface unusable for blind users. Traditional tools like nano, vim, and menuconfig mitigate this by allowing the cursor to be hidden or by maintaining a single‑column focus, reducing noise for assistive technologies. The gemini‑cli project demonstrates these regressions with open issues (#3435, #11305, #1553) that have been closed without resolution, highlighting a lack of accessibility maintenance.
The core issue is that declarative TUI frameworks prioritize developer convenience over efficient, linear rendering, which is essential for accessibility. Developers building terminal applications for blind users should avoid Ink, Bubble Tea, and tcell when they require real‑time interaction, or implement a no‑cursor mode and linear CLI flow to preserve screen reader usability.
Key changes
- TUIs treat terminal as 2‑D grid causing cursor jumps
- Ink triggers full redraw on every state change, spamming screen readers
- Large chat histories delay keystrokes up to 10s due to diff calculation
- Traditional tools hide cursor to reduce noise
- Frameworks lack no‑cursor mode
- Gemini‑cli has unresolved accessibility issues (#3435, #11305, #1553)
- Redraw strategy is computationally heavy
- Recommend linear CLI or custom rendering for accessibility