Skip to content

Accessibility el

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

Προσβασιμότητα

🌎 Γλώσσα: Ελληνικάδες και τις 33 γλώσσες

Το LockedIn CLI είναι αστείο, αλλά η προσβασιμότητά του δεν είναι. Ένα τερματικό UI τόσο οπτικά πλούσιο — λογότυπο με ντεγκραντέ, κάρτες με πλαίσια, spinners braille, emoji — είναι πραγματικά δύσκολο να χρησιμοποιηθεί με υποστηρικτική τεχνολογία, εκτός αν το σχεδιάσεις γι' αυτό. Αυτή η σελίδα εξηγεί τι κάνει το CLI, πώς να το ενεργοποιήσεις, και τις γενικές βέλτιστες πρακτικές πίσω του (χρήσιμες πολύ πέρα από αυτό το έργο).

Οι τέσσερις λειτουργίες

Λειτουργία Σημαία Env Τι κάνει
Αναγνώστης οθόνης --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, ή TERM=dumb Καθαρό γραμμικό απλό κείμενο: χωρίς περιγράμματα, χωρίς ASCII art, χωρίς κίνηση spinner, χωρίς διακοσμητικά glyphs· χρώμα ανενεργό· σύντομη προτροπή· σημασιολογικά ορόσημα («Δημοσίευση:» … «(τέλος δημοσίευσης)»).
Υψηλή αντίθεση --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 Μια παλέτα υψηλής αντίθεσης για χαμηλή όραση: καθαρό λευκό δευτερεύον κείμενο, φωτεινότερες πινελιές, χωρίς θάμπωμα, συμπαγής τόνος αντί για το ντεγκραντέ χαμηλής αντίθεσης.
Χαμηλός περισπασμός --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 Μειωμένη κίνηση (χωρίς animation spinner), χωρίς διακοσμητικά emoji, ήρεμο συμπαγές χρώμα — διατηρεί την οπτική διάταξη. Για μειωμένο γνωστικό/αισθητηριακό φορτίο.
Απλή / μονόχρωμη --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, ή NO_COLOR=1 Απενεργοποιεί όλα τα χρώματα διατηρώντας την πλήρη διάταξη, τα περιγράμματα και τα emoji. Για τερματικά με φτωχή υποστήριξη χρώματος, για logging ή κατά προτίμηση. Υπερισχύει του FORCE_COLOR.

Συνθέτονται: το --high-contrast --low-distraction σου δίνει ένα φωτεινό, ήρεμο, χωρίς emoji UI· ένας χρήστης αναγνώστη οθόνης σε τερματικό TERM=dumb παίρνει τη λειτουργία προσβασιμότητας αυτόματα. Όταν οι λειτουργίες συγκρούονται, κερδίζει η πιο περιοριστική — η μονόχρωμη νικά μια παλέτα χρωμάτων, και η λειτουργία αναγνώστη οθόνης υπερισχύει της απλής.

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

Εναλλαγή λειτουργιών μέσα σε μια συνεδρία: /a11y

Δεν χρειάζεται να αποφασίσεις εκ των προτέρων. Μέσα στη διαδραστική συνεδρία, η slash command /a11y είναι ένας πραγματικός, λειτουργικός πίνακας ελέγχου (η προσβασιμότητα δεν είναι η σάτιρα):

Πληκτρολόγησε Αποτέλεσμα
/a11y Δείξε την τρέχουσα κατάσταση (ναι/όχι) και των τεσσάρων λειτουργιών
/a11y <mode> Εναλλαγή μίας: screen-reader, high-contrast, low-distraction, plain (λειτουργούν και ψευδώνυμα όπως sr / hc / calm / mono)
/a11y reset Απενεργοποίησε κάθε λειτουργία

Η κατάσταση εμφανίζεται πάντα ως ρητή λέξη ναι/όχι, ποτέ μόνο με χρώμα — οι ίδιοι οι χρήστες που εξυπηρετεί ίσως να μην αντιλαμβάνονται το χρώμα. Ο πίνακας είναι πλήρως τοπικοποιημένος.

