-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility nl
🌎 Taal: Nederlands — bekijk alle 33 talen
LockedIn CLI is een grap, maar de toegankelijkheid niet. Een terminal-UI die visueel zo rijk is — woordmerk met kleurverloop, kaarten met lijnranden, braillespinners, emoji — is oprecht lastig te gebruiken met hulptechnologie als je daar niet bewust voor ontwerpt. Deze pagina legt uit wat de CLI doet, hoe je het inschakelt en welke algemene best practices erachter zitten (nuttig ver buiten dit project).
| Modus | Optie | Omgevingsvariabele | Wat het doet |
|---|---|---|---|
| Screenreader |
--accessible (--a11y, --screen-reader) |
LOCKEDIN_ACCESSIBLE=1, of TERM=dumb
|
Schone lineaire platte tekst: geen randen, geen ASCII-art, geen spinnerbeweging, geen decoratieve gliefen; kleur uit; korte prompt; semantische herkenningspunten ("Post:" … "(einde van de post)"). |
| Hoog contrast |
--high-contrast (--hc) |
LOCKEDIN_HIGH_CONTRAST=1 |
Een palet met hoog contrast voor slechtziendheid: puur witte secundaire tekst, fellere accenten, geen dim, een effen accent in plaats van het kleurverloop met laag contrast. |
| Lage afleiding |
--low-distraction (--calm, --reduce-motion) |
LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1
|
Minder beweging (geen spinneranimatie), geen decoratieve emoji, rustige effen kleur — behoudt de visuele lay-out. Voor minder cognitieve/sensorische belasting. |
| Plat (monochroom) |
--plain (--mono, --monochrome) |
LOCKEDIN_PLAIN=1, of NO_COLOR=1
|
Schakelt alle kleur uit en behoudt toch de volledige lay-out, randen en emoji. Voor terminals met zwakke kleurondersteuning, logging of voorkeur. Overschrijft FORCE_COLOR. |
Ze zijn combineerbaar: --high-contrast --low-distraction geeft je een
heldere, rustige UI zonder emoji; een screenreadergebruiker op een TERM=dumb
-terminal krijgt automatisch toegankelijke modus. Wanneer modi botsen, wint de
meest beperkende — monochroom gaat boven een kleurenpalet, en
screenreadermodus gaat boven plat.
lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin auraJe hoeft niet vooraf te kiezen. Binnen de interactieve sessie is het
/a11y-slash command een echt werkend bedieningspaneel (toegankelijkheid
is niet de satire):
| Typ | Resultaat |
|---|---|
/a11y |
Toon de huidige status (aan/uit) van alle vier de modi |
/a11y <modus> |
Schakel er één: screen-reader, high-contrast, low-distraction, plain (aliassen als sr / hc / calm / mono werken ook) |
/a11y reset |
Zet alle modi uit |
De status wordt altijd getoond als expliciet aan of uit, nooit alleen met kleur — juist de mensen voor wie dit bedoeld is, kunnen die kleur missen. Het paneel is volledig gelokaliseerd.
Dit zijn de principes die we hebben toegepast — dezelfde gelden voor elk terminalhulpmiddel.
- Semantiek boven versiering. Een screenreader leest tekens. Randen worden "horizontale lijn, horizontale lijn…"; een ASCII-art-woordmerk is ruis. Toegankelijke modus vervangt visuele structuur door woorden: de splash kondigt "LockedIn CLI" als tekst aan, en kaarten krijgen semantische herkenningspunten ("Post:", "(einde van de post)") zodat gebruikers weten waar een blok begint en eindigt.
- Vertrouw nooit alleen op kleur of iconen. Betekenis die alleen in kleur of een emoji zit, is voor sommige gebruikers onzichtbaar. Laat de tekst ook zonder kleur betekenis houden — bijvoorbeeld: "Verbonden met Ava" leest nog steeds prima zodra de ✔ weg is.
- Bied tekstalternatieven / haal de ruis weg. Decoratieve emoji worden vaak uitvoerig voorgelezen ("📥" → "postvak IN"). Toegankelijke modus verwijdert puur decoratieve gliefen en behoudt de woorden; Lage afleiding haalt de luide emoji weg maar laat de lay-out staan voor ziende gebruikers die gewoon rust willen.
-
Respecteer verminderde beweging. Animatie (de braillespinner) leidt af en
kan een vestibulaire trigger zijn. Toegankelijke modus en Lage afleiding
animeren niet — ze printen de status één keer, statisch. Dat weerspiegelt
de
prefers-reduced-motionvan het web. - Bied hoog contrast. Secundaire tekst in gedimd grijs met laag contrast faalt voor veel gebruikers op WCAG. Hoog contrast vervangt dat door zuiver wit en maakt accenten feller.
- Verlaag cognitieve belasting. Sommige gebruikers hebben, los van zicht, gewoon minder nodig: minder franje, geen beweging, geen emoji. Hier is dat een volwaardige modus, geen bijzaak achteraf.
-
Volg platformconventies. De CLI respecteert al
NO_COLOR; daarnaast behandelt hijTERM=dumb(wat veel screenreaders en Emacs-shells exporteren) als "ga toegankelijk", en leest hijLOCKEDIN_REDUCE_MOTION. Signalen gebruiken die de gebruiker al heeft ingesteld is beter dan ze nóg iets laten configureren. - Maak het testbaar en houd het getest. Toegankelijkheid die niet in de testbarrière zit, rot weg. De suite controleert dat toegankelijke uitvoer geen decoratieve gliefen heeft, dat herkenningspunten aanwezig zijn, dat Hoog contrast het palet wisselt en dat Lage afleiding de randuitlijning behoudt — in elke taal.
Directionele opmaak faalt hier ook veilig. Arabisch, Perzisch, Hebreeuws en
Urdu geven standaard geen bidi-controls uit tenzij de gebruiker expliciet
LOCKEDIN_BIDI=on instelt voor een terminal waarvan bekend is dat die isolates
ondersteunt; screenreadermodus verwijdert ze zelfs dan nog. Geen TTY-probe of
terminalallowlist kan die veilige standaard overrulen.
-
a11yFilter(s)verwijdert decoratieve Unicode (lijnranden, blokken, geometrische symbolen, technische symbolen, dingbats, braille, emoji) en zet tekst links uitgelijnd — toegepast op alle uitvoer in toegankelijke modus. -
emojiFilter(s)is het lichtere filter voor Lage afleiding: het verwijdert alleen de luide emoji/symbolen en behoudt lijnranden, bullets, pijlen en ANSI-kleur, zodat de visuele lay-out intact blijft. - Het kleurobject
Cwordt ter plekke omgewisseld voor een palet met hoog contrast; kleurverlopen vallen terug op een effen accent zodra Hoog contrast of Lage afleiding aan staat. De modus Plat (monochroom) maakt elke vermelding inCleeg (kleur volledig uit, zelfs onderFORCE_COLOR) zonder de lay-out aan te raken. -
renderSplash, de spinner,renderPromptencardhebben semantische vertakkingen voor toegankelijke modus (platte tekst, geen beweging, herkenningspunten). - Detectie leeft in
detectAccessible/detectHighContrast/detectLowDistraction/detectPlain; het entrypoint past ze toe vóór het renderen. Het/a11y-commando in de sessie (handleA11y+renderA11yStatus) schakelt live dezelfde module-status.
De reviewchecklist van de tutorial bevat ook een toegankelijkheidsstap, en dat is overal een goede gewoonte:
Draai
lockedin --accessible <je commando>en controleer dat het leest als schone platte tekst — zonder nieuwe decoratieve gliefen die langsa11yFilterglippen — en dat elk nieuw gestructureerd blok een herkenningspunt heeft. Probeer daarna--high-contrast,--low-distractionen--plain(die geen kleurcodes mag uitsturen maar de lay-out wel moet behouden). Nieuwe zichtbare tekst heeft een key nodig in elke talenbundle, zodat het/a11y-paneel en de help vertaald blijven.
Satire. Niet gelieerd aan, gesteund, gesponsord of vertegenwoordigd door 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.