Skip to content

Accessibility pl

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

Dostępność

🌎 Język: Polskizobacz wszystkie 33 języki

LockedIn CLI to żart, ale jego dostępność nie jest żartem. Interfejs terminalowy tak bogaty wizualnie — gradientowy znak słowny, karty rysowane ramkami, spinnery Braille'a, emoji — jest naprawdę trudny w użyciu z technologią wspomagającą, chyba że zaprojektujesz go z myślą o niej. Ta strona wyjaśnia, co CLI robi, jak to włączyć oraz ogólne najlepsze praktyki stojące za tym (przydatne znacznie poza tym projektem).

Cztery tryby

Tryb Flaga Zmienna środowiskowa Co robi
Czytnik ekranu --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, lub TERM=dumb Czysty, liniowy zwykły tekst: bez obramowań, bez ASCII art, bez ruchu spinnera, bez dekoracyjnych glifów; kolor wyłączony; krótki prompt; znaczniki semantyczne („Post:” … „(end of post)”).
Wysoki kontrast --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 Paleta o wysokim kontraście dla słabowidzących: czysto biały tekst drugorzędny, jaśniejsze akcenty, bez przyciemnienia, pełny akcent zamiast niskokontrastowego gradientu.
Niskie rozproszenie --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 Ograniczony ruch (bez animacji spinnera), bez dekoracyjnych emoji, spokojny, jednolity kolor — zachowuje układ wizualny. Dla zmniejszenia obciążenia poznawczego/sensorycznego.
Zwykły / monochromatyczny --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, lub NO_COLOR=1 Wyłącza cały kolor, zachowując pełny układ, obramowania i emoji. Dla terminali ze słabą obsługą koloru, logowania lub z preferencji. Nadpisuje FORCE_COLOR.

One się łączą: --high-contrast --low-distraction daje jasny, spokojny interfejs bez emoji; użytkownik czytnika ekranu na terminalu TERM=dumb automatycznie otrzymuje tryb dostępny. Gdy tryby są w konflikcie, wygrywa bardziej restrykcyjny — monochromatyczny bije paletę kolorów, a tryb czytnika ekranu zastępuje tryb zwykły.

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

Przełączanie trybów w trakcie sesji: /a11y

Nie musisz decydować z góry. W interaktywnej sesji komenda slash /a11y to prawdziwy, działający panel sterowania (dostępność nie jest satyrą):

Wpisz Wynik
/a11y Pokaż bieżący stan (wł./wył.) wszystkich czterech trybów
/a11y <mode> Przełącz jeden: screen-reader, high-contrast, low-distraction, plain (aliasy takie jak sr / hc / calm / mono też działają)
/a11y reset Wyłącz każdy tryb

Stan jest zawsze pokazywany jako wyraźne słowo wł./wył., nigdy samym kolorem — właśnie ci użytkownicy, którym to służy, mogą nie postrzegać koloru. Panel jest w pełni zlokalizowany.

Najlepsze praktyki, które za tym stoją