Οι βέλτιστες πρακτικές πίσω του

Αυτές είναι οι αρχές που εφαρμόσαμε — οι ίδιες ισχύουν για κάθε εργαλείο τερματικού.

  1. Σημασιολογία αντί για διακόσμηση. Ένας αναγνώστης οθόνης διαβάζει χαρακτήρες. Τα περιγράμματα με πλαίσια γίνονται «οριζόντια γραμμή, οριζόντια γραμμή…»· ένα λογότυπο ASCII art είναι θόρυβος. Η λειτουργία προσβασιμότητας αντικαθιστά την οπτική δομή με λέξεις: η εναρκτήρια οθόνη ανακοινώνει το «LockedIn CLI» ως κείμενο, και οι κάρτες αποκτούν ορόσημα («Δημοσίευση:», «(τέλος δημοσίευσης)») ώστε οι χρήστες να ξέρουν πού αρχίζει και τελειώνει ένα μπλοκ.
  2. Ποτέ μη βασίζεσαι μόνο σε χρώμα ή εικονίδια. Το νόημα που μεταφέρεται μόνο από χρώμα ή emoji είναι αόρατο για ορισμένους χρήστες. Κράτα το κείμενο ουσιαστικό με το χρώμα ανενεργό — π.χ. το «Συνδέθηκες με την Ava» διαβάζεται μια χαρά αφού φύγει το ✔.
  3. Παρείχε εναλλακτικές κειμένου / αφαίρεσε τον θόρυβο. Τα διακοσμητικά emoji διαβάζονται φωναχτά με πολυλογία («📥» → «δίσκος εισερχομένων»). Η λειτουργία προσβασιμότητας αφαιρεί τα καθαρά διακοσμητικά glyphs και κρατά τις λέξεις· ο χαμηλός περισπασμός αφαιρεί τα έντονα emoji αλλά κρατά τη διάταξη για βλέποντες χρήστες που θέλουν απλώς ηρεμία.
  4. Σεβάσου τη μειωμένη κίνηση. Το animation (ο spinner braille) είναι περισπασμός και μπορεί να είναι αιθουσαίο έναυσμα. Οι λειτουργίες προσβασιμότητας και χαμηλού περισπασμού δεν κινούνται — τυπώνουν την κατάσταση μία φορά, στατικά. Αυτό αντικατοπτρίζει το prefers-reduced-motion του web.
  5. Πρόσφερε υψηλή αντίθεση. Το χαμηλής αντίθεσης «θαμπό γκρι» δευτερεύον κείμενο αποτυγχάνει την αντίθεση WCAG για πολλούς χρήστες. Η λειτουργία υψηλής αντίθεσης το αντικαθιστά με καθαρό λευκό και φωτίζει τις πινελιές.
  6. Μείωσε το γνωστικό φορτίο. Πέρα από την όραση, ορισμένοι χρήστες χρειάζονται λιγότερα: λιγότερα στολίδια, χωρίς κίνηση, χωρίς emoji. Αυτή είναι λειτουργία πρώτης τάξης εδώ, όχι μεταγενέστερη σκέψη.
  7. Τίμησε τις συμβάσεις της πλατφόρμας. Το CLI ήδη σέβεται το NO_COLOR· επίσης αντιμετωπίζει το TERM=dumb (που εξάγουν πολλά shell αναγνώστη οθόνης και Emacs) ως «πήγαινε σε προσβάσιμη λειτουργία», και διαβάζει το LOCKEDIN_REDUCE_MOTION. Το να ανιχνεύεις τα υπάρχοντα σήματα του χρήστη είναι καλύτερο από το να τον βάζεις να ρυθμίζει άλλο ένα πράγμα.
  8. Κάν' το ελέγξιμο, και κράτα το ελεγμένο. Η προσβασιμότητα που δεν είναι στην πύλη ελέγχου σαπίζει. Η σουίτα διαβεβαιώνει ότι η προσβάσιμη έξοδος δεν έχει διακοσμητικά glyphs, ότι τα ορόσημα υπάρχουν, ότι η υψηλή αντίθεση αλλάζει την παλέτα, και ότι ο χαμηλός περισπασμός παραμένει ευθυγραμμισμένος στα περιγράμματα — σε κάθε γλώσσα.

