L'idée reçue
Elle est tenace chez les développeurs voyants : si une application tourne dans un terminal, elle serait accessible par nature. Pas de graphismes, pas de DOM complexe, pas de canvas WebGL — donc du texte brut qu'un lecteur d'écran parcourt sans peine.
La réalité est inverse. La plupart des interfaces texte modernes sont plus hostiles à l'accessibilité que des interfaces graphiques mal codées.
Et le coupable désigné est inattendu : les cadriciels créés pour améliorer l'expérience des développeurs dans le terminal — Ink pour JavaScript, Bubble Tea pour Go, tcell — sont ceux qui dégradent celle des utilisateurs aveugles.
Pourquoi
La cause est structurelle, et une fois énoncée elle paraît évidente.
Une ligne de commande, c'est un flux de données : le plus récent en bas, et l'on remonte linéairement dans le temps en défilant vers le haut. Un lecteur d'écran gère cela très bien — les lecteurs intégrés au noyau sont d'ailleurs réputés efficaces.
Une interface texte moderne fonctionne tout autrement. Selon la formule citée, c'est « une grille 2D de pixels, où chaque cellule de caractère est un pixel » : elle abandonne le déroulé temporel au profit d'une disposition spatiale.
Le lecteur d'écran, lui, ne sait plus quoi en faire. Le symptôme principal : le curseur saute partout à chaque rafraîchissement de l'écran, ce qui rend l'outil inutilisable.
Ce n'est pas une fatalité
Le point le plus intéressant est que les interfaces texte anciennes s'en sortaient mieux — parce qu'elles étaient conçues avant ces cadriciels, d'une manière plus respectueuse du terminal, ou parce qu'elles offraient l'option de masquer le curseur.
L'exemple donné est Irssi, qui utilise les régions de défilement du VT100 plutôt que de redessiner tout l'écran à chaque changement.
Autrement dit : le problème ne vient pas de l'interface texte en soi, mais de cadriciels qui n'exploitent pas les fonctions natives du terminal et le traitent comme une toile à repeindre.
À retenir
Une intuition largement partagée qui se révèle fausse, avec une cause technique identifiable et un contre-exemple qui prouve que c'est évitable. Si vous développez une interface en terminal, la question à se poser est de savoir si vous utilisez le terminal ou si vous vous contentez de dessiner dedans.
Source : OSNews