{
  "id": 2886872,
  "title": "The text mode lie: why modern TUIs are a nightmare for accessibility",
  "url": "https://urgent.news/2026/08/23/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-23T21:00:46.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://www.osnews.com/story/144892/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility/"
  },
  "original_language": "en",
  "account": "Many developers wrongly believe that an application running in a terminal is automatically accessible. They fail to consider that most modern Text User Interfaces (TUIs) are actually more difficult for screen readers to navigate than poorly coded graphical interfaces. These frameworks, such as Ink (JS/React), Bubble Tea (Go), and tcell, make accessibility for blind users significantly worse.\n\nAt its core, the command-line interface is a linear stream of data, with the newest information appearing at the bottom and the older data going up. Screen readers can typically handle this format with ease. However, modern TUIs have transformed this linear approach into a \"2D grid of pixels,\" where each character cell represents a pixel. This shift from a temporal layout to a spatial layout disrupts the screen reader's ability to comprehend the interface.\n\nWhile some older TUIs were designed with terminal compatibility in mind, modern TUIs do not utilize the terminal's inherent features effectively. For instance, Irssi uses VT100 scrolling regions instead of redrawing the entire screen after each update. Unfortunately, many developers creating these modern TUIs have not prioritized accessibility, which has led to several problematic issues.\n\nReeves' article serves as a wake-up call for the developers who create these modern TUIs. It is essential that they start taking accessibility seriously to ensure that their applications are usable by all users, including those who rely on screen readers.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}