Skip to content

Accessibility fi

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

Saavutettavuus

🌎 Kieli: Suomikatso kaikki 33 kieltä

LockedIn CLI on vitsi, mutta sen saavutettavuus ei ole. Näin visuaalisesti rikas terminaalikäyttöliittymä — liukuväristä logo, reunuksilla varustetut kortit, braille-spinnerit, emojit — on aidosti vaikea käyttää avustavalla teknologialla, ellei sitä suunnitella sitä varten. Tämä sivu selittää mitä CLI tekee, miten se otetaan käyttöön ja yleiset parhaat käytännöt sen takana (hyödyllisiä paljon tämän projektin ulkopuolellakin).

Neljä tilaa

Tila Lippu Ympäristömuuttuja Mitä se tekee
Ruudunlukija --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, tai TERM=dumb Siisti lineaarinen pelkkä teksti: ei reunuksia, ei ASCII-taidetta, ei spinnerin liikettä, ei koristeellisia merkkejä; väri pois päältä; lyhyt kehote; semanttiset maamerkit ("Julkaisu:" … "(julkaisu päättyy)").
Korkea kontrasti --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 Korkean kontrastin paletti heikkonäköisille: puhtaan valkoinen toissijainen teksti, kirkkaammat korostukset, ei himmennystä, kiinteä korostusväri matalakontrastisen liukuvärin sijaan.
Matala häiriö --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 Vähennetty liike (ei spinnerin animaatiota), ei koristeellisia emojeja, rauhallinen kiinteä väri — säilyttää visuaalisen asettelun. Vähentää kognitiivista/aistikuormaa.
Pelkistetty / mustavalkoinen --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, tai NO_COLOR=1 Poistaa kaiken värin säilyttäen täyden asettelun, reunukset ja emojit. Terminaaleille, joilla on huono värituki, lokitukseen tai mieltymykseen. Ohittaa FORCE_COLOR:n.

Ne yhdistyvät: --high-contrast --low-distraction antaa kirkkaan, rauhallisen, emojittoman käyttöliittymän; ruudunlukijaa käyttävä henkilö TERM=dumb -terminaalissa saa saavutettavan tilan automaattisesti. Kun tilat ovat ristiriidassa, rajoittavampi voittaa — mustavalkoinen voittaa väripaletin, ja ruudunlukijatila korvaa pelkistetyn tilan.

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

Tilojen vaihtaminen session sisällä: /a11y

Sinun ei tarvitse päättää etukäteen. Interaktiivisen session sisällä /a11y-slash-komento on aito, toimiva ohjauspaneeli (saavutettavuus ei ole satiiria):

Kirjoita Tulos
/a11y Näyttää kaikkien neljän tilan nykyisen tilan (päällä/pois)
/a11y <tila> Kytkee yhden: screen-reader, high-contrast, low-distraction, plain (myös aliakset kuten sr / hc / calm / mono toimivat)
/a11y reset Sammuttaa kaikki tilat

Tila näytetään aina selkeänä päällä/pois-sanana, ei koskaan pelkällä värillä — juuri ne käyttäjät, joita tämä palvelee, eivät välttämättä havaitse väriä. Paneeli on täysin lokalisoitu.

Sen takana olevat parhaat käytännöt