Η κατευθυντική μορφοποίηση είναι επίσης fail-closed. Τα Αραβικά, Περσικά, Εβραϊκά και Ουρντού δεν εκπέμπουν καθόλου bidi controls εκτός αν ο χρήστης ρητά ορίσει LOCKEDIN_BIDI=on για ένα τερματικό γνωστό ότι υποστηρίζει isolates· η λειτουργία αναγνώστη οθόνης τα αφαιρεί ακόμα και τότε. Καμία ανίχνευση TTY ή allowlist τερματικού δεν μπορεί να παρακάμψει αυτή την ασφαλή προεπιλογή.

Πώς είναι φτιαγμένο (για τους περίεργους)

  • Το a11yFilter(s) αφαιρεί διακοσμητικό Unicode (πλαίσια, μπλοκ, γεωμετρικά, τεχνικά, dingbats, braille, emoji) και στοιχίζει το κείμενο αριστερά — εφαρμόζεται σε όλη την έξοδο σε λειτουργία προσβασιμότητας.
  • Το emojiFilter(s) είναι το ελαφρύτερο φίλτρο χαμηλού περισπασμού: αφαιρεί μόνο τα έντονα emoji/σύμβολα και κρατά πλαίσια, κουκκίδες, βέλη και ANSI χρώμα, ώστε η οπτική διάταξη να επιβιώνει.
  • Το αντικείμενο χρώματος C αντικαθίσταται επιτόπου με μια παλέτα υψηλής αντίθεσης· τα ντεγκραντέ πέφτουν πίσω σε έναν συμπαγή τόνο όταν είναι ενεργή η υψηλή αντίθεση ή ο χαμηλός περισπασμός. Η απλή λειτουργία εξαναγκάζει κάθε εγγραφή C να είναι κενή (χρώμα εντελώς ανενεργό, ακόμα και υπό FORCE_COLOR) αφήνοντας τη διάταξη ανέγγιχτη.
  • Τα renderSplash, ο spinner, το renderPrompt και το card έχουν σημασιολογικούς κλάδους για τη λειτουργία προσβασιμότητας (απλό κείμενο, χωρίς κίνηση, ορόσημα).
  • Η ανίχνευση βρίσκεται στα detectAccessible / detectHighContrast / detectLowDistraction / detectPlain· το σημείο εισόδου τα εφαρμόζει πριν την απόδοση. Η εντός-συνεδρίας εντολή /a11y (handleA11y + renderA11yStatus) εναλλάσσει την ίδια κατάσταση επιπέδου module ζωντανά.

Πώς να το κρατήσεις λειτουργικό όταν προσθέτεις χαρακτηριστικό

Η λίστα ελέγχου του μαθήματος περιλαμβάνει ένα βήμα προσβασιμότητας, και είναι καλή συνήθεια οπουδήποτε:

Τρέξε lockedin --accessible <η εντολή σου> και επιβεβαίωσε ότι διαβάζεται ως καθαρό απλό κείμενο — χωρίς νέα διακοσμητικά glyphs να ξεγλιστρούν από το φίλτρο — και ότι κάθε νέο δομημένο μπλοκ έχει ένα ορόσημο. Μετά δοκίμασε --high-contrast, --low-distraction και --plain (που πρέπει να εκπέμπει κανέναν κωδικό χρώματος αλλά να κρατά τη διάταξη). Το νέο ορατό στον χρήστη κείμενο χρειάζεται ένα κλειδί σε κάθε γλωσσικό bundle, ώστε ο πίνακας /a11y και η βοήθεια να μένουν μεταφρασμένα.


Σάτιρα. Δεν συνδέεται με το 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