The Text-Mode Myth: Why Modern TUIs Are Hostile to the Blind

Translated by a model; the original is in Russian.

· Linux and open source
Developer Casey Reeves explains why trendy terminal-interface frameworks break screen readers — while older utilities cope better.

cover.svg

Among sighted programmers there lives a persistent misconception: if an application runs in a terminal, then it must be accessible by default. The logic is simple — no graphics, no complex DOM, no WebGL canvases, just a stream of ASCII text that a screen reader will read without any trouble. In reality it's the opposite: many modern text interfaces (TUIs) are more hostile to the blind than even clumsily written graphical applications. So writes Casey Reeves, and the publication OSnews retells and comments on his piece.

Stream versus grid

The command line is by its very nature a stream of data: fresh lines at the bottom, old ones scrolling up, linearly, in time. A screen reader handles this model easily; kernel-level readers are said to do it quite decently. The problem is that frameworks like Ink (JS/React), Bubble Tea (Go) and tcell abandon the temporal stream in favor of a spatial layout. The screen turns into a two-dimensional grid where every character cell is, in essence, a pixel.

A screen reader cannot make sense of such a grid. On every interface update the cursor jumps all over the screen, and the reader literally goes mad. Tellingly, the trouble isn't with TUIs themselves, but with the fact that the new frameworks ignore the terminal's basic capabilities. Older utilities, built long before this fashion, behaved more amiably: the IRC client Irssi, for example, uses VT100 scroll regions instead of redrawing the whole screen on every change, and many offered an option to simply hide the cursor.

The accessibility paradox

Here lies an irony that commentators point out. A well-designed graphical interface carries within it a nested structure with metadata: here's a window, at the bottom a panel with two buttons, the left one “OK,” the right one “Cancel.” A screen reader or an AI assistant reads this effortlessly. Yet a “simple” text interface, stripped of such semantics, requires full-blown visual recognition — a machine-learning task that is prone to errors.

A more general reproach also surfaces in the discussion: some of the new interfaces are made by people with a “first to market” mindset, throwing away accumulated knowledge about interaction design. Many such TUIs are geared not toward the terminal as such, but toward one particular modern terminal application — with Unicode, emoji, 256 colors and a fast connection that you don't mind spamming with progress bars. Connect over a serial terminal, and instead of smileys you get a spray of garbage and ragged line breaks.

There are sensible proposals, too. Some advise that every TUI program have an honest CLI version with arguments, and that the interface itself remain merely a wrapper — then the output can be piped as well as fed to a screen reader. Others note that accessibility is achievable in principle: the Go library huh, built on Bubble Tea, for instance, claims full screen-reader support. The problem, then, isn't the terminal, but the fact that blind users are simply forgotten.


Source: Lobsters

Comments

Sign in, to comment.

  • No comments yet.