Modern TUI frameworks create accessibility nightmares for blind users
Developers are urged to reconsider frameworks like Ink and Bubble Tea after reports of screen reader malfunctions, input lag, and the silencing of critical bug reports in popular projects.
A recent article titled "The text mode lie: why modern TUIs are a nightmare for accessibility" challenges the prevailing assumption that text-based applications are inherently accessible to blind users. The author argues that while sighted developers often view terminal applications as simple streams of ASCII text, modern Text User Interface (TUI) frameworks such as Ink, Bubble Tea, and tcell actively degrade the experience for users relying on assistive technologies.
The core of the argument distinguishes between the traditional Command Line Interface (CLI) and the modern TUI. While a CLI operates on a linear, chronological stream of input and output ideal for kernel-level screen readers like Speakup, modern frameworks treat the terminal as a reactive two-dimensional grid. This architectural shift causes assistive technologies like NVDA and Speakup to malfunction due to aggressive cursor teleportation, excessive screen redrawing, and significant input lag.
Specific mechanisms of failure identified in the piece include the way frameworks update status indicators and timers. When an application uses a spinner or a timer, the framework moves the hardware cursor to the specific location, writes the new data, and moves it back. For a sighted user, this happens instantly, but for a screen reader user, it results in the announcement of random fragments of the screen rather than the intended content, effectively driving the screen reader mad.
Performance degradation is also a critical concern, particularly in single-threaded environments like Node.js. The article notes that pasting large blocks of text into these interfaces can cause input lag of up to 10 seconds per character. This delay occurs because the system must calculate diffs for thousands of lines to redraw the interface, a process that halts the processing of user input while the framework attempts to re-render the spatial layout.
The author contrasts these modern tools with legacy utilities such as nano, vim, and Irssi, which remain accessible because they allow users to hide the cursor or utilise hardware scrolling regions to maintain a linear text stream. Older tools succeed because they permit the suppression of visual cursor tracking, forcing the screen reader to rely on the character input stream rather than noisy coordinate updates. Modern frameworks, conversely, rarely offer a headless mode and assume the visual cursor is essential.
Criticism of project maintenance practices is also central to the article, specifically regarding the gemini-cli project. The author highlights that critical accessibility regressions have been ignored and that a relevant bug report tracking these failures was auto-closed by a bot with a generic message about backlog management. This action is described as hiding evidence of inaccessibility by closing issues simply because they have not been addressed in months.
The piece concludes that for the blind user, a dumb, linear CLI stream is infinitely superior to a smart TUI that lags, spams, and scatters the cursor across the screen. The author urges developers building for the terminal to stop using declarative UI frameworks that optimise for the developer's ability to write React-like code at the expense of the machine's ability to render text efficiently for all users.

