El artículo "The text mode lie" expone una creencia errónea común entre los desarrolladores: que las aplicaciones de terminal (TUIs) son inherentemente accesibles debido a la ausencia de gráficos complejos. La realidad es que muchas TUIs modernas, construidas con frameworks como Ink (JavaScript/React) o Bubble Tea (Go), son menos accesibles que interfaces gráficas mal codificadas, especialmente para usuarios con discapacidad visual que utilizan lectores de pantalla.
La clave de este problema radica en la distinción entre la CLI (Command Line Interface) y la TUI. La CLI opera en un flujo lineal de entrada/salida (stdin/stdout), ideal para lectores de pantalla de nivel de kernel como Speakup. En contraste, las TUIs modernas tratan el terminal como una cuadrícula de píxeles, abandonando el flujo temporal en favor de una disposición espacial. Esto introduce problemas significativos.
Un ejemplo concreto es la herramienta gemini-cli, que utiliza el framework Ink. Al actualizar la interfaz (por ejemplo, para mostrar un temporizador o un spinner), Ink re-dibuja la pantalla constantemente, generando un flujo incesante de información para el lector de pantalla: “Responding... Time elapsed 1s... Responding...”. Esto es inaudible para usuarios con visión, pero extremadamente molesto y desorientador para usuarios de lectores de pantalla. Además, al pegar texto, la aplicación re-calcula y re-renderiza la interfaz, lo que puede provocar bloqueos o inestabilidad del lector de pantalla, especialmente con conversaciones extensas.
La lentitud se agrava en entornos de subprocesamiento único (como Node.js), donde el cálculo de las diferencias para re-renderizar la pantalla puede provocar una latencia significativa en la entrada del usuario.
El artículo destaca que herramientas más antiguas como nano, vim y menuconfig funcionan mejor porque permiten al usuario ocultar el cursor o enfocarse en una sola columna, evitando así la sobrecarga de información. Irssi, un cliente de chat, utiliza regiones de desplazamiento VT100 para minimizar la interferencia con la entrada del usuario, a diferencia de los frameworks modernos que re-escriben constantemente la pantalla.
Finalmente, el artículo critica la falta de atención a la accesibilidad por parte de algunos desarrolladores, ejemplificado por la inacción ante informes de regresiones de accesibilidad en proyectos populares. La práctica de cerrar automáticamente estos informes como “stale” es vista como una forma de ignorar el problema y priorizar métricas superficiales sobre la usabilidad real.
