-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility fr
🌎 Langue : Français — voir les 33 langues
LockedIn CLI est une blague, mais son accessibilité n'en est pas une. Une interface de terminal aussi riche visuellement — logotype en dégradé, cartes à bordures, spinners braille, emojis — est réellement difficile à utiliser avec une technologie d'assistance à moins de la concevoir pour cela. Cette page explique ce que fait la CLI, comment l'activer et les bonnes pratiques générales qui la sous-tendent (utiles bien au-delà de ce projet).
| Mode | Option | Variable d'environnement | Ce qu'il fait |
|---|---|---|---|
| Lecteur d'écran |
--accessible (--a11y, --screen-reader) |
LOCKEDIN_ACCESSIBLE=1, ou TERM=dumb
|
Texte brut linéaire et net : pas de bordures, pas d'ASCII art, pas de mouvement du spinner, pas de glyphes décoratifs ; couleur désactivée ; invite courte ; repères sémantiques (« Publication : » … « (fin de la publication) »). |
| Contraste élevé |
--high-contrast (--hc) |
LOCKEDIN_HIGH_CONTRAST=1 |
Une palette à fort contraste pour la basse vision : texte secondaire blanc pur, accents plus vifs, pas d'atténuation, accent uni au lieu du dégradé à faible contraste. |
| Faible distraction |
--low-distraction (--calm, --reduce-motion) |
LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1
|
Mouvement réduit (pas d'animation du spinner), pas d'emoji décoratif, couleur unie et calme — conserve la mise en page visuelle. Pour réduire la charge cognitive/sensorielle. |
| Simple / monochrome |
--plain (--mono, --monochrome) |
LOCKEDIN_PLAIN=1, ou NO_COLOR=1
|
Désactive toute la couleur tout en conservant l'intégralité de la mise en page, les bordures et les emojis. Pour les terminaux à faible prise en charge des couleurs, la journalisation ou par préférence. Remplace FORCE_COLOR. |
Ils se combinent : --high-contrast --low-distraction vous donne une
interface lumineuse, calme et sans emoji ; un utilisateur de lecteur d'écran sur
un terminal TERM=dumb obtient automatiquement le mode accessible. En cas de
conflit entre modes, le plus restrictif l'emporte — le monochrome bat une palette
de couleurs, et le mode lecteur d'écran supplante le mode simple.
lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin auraVous n'avez pas à décider d'avance. Au sein de la session interactive, la slash
command /a11y est un vrai panneau de contrôle fonctionnel (l'accessibilité
n'est pas la satire) :
| Saisissez | Résultat |
|---|---|
/a11y |
Affiche l'état actuel (activé/désactivé) des quatre modes |
/a11y <mode> |
En bascule un : screen-reader, high-contrast, low-distraction, plain (des alias comme sr / hc / calm / mono marchent aussi) |
/a11y reset |
Désactive tous les modes |
L'état est toujours affiché sous forme d'un mot activé/désactivé explicite, jamais par la couleur seule — les personnes mêmes que cela sert peuvent ne pas percevoir la couleur. Le panneau est entièrement localisé.
Voici les principes que nous avons appliqués — les mêmes valent pour n'importe quel outil de terminal.
- La sémantique avant la décoration. Un lecteur d'écran lit des caractères. Les bordures deviennent « ligne horizontale, ligne horizontale… » ; un logotype en ASCII art n'est que du bruit. Le mode accessible remplace la structure visuelle par des mots : l'écran d'accueil annonce « LockedIn CLI » sous forme de texte, et les cartes reçoivent des repères (« Publication : », « (fin de la publication) ») pour que les utilisateurs sachent où un bloc commence et se termine.
- Ne jamais se fier à la seule couleur ou aux seules icônes. Un sens porté uniquement par la couleur ou un emoji est invisible pour certains utilisateurs. Gardez le texte porteur de sens une fois la couleur désactivée — p. ex. « Connecté avec Ava » se lit très bien une fois le ✔ disparu.
- Fournir des alternatives textuelles / retirer le bruit. Les emojis décoratifs sont lus à voix haute de façon verbeuse (« 📥 » → « bac de réception »). Le mode accessible retire les glyphes purement décoratifs et conserve les mots ; la faible distraction retire les emojis tapageurs mais conserve la mise en page pour les personnes voyantes qui veulent simplement du calme.
-
Respecter le mouvement réduit. L'animation (le spinner braille) est une
distraction et peut déclencher des troubles vestibulaires. Les modes accessible
et faible distraction n'animent pas — ils affichent l'état une seule fois,
de façon statique. Cela reflète le
prefers-reduced-motiondu web. - Proposer un fort contraste. Le texte secondaire « gris atténué » à faible contraste échoue au contraste WCAG pour de nombreux utilisateurs. Le mode contraste élevé le remplace par du blanc pur et rehausse les accents.
- Réduire la charge cognitive. Au-delà de la vue, certains utilisateurs ont besoin de moins : moins de fioritures, pas de mouvement, pas d'emoji. Ici, c'est un mode de premier plan, pas une pensée après coup.
-
Honorer les conventions de la plateforme. La CLI respecte déjà
NO_COLOR; elle traite aussiTERM=dumb(ce qu'exportent de nombreux lecteurs d'écran et shells Emacs) comme « passe en accessible », et litLOCKEDIN_REDUCE_MOTION. Détecter les signaux que l'utilisateur possède déjà vaut mieux que de lui faire configurer une chose de plus. - Rendre cela testable, et le garder testé. Une accessibilité qui n'est pas dans la barrière de tests se dégrade. La suite vérifie que la sortie accessible n'a aucun glyphe décoratif, que les repères sont présents, que le contraste élevé échange la palette, et que la faible distraction reste alignée sur les bordures — dans toutes les langues.
Le formatage directionnel est lui aussi en échec sûr. L'arabe, le persan,
l'hébreu et l'ourdou n'émettent aucun contrôle bidi à moins que l'utilisateur ne
définisse explicitement LOCKEDIN_BIDI=on pour un terminal connu pour prendre en
charge les isolats ; le mode lecteur d'écran les retire même dans ce cas. Aucun
sondage TTY ni liste d'autorisation de terminaux ne peut passer outre ce réglage
sûr par défaut.
-
a11yFilter(s)retire l'Unicode décoratif (traits de cadre, blocs, géométriques, techniques, dingbats, braille, emojis) et aligne le texte à gauche — appliqué à toute la sortie en mode accessible. -
emojiFilter(s)est le filtre plus léger de la faible distraction : il ne supprime que les emojis/symboles tapageurs et conserve les traits de cadre, les puces, les flèches et la couleur ANSI, pour que la mise en page visuelle survive. - L'objet de couleur
Cest remplacé sur place par une palette à fort contraste ; les dégradés retombent sur un accent uni quand le contraste élevé ou la faible distraction est actif. Le mode simple force chaque entrée deCà vide (couleur totalement désactivée, même sousFORCE_COLOR) tout en laissant la mise en page intacte. -
renderSplash, le spinner,renderPromptetcardont des branches sémantiques pour le mode accessible (texte brut, pas de mouvement, repères). - La détection réside dans
detectAccessible/detectHighContrast/detectLowDistraction/detectPlain; le point d'entrée les applique avant le rendu. La commande/a11yde la session (handleA11y+renderA11yStatus) bascule le même état au niveau du module, en direct.
La liste de revue du tutoriel inclut une étape d'accessibilité, et c'est une bonne habitude partout :
Exécutez
lockedin --accessible <votre commande>et confirmez qu'elle se lit comme du texte brut et net — aucun nouveau glyphe décoratif ne passant à travers le filtre — et que tout nouveau bloc structuré possède un repère. Essayez ensuite--high-contrast,--low-distractionet--plain(qui ne doit émettre aucun code de couleur tout en conservant la mise en page). Tout nouveau texte visible par l'utilisateur a besoin d'une clé dans chaque paquet de langue, pour que le panneau/a11yet l'aide restent traduits.
Satire. Non affilié à LinkedIn. GPL-3.0-or-later.
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.