Nämä ovat periaatteet, joita sovelsimme — samat pätevät mihin tahansa terminaalityökaluun.

  1. Semantiikka koristelun sijaan. Ruudunlukija lukee merkkejä. Reunusviivoista tulee "vaakaviiva, vaakaviiva…"; ASCII-taidelogo on melua. Saavutettava tila korvaa visuaalisen rakenteen sanoilla: splash ilmoittaa "LockedIn CLI" tekstinä, ja korteille annetaan maamerkit ("Julkaisu:", "(julkaisu päättyy)"), jotta käyttäjä tietää, mistä lohko alkaa ja päättyy.
  2. Älä koskaan luota pelkkään väriin tai kuvakkeisiin. Merkitys, jonka välittää vain väri tai emoji, on näkymätön joillekin käyttäjille. Pidä teksti merkityksellisenä myös värin ollessa pois — esim. "Yhdistetty Avan kanssa" toimii hyvin ilman ✔:ää.
  3. Tarjoa tekstivaihtoehtoja / poista melu. Koristeelliset emojit luetaan ääneen sanallisesti ("📥" → "saapuvan postin kansio"). Saavutettava tila poistaa puhtaasti koristeelliset merkit ja säilyttää sanat; matala häiriö poistaa äänekkäät emojit mutta säilyttää asettelun näkeville käyttäjille, jotka haluavat vain rauhaa.
  4. Kunnioita vähennettyä liikettä. Animaatio (braille-spinneri) on häiriö ja voi laukaista tasapainoelinreaktioita. Saavutettava ja matalan häiriön tilat eivät animoi — ne tulostavat tilan kerran, staattisesti. Tämä heijastaa webin prefers-reduced-motion-asetusta.
  5. Tarjoa korkea kontrasti. Matalakontrastinen "himmeän harmaa" toissijainen teksti epäonnistuu WCAG-kontrastissa monille käyttäjille. Korkean kontrastin tila vaihtaa sen puhtaaseen valkoiseen ja kirkastaa korostukset.
  6. Vähennä kognitiivista kuormaa. Näön lisäksi jotkut käyttäjät tarvitsevat vähemmän: vähemmän koristeita, ei liikettä, ei emojeja. Se on tässä ensiluokkainen tila, ei jälkiajatus.
  7. Kunnioita alustan käytäntöjä. CLI kunnioittaa jo NO_COLOR-muuttujaa; se myös käsittelee TERM=dumb:n (jonka monet ruudunlukijat ja Emacs-kuoret asettavat) kuin "mene saavutettavaan tilaan", ja lukee LOCKEDIN_REDUCE_MOTION:n. Käyttäjän olemassa olevien signaalien tunnistaminen on parempi kuin uuden asetuksen lisääminen.
  8. Tee siitä testattava, ja pidä se testattuna. Saavutettavuus, joka ei ole testiportissa, rappeutuu. Testisarja varmistaa, että saavutettavassa tulosteessa ei ole koristeellisia merkkejä, että maamerkit ovat läsnä, että korkea kontrasti vaihtaa paletin ja että matala häiriö pysyy reunustettuna — jokaisella kielellä.

Suuntamuotoilu on myös oletuksena turvallinen. Arabia, persia, heprea ja urdu eivät oletuksena lähetä bidi-ohjausmerkkejä, ellei käyttäjä nimenomaisesti aseta LOCKEDIN_BIDI=on terminaalille, jonka tiedetään tukevan eristeitä; ruudunlukijatila poistaa ne silloinkin. Mikään TTY-tunnistus tai terminaaliluettelo ei voi ohittaa tätä turvallista oletusta.

Miten se on rakennettu (uteliaille)

  • a11yFilter(s) poistaa koristeellisen Unicoden (reunusviivat, lohkot, geometriset, tekniset, dingbatit, braillen, emojit) ja tasaa tekstin vasempaan reunaan — sovelletaan kaikkeen tulosteeseen saavutettavassa tilassa.
  • emojiFilter(s) on kevyempi matalan häiriön suodatin: se poistaa vain äänekkäät emojit/symbolit ja säilyttää reunusviivat, luetelmamerkit, nuolet ja ANSI-värin, jotta visuaalinen asettelu säilyy.
  • Väriobjekti C vaihdetaan paikallaan korkean kontrastin paletiksi; liukuvärit palautuvat kiinteään korostukseen, kun korkea kontrasti tai matala häiriö on käytössä. Pelkistetty tila pakottaa jokaisen C-merkinnän tyhjäksi (väri täysin pois, jopa FORCE_COLOR:n alla) koskematta asetteluun.
  • renderSplashilla, spinnerillä, renderPromptilla ja cardilla on semanttiset haarat saavutettavaa tilaa varten (pelkkä teksti, ei liikettä, maamerkit).
  • Tunnistus asuu detectAccessible / detectHighContrast / detectLowDistraction / detectPlain -funktioissa; sisääntulokohta soveltaa niitä ennen renderöintiä. Session sisäinen /a11y-komento (handleA11y + renderA11yStatus) kytkee samaa moduulitason tilaa reaaliajassa.

Sen pitäminen toimivana kun lisäät ominaisuuden

Opetusohjelman arviointilista sisältää saavutettavuusvaiheen, ja se on hyvä tapa missä tahansa:

Aja lockedin --accessible <komentosi> ja varmista, että se toimii siistinä pelkkänä tekstinä — ei uusia koristeellisia merkkejä, jotka livahtavat suodattimen ohi — ja että jokaisella uudella jäsennellyllä lohkolla on maamerkki. Kokeile sitten --high-contrast, --low-distraction ja --plain (jonka täytyy tulostaa ei värikoodeja mutta säilyttää asettelu). Uusi käyttäjälle näkyvä teksti tarvitsee avaimen jokaisessa kielipaketissa, jotta /a11y-paneeli ja ohje pysyvät käännettyinä.


Satiiria. Ei sidoksissa LinkedIniin. 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