183 views
# J'aimerais aimer Linux. Ce n'est pas réciproque. Épisode 1 : Conçu pour le contrôle, pas pour les gens. Par Aaron Hewitt, traduit de l’[anglais](https://fireborn.mataroa.blog/blog/i-want-to-love-linux-it-doesnt-love-me-back-post-1-built-for-control-but-not-for-people/) par Ada LaNerd pour Irina. ## Linux est déjà cassé avant même que tu commences J'aime Linux. J'utilise Linux. Il a ses avantages. Il répond -- parfois. Certaines choses fonctionnent juste infiniment mieux. Les paramètres enregistrés dans des fichiers textes plutôt que dans des registres opaques ? C'est une **victoire pour l'accessibilité**. Lorsque quelque chose casse, tu n'as pas à réinstaller l'intégralité de ton OS comme tu le ferais avec Windows. Le plus important ? **Il m'appartient**. De faire comme je veux. De le réparer, de le casser, de le recompiler, de le posséder. Et que je sois bien clair : ce post n'est **pas** une attaque contre les personnes qui maintiennent l'accessibilité de Linux. J'ai beaucoup de respect pour chaque personne qui a écrit un patch pour Orca, BRLTTY, speech-dispatcher, AT-SPI, ou n'importe lequel des dizaines d'outils qui rendent possible l'utilisation de Linux sans la vue. Ils le font souvent gratuitement, sur leur temps libre, tout en luttant contre des changements en amont, contre la casse des toolkits et contre l'apathie générale des devs dedistribs et d'environnements de bureau. Ils sont des héros pour le faire fonctionner **malgré** tout ça. Et avant que n'importe quel barbu ne me saute dessus pour me répondre : « Soyez le changement que vous voulez voir ». « Codez vous-même. » Oui, je sais. J'essaie. Quand j'ai les cuillères, les ressources. Quand je comprends suffisamment bien la stack pour faire plus que rédiger un rapport de bug intitulé « ça marche pas ». Mais je ne devrais pas avoir à le faire. Et si c'est tout ce que vous avez à dire ? **Arrêtez de lire. Je m'en tape.** Laissez-moi être franc : Ceci n'est pas la complainte de quelqu'un qui a juste essayé Linux et s'est barré. Ceci provient d'une personne qui utilise Linux à plein-temps depuis des années en tant qu'aveugle -- quelqu'un qui connaît le système comme sa poche, qui l'a fait fonctionner à force de configurations manuelles, d'écriture de scripts, qui a recompilé des paquets pétés, le tout à la seule force de la volonté. Et pourtant ? Je suis épuisé. Parce que Linux n'échoue pas juste à la marge. Il échoue dès la première étape. Avant même que tu ouvres un terminal. Avant même que tu puisses écrire une ligne de code. Avant même que tu n'ouvres ta session -- la fonctionnalité basique, initiale de l'accessibilité est déjà foutue, en train de se dégrader, de s'empirer activement. ## "Ça juste marche" -- Le premier mensonge Linux "juste marche" -- si tu peux voir. Si t'es aveugle ? Tu boot une image live et n'obtiens rien en retour. Pas de voix. Pas de braille. Pas de retour sur l'ouverture de session. Peut-être qu'Orca démarre, peut-être pas. Tu connais peut-être le raccourci (Alt+Super+S ?), mais fonctionne-t-il dans ce type de session ? Est-ce que c'est Wayland ? Est-ce que c'est X11 ? Le lecteur d'écran est-il lié à une combinaison de touches qui n'existe pas sur ton clavier ? Tu ouvres l'installateur ? Le bouton « Suivant. Bouton. Bouton. Bouton. Bouton. » C'est tout ce que dit Orca. Ubuntu MATE 12.04 avait un installateur fonctionnel, étiqueté et navigable. Ubuntu MATE 24.04 ? C'est de la merde. Pas de titres. Aucune structure. Aucune idée de l'endroit où l'on se trouve. Juste des boutons sans étiquette et de l'espace vide. Ce n'est pas un bug. C'est de la négligence. ## Se connecter est désormais une blague Autrefois, sur Ubuntu MATE, tu pouvais appuyer sur Alt+Super+S dans l'écran de connexion et obtenir Orca. Aujourd'hui ? - Tu entends un son de tambour. - Pas de parole. - Pas de braille. - Pas de moyen de lancer le lecteur d'écran. - Pas de confirmation visuelle, sauf si tu peux voir. Et si tu lances Orca manuellement après le démarrage ? Il ne revient pas après redémarrage. C'était le cas il y a quelques années. Aujourd'hui ? À chaque connexion, tu repars de zéro. Tu veux de la persistance ? Tu télécharges un script shell aléatoire sur GitHub. Tu patches tes propres fichiers de session. Tu maintiens la configuration toi-même - parce qu'aucune distribution n'en fournit de fonctionnelle. ## La stack audio: désormais avec une dysfonctionnalité bonus Supposons qu'Orca démarre. C'est maintenant la pile audio qui fait des siennes. Est-ce PipeWire ? PulseAudio ? ALSA est-il activé ? Le bon *fallback sink* est-il sélectionné ? Le périphérique audio appartient-il à root ? Le socket est-il accessible à ta session ? Qui sait ? Parce que : - Pulse charge la mauvaise sortie. - PipeWire ne peut accéder à la carte son. - Speech Dispatcher est bloqué en attendant qu'un appareil se déconnecte. - Tu te connectes et n'obtiens rien. Pas d'erreur. Seulement du silence. Tu veux le déboguer ? Tu peux pas -- parce qu'il n'y a rien à écouter. Alors tu prends ton téléphone, tu prends une photo de l'écran, la fous dans une IA de description d'image, et espère qu'il te dira si le message d'erreur indique « Audio device unavailable » (interface audio non disponible) ou « Session startup failed » (échec du démarrage de la session). C'est désormais normal. ## La lecture de console existe -- mais elle n'est jamais mise en place Techniquement, oui, tu peux obtenir une lecture de console. Linux Speakup existe. Il fait partie du noyau depuis des décennies. Il prend en charge les synthétiseurs logiciels et matériels. Tu peux te connecter à un TTY et utiliser ta machine sans interface graphique. Mais il ne fonctionne nulle part. - Ta distribution ne charge pas speakup_soft. - Elle ne démarre pas espeakup. - Elle ne fournit pas le module de synthèse dans l'initrd. - Le système audio peut même ne pas s'initialiser avant le démarrage d'espeakup, ce qui le fait échouer en silence. Donc même si tu démarres en mode root - par exemple parce que l'interface graphique s'est cassée, tu n'obtiens rien. Pas même une erreur. Tu te retrouves seul, le cul sur ta chaise, sans lecture, sans solution de repli, en espérant juste que tu te rappelleras des suites de touches précises qui te permettront d'obtenir un shell pour aveugle fonctionnel. Tu veux le faire fonctionner ? Tu dois : - Installer et activer Speakup. - Apporter un correctif à l'initrd. - Reconstruire ta pile audio. - Déboguer la configuration TTY. - Vérifier que tu n'as pas oublié un module du noyau. ## Des scripts pour chaque truc. Pour chaque truc. Tu veux : - Orca persistant ? Tu scriptes. - Speakup au démarrage ? Tu scriptes. - L'audio de root envoyé à ta session ? Tu scriptes. - Que PipeWire accepte les connexions à partir d'autres utilisateur'ice ? Tu scriptes. - La prise en charge du braille au démarrage ? T'as deviné. Tu scriptes. L'accessibilité de Linux est désormais une collection de scripts shell random sortis d'archives de listes de diffusion et foutus dans des hacks locaux, maintenus par une personne quelque part, et qui fonctionnent peut-être encore. Peut-être pas. Ce n'est pas comme ça qu'on devrait attendre qu'une personne utilise un ordinateur. Mais c'est notre réalité. Parce que personne n'a fait de tout cela une norme. ## "Sécurisé par design" signifie "enfermé dehors par défaut" Lancer ALSA en tant que root avait un énorme avantage : Si l'environnement de bureau mourrait, tu pouvais quand même garder la lecture d'écran. Avec PipeWire ou PulseAudio, l'audio est lié à une session utilisateur'ice. Cette session ne peut pas partager l'audio avec root. Donc si GNOME meurt, si ta session utilisateur'ice ne démarre pas, ou que t'as besoin d'une console en root ? Tu n'as le droit qu'à du silence. Tu veux que root envoie de l'audio à ta session utilisateur'ice ? Tu dois : - Mettre en place des sockets Pulse partagés dans /run/user/1000/pulse/. - Reconfigurer PipeWire avec des permissions inter-utilisateurs. - Démarrer un bus de session avec le bon UID. - Modifier un fichier de service pour permettre à l'utilisateur root d'accéder à une socket appartenant à l'utilisateur'ice. Ce qui se reproduit lors de la prochaine mise à jour de PipeWire. La sécurité, c'est bien. Mais pas quand elle bloque ta seule méthode d'interaction avec ta machine. ## L'accessibilité vient en dernier (si elle arrive tout court) > Mise à jour : Après la publication, un membre de la Fondation GNOME a m'a apporté une correction. > > Bien que GTK 4 soit sorti avec le support de l'accessibilité, l'implémentation était une réécriture complète, et il a été livré avec des bogues et des reculs. L'équipe a retardé la sortie de la version spécifiquement pour faire atterrir cette nouvelle méthode d'accessibilité qui traversait trois couches pour atteindre Orca. Des bogues ont subsisté, non pas parce que l'accessibilité a été ignorée, mais parce que le reste de la pile n'était pas encore prêt et que les tests de régression automatisés étaient inexistants à l'époque. > > Bien que mon expérience d'accessibilité de GTK 4 ait été négative, et celle de beaucoup d'autres aussi, il n'est pas juste de dire qu'il n'y avait pas de support à la livraison. Le code était là. Il ne fonctionnait tout simplement pas encore de manière fiable. GTK3 a mis fin à l'accessibilité pendant des années. GTK4 est sorti sans aucun support d'accessibilité. Pas un seul widget accessible. Pas de navigation au clavier. Pas d'intégration AT-SPI. Pourquoi ? Parce que l'accessibilité n'a jamais été testée. Wayland ? Même chose. Ils ont supprimé le verrouillage des majuscules en tant que modificateur Orca. C'est la touche dont dépendent les utilisateurs aveugles d'ordinateurs portables, car Insert n'existe pas sur la plupart des claviers modernes. Avec Wayland ? Pas de chance. Tu ne peux pas la remapper. Tu ne peux pas le réparer. GNOME a fini par le corriger. Les autres environnements de bureau ? Toujours cassés. Ça a pris des années pour GNOME. Parce que personne en dehors ne l'a testé. C'est le scénario habituel : - Un nouveau système est publié. - Il casse l'accessibilité. - Personne ne le teste avec un lecteur d'écran. - Éventuellement, quelqu'un crie. - Peut-être qu'il finit par être corrigé. Peut-être. ## MATE : le dernier bureau accessible Si tu veux utiliser un environnement de bureau graphique sous Linux et travailler avec un lecteur d'écran, il n'y a qu'une seule option qui fonctionne de manière cohérente : MATE. MATE n'est pas tape-à-l'œil. Il n'est pas moderne. Il n'innove pas comme GNOME ou ne fait pas tourner l'interface utilisateur comme KDE. Mais il parle. Il suit le focus. Orca se comporte bien. La navigation au clavier est à peu près saine. Et il fonctionne sans avoir à proposer des correctifs, à exécuter des builds de développement ou à bidouiller les composants internes de GTK. Cela ne devrait pas être un compliment. Ce devrait être le minimum. Et c'est le seul qui y parvient aussi bien. ## i3 : un rêve de mosaïque qui vient de s'effondrer i3 était le seul gestionnaire de fenêtres en mosaïque réellement prometteur pour les utilisateurs aveugles. Il est piloté par le clavier. Il est prévisible. Il fonctionnait suffisamment bien avec Orca pour être utilisable, et dans certains cas, mieux qu'avec GNOME. Mais Orca 47 est arrivé. Il y a eu une refonte majeure de la façon dont Orca gère les événements clavier - quelque chose qui devait absolument se produire. L'ancien code était fragile. Le modèle de gestion des événements était cassé. C'était la bonne chose à faire. Mais aujourd'hui ? Certaines applications sous i3 émettent des événements « fenêtre attrapée » à chaque pression de touche. Et Orca annonce consciencieusement chacun d'entre eux. Chacun. D'entre. Eux. Tu tapes ? Orca annonce l'app. Tu reviens en arrière ? Il annonce encore. Tu navigues ? Il continue. C'est inutilisable. Les gens ont remarqué. Tout le monde l'a remarqué. Mais quand tout est cassé, le tri devient un acte de désespoir. Ce bogue n'est pas ignoré. Il est juste enterré sous tout le reste. ## "Nous savons que c'est cassé. On n'y arrive juste pas." C'est le véritable enfer de l'accessibilité Linux : Nous n'attendons pas les imprévus. Nous attendons la maintenance. Prenons celle-ci : - Configurer Speech Dispatcher pour qu'il utilise espeak, langue en-gb. - Donnez-lui un emoji. Il répond : "Haut. Haut. Haut." Ce bogue existe depuis des années. Il est corrigé. Il fonctionne sur ma machine. Mais la plupart des distros continuent à livrer la version défectueuse. C'est parce que : - Le correctif n'a pas été rétroporté. - Les drapeaux de compilation n'ont pas été définis. - Le paquet n'est pas à jour. Donc, nous attendons. Nous attendons les correctifs qui existent. Nous attendons les correctifs qui sont publics. Nous attendons que les gens livrent ce qui fonctionne déjà. Nous ne demandons pas de miracles. Nous demandons des builds qui fonctionnent. Peut-être que le prochain épisode devrait s'intituler : « Ça marche sur ma machine : Les derniers mots de tous les bogues d'accessibilité Linux ». ## Debian : c'est bien... Si tu connais la poignée de main secrète À son crédit, Debian est l'une des rares distributions qui réussit à rendre l'installateur accessible. L'installateur est accessible depuis des années. Appuie sur `s` à l'invite du chargeur d'amorçage et il commencera avec la lecture vocale. Si ta machine dispose encore d'un haut-parleur interne, il émet même un bip pour indiquer qu'il est prêt. Et évidemment, la plupart des machines n'ont plus de haut-parleur interne, donc si tu loupes l'invite - ou si tu ne connaissais pas la touche `s` ? Tu reçois le silence. Mais, à la décharge de Debian, c'est documenté. Le wiki explique comment le démarrer. Une fois que c'est fait, ça marche. Le programme d'installation parle. L'invite de connexion parle. Tu obtiens du braille si tu dispose d'un moniteur. La parole continue après l'installation - parce que l'installateur a tout configuré correctement. C'est rare. C'est une bonne chose. Ça devrait être la base. Mais là où le bât blesse : Les paquets de Debian sont anciens. Les améliorations d'Orca d'il y a des années ? Elles n'y sont pas. Les mises à jour d'AT-SPI qui ont corrigé des bogues de suivi du focus ? Pas là. Même si tu compiles manuellement une nouvelle version d'Orca, tu es toujours coincé avec les anciennes bibliothèques de base - donc il y a toujours des pannes bizarres, et te voilà de retour au point de départ. Alors, tu fais ce que la plupart d'entre nous faisons : Tu compiles le tout toi-même. Ou, si tu es comme moi, tu fais quelque chose d'encore plus démoniaque. ## Bedrock Linux : le Linux Frankenstein dont tu veux vraiment Lorsque le problème des paquets devient suffisamment grave, il ne reste plus qu'une chose à faire : voler des paquets à d'autres distributions. Bedrock Linux est une méta-distribution. Ce n'est pas vraiment une distrib. C'est une méthode pour faire tourner plusieurs distrib en même temps sur le même système - proprement, nativement, avec les gestionnaires de paquets de chacune d'entre elles. Bedrock utilise ce que l'on appelle des strates, c'est-à-dire des systèmes de fichiers racine d'autres distributions (Debian, Arch, Alpine, etc.) qui coexistent tous dans ton système. - Tu installe Bedrock au-dessus de Debian. - Tu « importes » Arch en tant qu'autre strate. - Tu installes Orca, AT-SPI, et tout ce qui vient d'Arch. - Et maintenant, tu utilises la technologie d'accessibilité d'Arch au-dessus d'un système Debian stable. Tu veux la stabilité de Debian ? Tu l'as. Tu veux les logiciels de voix tout frais de Arch ? Tu les as aussi. Tu peux même faire fonctionner GNOME avec Fedora et Firefox avec Ubuntu. En même temps. On dirait de la magie. Ça ressemble aussi à : - Un cauchemar de superpositioppun de couches unionfs au démarrage - Une douzaine de namespaces - Une jonglerie en temps réel avec les résolveurs DNS - Et une perte totale de santé mentale si quelque chose se brise. Alors oui, ça marche. Je l'utilise. Mais j'écrirai probablement plus tard un billet intitulé : « Pourquoi j'utilise Bedrock Linux, et pourquoi vous ne devriez pas ». Parce qu'une fois que tu exécutes `brl import arch` et que tu patches ld.so.cache à la main pour t'assurer que ton lecteur d'écran voit les bonnes bibliothèques de la bonne distro, tu es allé trop loin. Tu ne te contentes plus d'utiliser Linux. Tu luttes contre des démons. ## Il y a de l'espoir, mais il faut plisser les yeux pour le voir Il y a bien une lueur d'espoir : NixOS. Il n'est pas accessible par défaut. Pas encore. Mais il est construit différemment. Et c'est important. Tu définis ton système en tant que code. Tu peux épingler les versions des paquets. Tu peux reconstruire exactement la même configuration sur une autre machine. Tu peux annuler les modifications si quelque chose ne fonctionne pas. Tu peux garantir que ton lecteur d'écran est installé, configuré et activé à chaque fois. C'est l'avenir. C'est ainsi que nous rendrons l'accessibilité fiable. Non pas avec des scripts fragiles ou des distributions monopersonnelles, mais avec des systèmes reproductibles qui considèrent la configuration comme une infrastructure. Mais NixOS n'est pas encore prêt. - Il est trop complexe. - Il suppose trop de connaissances. - Ses configurations globales sont intimidantes. - Ses outils ne sont pas accessibles. - Il ne parle pas au démarrage. Il est prometteur. Mais pour l'instant, il s'agit juste d'un nouvel outil puissant, et non d'un outil qu'un'e utilisateur'ice aveugle peut simplement prendre en main et utiliser. ## Ce n'est qu'un début Ce billet n'est que le début d'une série. Prochainement : - Épisode 2 : La pile audio est un crime contre l'accessibilité - Épisode 3 : Speakup, BRLTTY, et l'infrastructure oubliée de l'accès à la console - Épisode 4 : GRUB, disques cryptés et pourquoi les utilisateurs aveugles se retrouvent bloqués - Épisode 5 : Orca, AT-SPI, et pourquoi rien ne suit le focus correctement - Épisode 6 : glibc, Userland, et l'incompatibilité sous la surface - Épisode 7 : Le noyau, la console et les techniques d'accessibilité que tout le monde a oubliées Car Linux n'est pas difficile parce qu'il est puissant. Il est difficile parce qu'il s'en tape. Il n'embarque pas l'accessibilité. Il ne la maintient pas. Et quand il pète, il te laisse dans le silence. Seul. Enfermé dehors. Et on en a ras-le-bol de prétendre que ça va aller. ## Et le pire ? Je ne peux même pas le recommander. Ma compagne veut passer à Linux. Elle est frustrée par Windows. Elle veut quelque chose de plus léger, de plus rapide, quelque chose qu'elle puisse réellement contrôler. Elle m'a demandé si je devais le faire. Et je n'ai pas su quoi répondre. Parce que si je dis oui, je mens. Si je dis non, je fais le gardien du temple. Et si je lui dis la vérité - qu'elle devra modifier les configurations de PipeWire pour obtenir de l'audio sur un deuxième TTY, qu'Orca ne parlera peut-être pas après la connexion à moins qu'elle ne le scripte, que même les emoji pourraient être lus comme « haut haut haut » si Speech Dispatcher n'a pas la bonne version - j'aurai l'air d'un fou. Mais je n'exagère pas. Je le **vis**. Et bien sûr, je pourrais arranger les choses. Je pourrais tout réparer pour elle. D'ailleurs, j'y prendrais probablement plaisir. J'aime les ordinateurs. J'aime Linux. J'aime prouver aux gens qu'ils ont tort quand ils disent « ce n'est pas possible ». Mais elle ne veut pas de ça. Elle ne veut pas d'un système construit par quelqu'un d'autre. **Elle veut le faire elle-même.** Elle veut que cela fonctionne **pour elle**, selon ses propres conditions. Et Linux - à l'heure actuelle - la punira pour cela. Donc, non. Je ne peux pas le recommander. Pas encore. Et c'est ce qui me brise le cœur. --- Beaucoup de gens diront que ce n'est pas grave. Qu'il y a des choses plus importantes dans la vie. Et bien sûr, il y en a. Mais ça ? C'est important aussi. Parce que quand on s'est mis ensemble, elle ne se souciait pas de tout ça. Et maintenant ? Quand je suis coincé à déboguer le délai du lecteur d'écran ou un pipeline audio défaillant, elle dit des choses comme : > « Essaie un pipe FIFO. » « Vérifie s'il y a des fuites de mémoire. » « Est-ce que tu appelles malloc() correctement ? » Et l'autre jour, alors que j'étais en train de hurler contre Git - comme nous le faisons tous - je lui ai envoyé la documentation de Git en guise de plaisanterie. Je m'attendais à ce qu'elle la parcoure, qu'elle rigole et qu'elle dise « mais qu'est-ce que c'est que ça ? ». Et je lui répondais que oui, c'est stupide. C'est fait comme ça. J'y remédierai plus tard. Mais au lieu de cela ? Elle a **commencé à lire**. Elle a cherché revert. Elle a cherché debug. Elle a cherché blame. Parce qu'elle voulait m'aider. **Parce qu'elle voulait comprendre ce que je combattais.** Et maintenant qu'elle veut passer à Linux ? Maintenant qu'elle veut prendre le contrôle de sa propre machine ? **Je veux lui donner quelque chose digne de cette confiance.** Je veux lui dire oui, absolument, entre, c'est ici que vivent les vrais outils. Mais je ne peux pas. Pas encore. Parce que le système te punit encore si tu essaye. Parce qu'il t'enfermera silencieusement et te laissera sans voix et sans registre. Parce que le mieux que je puisse lui offrir aujourd'hui, ce sont des **scripts, des trucs qui pètent et des prières.** Et elle mérite mieux.