Skip to content

Accessibility sv

James Morris edited this page Jul 29, 2026 · 1 revision

Tillgänglighet

🌎 Språk: Svenskase alla 33 språk

LockedIn CLI är ett skämt, men dess tillgänglighet är det inte. Ett terminal-UI så här visuellt rikt — gradientlogotyp, kort med rutlinjer, punktskrifts- spinnare, emoji — är genuint svårt att använda med hjälpmedelsteknik om man inte designar för det. Den här sidan förklarar vad CLI:n gör, hur man slår på det, och de allmänna bästa praxis bakom det (användbart långt utöver det här projektet).

De fyra lägena

Läge Flagga Miljövariabel Vad det gör
Skärmläsare --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, eller TERM=dumb Ren linjär vanlig text: inga kanter, ingen ASCII-konst, ingen spinnerrörelse, inga dekorativa glyfer; färg av; kort prompt; semantiska landmärken ("Inlägg:" … "(slut på inlägg)").
Hög kontrast --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 En högkontrastpalett för nedsatt syn: helvit sekundärtext, ljusare accenter, ingen nedtoning, solid accentfärg istället för lågkontrast-gradienten.
Låg distraktion --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 Minskad rörelse (ingen spinneranimation), inga dekorativa emoji, lugn solid färg — behåller den visuella layouten. För minskad kognitiv/sensorisk belastning.
Enkel / monokrom --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, eller NO_COLOR=1 Inaktiverar all färg samtidigt som hela layouten, kanterna och emojin behålls. För terminaler med dåligt färgstöd, loggning, eller preferens. Åsidosätter FORCE_COLOR.

De kombineras: --high-contrast --low-distraction ger dig ett ljust, lugnt, emojifritt UI; en skärmläsaranvändare på en TERM=dumb-terminal får tillgängligt läge automatiskt. När lägen krockar vinner det mest restriktiva — monokrom slår en färgpalett, och skärmläsarläge åsidosätter enkelt läge.

lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin aura

Att växla läge inuti en session: /a11y

Du behöver inte bestämma i förväg. Inuti den interaktiva sessionen är /a11y-slash-kommandot en riktig, fungerande kontrollpanel (tillgänglighet är inte satiren):

Skriv Resultat
/a11y Visa det aktuella tillståndet (på/av) för alla fyra lägen
/a11y <läge> Växla ett: screen-reader, high-contrast, low-distraction, plain (alias som sr / hc / calm / mono fungerar också)
/a11y reset Stäng av alla lägen

Tillstånd visas alltid som ett explicit på/av-ord, aldrig enbart färg — just de användare det här tjänar kanske inte uppfattar färgen. Panelen är helt lokaliserad.

De bästa praxis bakom det

Det här är principerna vi tillämpade — samma gäller för vilket terminalverktyg som helst.

  1. Semantik framför dekoration. En skärmläsare läser tecken. Rutlinjer blir "horisontell linje, horisontell linje…"; en ASCII-konst-logotyp är brus. Tillgängligt läge ersätter visuell struktur med ord: splashen tillkännager "LockedIn CLI" som text, och kort får landmärken ("Inlägg:", "(slut på inlägg)") så att användare vet var ett block börjar och slutar.
  2. Lita aldrig enbart på färg eller ikoner. Betydelse som endast förmedlas av färg eller en emoji är osynlig för vissa användare. Håll texten meningsfull med färgen av — t.ex. läses "Kopplad med Ava" bra när ✔ är borta.
  3. Erbjud textalternativ / ta bort bruset. Dekorativa emoji läses upp ordrikt ("📥" → "inkorgsfack"). Tillgängligt läge tar bort rent dekorativa glyfer och behåller orden; låg distraktion tar bort de högljudda emojin men behåller layouten för seende användare som bara vill ha lugn.
  4. Respektera minskad rörelse. Animation (punktskrifts-spinnaren) är en distraktion och kan vara en vestibulär utlösare. Tillgängligt och lågdistraktionslägen animerar inte — de skriver ut statusen en gång, statiskt. Detta speglar webbens prefers-reduced-motion.
  5. Erbjud hög kontrast. Lågkontrast "dämpad grå" sekundärtext klarar inte WCAG-kontrast för många användare. Högkontrastläge byter ut det mot rent vitt och ljusare accenter.
  6. Minska kognitiv belastning. Bortom syn behöver vissa användare mindre: färre finesser, ingen rörelse, ingen emoji. Det är ett förstklassigt läge här, inte en eftertanke.
  7. Respektera plattformskonventioner. CLI:n respekterar redan NO_COLOR; den behandlar också TERM=dumb (vilket många skärmläsare och Emacs-skal exporterar) som "gå tillgängligt", och läser LOCKEDIN_REDUCE_MOTION. Att upptäcka användarens befintliga signaler slår att få dem att konfigurera ännu en sak.
  8. Gör det testbart, och håll det testat. Tillgänglighet som inte är i testgrinden ruttnar. Sviten säkerställer att tillgänglig utdata inte har dekorativa glyfer, att landmärken finns, att hög kontrast byter paletten, och att låg distraktion förblir kantjusterad — på varje språk.

Riktningsformatering är också fail-closed. Arabiska, persiska, hebreiska och urdu skickar inga bidi-kontroller om inte användaren uttryckligen sätter LOCKEDIN_BIDI=on för en terminal känd för att stödja isolat; skärmläsarläge tar bort dem även då. Ingen TTY-sondering eller terminal-tillåtelselista kan åsidosätta den säkra standarden.

Hur det är byggt (för de nyfikna)

  • a11yFilter(s) tar bort dekorativ Unicode (rutlinjer, block, geometriska, tekniska, dingbats, punktskrift, emoji) och vänsterjusterar texten — tillämpas på all utdata i tillgängligt läge.
  • emojiFilter(s) är det lättare lågdistraktionsfiltret: det tar bara bort de högljudda emojin/symbolerna och behåller rutlinjer, punktlistor, pilar och ANSI-färg, så att den visuella layouten överlever.
  • Färgobjektet C byts till en högkontrastpalett på plats; gradienter faller tillbaka till en solid accent när hög kontrast eller låg distraktion är på. Enkelt läge tvingar varje C-post tom (färg helt av, även under FORCE_COLOR) utan att röra layouten.
  • renderSplash, spinnaren, renderPrompt, och card har semantiska grenar för tillgängligt läge (vanlig text, ingen rörelse, landmärken).
  • Detektering finns i detectAccessible / detectHighContrast / detectLowDistraction / detectPlain; ingångspunkten tillämpar dem innan rendering. Sessionens /a11y-kommando (handleA11y + renderA11yStatus) växlar samma moduldelade tillstånd live.

Att hålla det fungerande när du lägger till en funktion

Handledningens granskningschecklista innehåller ett tillgänglighetssteg, och det är en bra vana var som helst:

Kör lockedin --accessible <ditt kommando> och bekräfta att det läses som ren text — inga nya dekorativa glyfer som smyger förbi filtret — och att varje nytt strukturerat block har ett landmärke. Testa sedan --high-contrast, --low-distraction, och --plain (som måste sända inga färgkoder men behålla layouten). Ny användarsynlig text behöver en nyckel i varje språkpaket, så att /a11y-panelen och hjälpen förblir översatta.


Satir. Inte anknuten till LinkedIn. GPL-3.0-or-later.

📘 LockedIn CLI wiki

Tutorial

Reference


Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.

Clone this wiki locally