To są zasady, które zastosowaliśmy — te same odnoszą się do każdego narzędzia terminalowego.

  1. Semantyka ponad dekorację. Czytnik ekranu czyta znaki. Obramowania z ramek stają się „linia pozioma, linia pozioma…”; znak słowny z ASCII art to szum. Tryb dostępny zastępuje strukturę wizualną słowami: ekran powitalny ogłasza „LockedIn CLI” jako tekst, a karty dostają znaczniki („Post:”, „(end of post)”), aby użytkownicy wiedzieli, gdzie blok się zaczyna i kończy.
  2. Nigdy nie polegaj wyłącznie na kolorze lub ikonach. Znaczenie niesione tylko przez kolor lub emoji jest niewidoczne dla niektórych użytkowników. Utrzymuj tekst sensowny przy wyłączonym kolorze — np. „Connected with Ava” czyta się dobrze, gdy ✔ zniknie.
  3. Zapewnij alternatywy tekstowe / usuń szum. Dekoracyjne emoji są odczytywane na głos rozwlekle („📥” → „inbox tray”). Tryb dostępny usuwa czysto dekoracyjne glify i zachowuje słowa; niskie rozproszenie usuwa krzykliwe emoji, ale zachowuje układ dla widzących użytkowników, którzy chcą po prostu spokoju.
  4. Szanuj ograniczony ruch. Animacja (spinner Braille'a) rozprasza i może być wyzwalaczem przedsionkowym. Tryby dostępny i niskiego rozproszenia nie animują — drukują status raz, statycznie. To odzwierciedla webowe prefers-reduced-motion.
  5. Oferuj wysoki kontrast. Niskokontrastowy „przygaszony szary” tekst drugorzędny nie spełnia kontrastu WCAG dla wielu użytkowników. Tryb wysokiego kontrastu zamienia go na czystą biel i rozjaśnia akcenty.
  6. Zmniejsz obciążenie poznawcze. Poza wzrokiem niektórzy użytkownicy potrzebują mniej: mniej ozdobników, bez ruchu, bez emoji. To pełnoprawny tryb tutaj, a nie coś dorobionego po fakcie.
  7. Uszanuj konwencje platformy. CLI już szanuje NO_COLOR; traktuje też TERM=dumb (co eksportuje wiele powłok czytnika ekranu i Emacsa) jako „przejdź w tryb dostępny” i odczytuje LOCKEDIN_REDUCE_MOTION. Wykrywanie istniejących sygnałów użytkownika bije zmuszanie go do konfigurowania kolejnej rzeczy.
  8. Uczyń to testowalnym i utrzymuj przetestowane. Dostępność, która nie jest w bramce testowej, gnije. Zestaw sprawdza, że wyjście dostępne nie ma dekoracyjnych glifów, że znaczniki są obecne, że wysoki kontrast zamienia paletę i że niskie rozproszenie pozostaje wyrównane do obramowań — w każdym języku.

Formatowanie kierunkowe też jest domyślnie zamknięte. Arabski, perski, hebrajski i urdu nie emitują żadnych kontrolek bidi, chyba że użytkownik jawnie ustawi LOCKEDIN_BIDI=on dla terminala znanego z obsługi izolatów; tryb czytnika ekranu usuwa je nawet wtedy. Żadne sondowanie TTY ani lista dozwolonych terminali nie może nadpisać tego bezpiecznego domyślnego zachowania.

Jak to zbudowano (dla ciekawskich)

  • a11yFilter(s) usuwa dekoracyjny Unicode (rysowanie ramek, bloki, geometryczne, techniczne, dingbaty, Braille, emoji) i wyrównuje tekst do lewej — stosowany do całego wyjścia w trybie dostępnym.
  • emojiFilter(s) to lżejszy filtr niskiego rozproszenia: usuwa tylko krzykliwe emoji/symbole, a zachowuje rysowanie ramek, punktory, strzałki i kolor ANSI, więc układ wizualny przetrwa.
  • Obiekt koloru C jest w miejscu zamieniany na paletę wysokiego kontrastu; gradienty wracają do pełnego akcentu, gdy włączony jest wysoki kontrast lub niskie rozproszenie. Tryb zwykły wymusza pusty każdy wpis C (kolor całkowicie wyłączony, nawet pod FORCE_COLOR), pozostawiając układ nietknięty.
  • renderSplash, spinner, renderPrompt i card mają gałęzie semantyczne dla trybu dostępnego (zwykły tekst, bez ruchu, znaczniki).
  • Wykrywanie żyje w detectAccessible / detectHighContrast / detectLowDistraction / detectPlain; punkt wejścia stosuje je przed renderowaniem. Komenda /a11y w sesji (handleA11y + renderA11yStatus) przełącza ten sam stan na poziomie modułu na żywo.

Utrzymanie działania przy dodawaniu funkcji

Lista kontrolna recenzji z samouczka zawiera krok dotyczący dostępności, a to dobry nawyk wszędzie:

Uruchom lockedin --accessible <your command> i potwierdź, że czyta się jako czysty zwykły tekst — żadne nowe dekoracyjne glify nie prześlizgują się przez filtr — oraz że każdy nowy blok strukturalny ma znacznik. Następnie wypróbuj --high-contrast, --low-distraction i --plain (który musi emitować żadnych kodów koloru, ale zachować układ). Nowy widoczny dla użytkownika tekst potrzebuje klucza w każdym pakiecie językowym, aby panel /a11y i pomoc pozostały przetłumaczone.


Satyra. Niepowiązane z 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