-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility hi
🌎 भाषा: हिन्दी — सभी 33 भाषाएँ देखें
LockedIn CLI एक मज़ाक है, पर इसकी accessibility नहीं। इतना दृश्य-समृद्ध terminal UI — gradient wordmark, box-drawing cards, braille spinners, emoji — सहायक तकनीक के साथ इस्तेमाल करना सचमुच कठिन है जब तक आप उसके लिए design न करें। यह पेज बताता है कि CLI क्या करता है, इसे कैसे चालू करें, और इसके पीछे की सामान्य best practices (जो इस प्रोजेक्ट से कहीं आगे उपयोगी हैं)।
| मोड | Flag | Env | यह क्या करता है |
|---|---|---|---|
| Screen reader |
--accessible (--a11y, --screen-reader) |
LOCKEDIN_ACCESSIBLE=1, या TERM=dumb
|
साफ़ linear plain text: कोई borders नहीं, कोई ASCII art नहीं, कोई spinner motion नहीं, कोई decorative glyphs नहीं; colour बंद; छोटा prompt; semantic landmarks ("Post:" … "(end of post)")। |
| High contrast |
--high-contrast (--hc) |
LOCKEDIN_HIGH_CONTRAST=1 |
कम दृष्टि के लिए एक high-contrast palette: शुद्ध-सफ़ेद secondary text, ज़्यादा चमकीले accents, कोई dim नहीं, low-contrast gradient की जगह solid accent। |
| Low distraction |
--low-distraction (--calm, --reduce-motion) |
LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1
|
घटी हुई motion (कोई spinner animation नहीं), कोई decorative emoji नहीं, शांत solid colour — visual layout को रखता है। कम cognitive/sensory भार के लिए। |
| Plain / monochrome |
--plain (--mono, --monochrome) |
LOCKEDIN_PLAIN=1, या NO_COLOR=1
|
पूरा layout, borders, और emoji रखते हुए सारा colour अक्षम करता है। कमज़ोर colour support वाले terminals, logging, या पसंद के लिए। FORCE_COLOR को override करता है। |
ये compose होते हैं: --high-contrast --low-distraction आपको एक चमकीला, शांत,
emoji-मुक्त UI देता है; एक screen-reader उपयोगकर्ता TERM=dumb terminal पर अपने आप
accessible मोड पाता है। जब मोड टकराते हैं, ज़्यादा restrictive वाला जीतता है —
monochrome एक colour palette को हरा देता है, और screen-reader मोड plain को पीछे छोड़
देता है।
lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin auraआपको पहले से तय नहीं करना पड़ता। interactive session के अंदर, /a11y slash command
एक असली, काम करने वाला control panel है (accessibility satire नहीं है):
| टाइप करें | परिणाम |
|---|---|
/a11y |
चारों मोड की मौजूदा स्थिति (on/off) दिखाता है |
/a11y <mode> |
एक को toggle करें: screen-reader, high-contrast, low-distraction, plain (sr / hc / calm / mono जैसे aliases भी काम करते हैं) |
/a11y reset |
हर मोड को बंद कर देता है |
स्थिति हमेशा एक स्पष्ट on/off शब्द के रूप में दिखाई जाती है, कभी सिर्फ़ colour नहीं — जिन उपयोगकर्ताओं के लिए यह है वे शायद colour को न देख पाएँ। panel पूरी तरह localized है।
ये वे सिद्धांत हैं जो हमने लागू किए — वही किसी भी terminal tool पर लागू होते हैं।
- सजावट पर semantics। एक screen reader characters पढ़ता है। Box-drawing borders बन जाते हैं "horizontal line, horizontal line…"; एक ASCII-art wordmark शोर है। Accessible मोड visual संरचना को शब्दों से बदल देता है: splash "LockedIn CLI" को text के रूप में घोषित करता है, और cards को landmarks ("Post:", "(end of post)") मिलते हैं ताकि उपयोगकर्ता जानें कि एक block कहाँ शुरू और खत्म होता है।
- कभी सिर्फ़ colour या icons पर भरोसा न करें। जो अर्थ सिर्फ़ colour या एक emoji से ढोया जाता है वह कुछ उपयोगकर्ताओं के लिए अदृश्य है। colour बंद होने पर भी text को अर्थपूर्ण रखें — जैसे "Connected with Ava" ठीक पढ़ता है जब ✔ चला जाए।
- Text विकल्प दें / शोर हटाएँ। Decorative emoji ज़ोर से बोले जाते हैं ("📥" → "inbox tray")। Accessible मोड विशुद्ध decorative glyphs हटाकर शब्द रखता है; low-distraction ज़ोरदार emoji हटाता है पर उन दृष्टिवान उपयोगकर्ताओं के लिए layout रखता है जो बस शांति चाहते हैं।
-
घटी हुई motion का सम्मान करें। Animation (braille spinner) एक distraction है और
एक vestibular trigger हो सकती है। Accessible और low-distraction मोड animate नहीं
करते — वे status को एक बार, स्थिर रूप से print करते हैं। यह web के
prefers-reduced-motionका प्रतिबिंब है। - High contrast दें। Low-contrast "muted gray" secondary text कई उपयोगकर्ताओं के लिए WCAG contrast में fail होता है। High-contrast मोड इसे शुद्ध सफ़ेद से बदल देता है और accents को चमकाता है।
- Cognitive load कम करें। दृष्टि के परे, कुछ उपयोगकर्ताओं को कम चाहिए: कम सजावट, कोई motion नहीं, कोई emoji नहीं। यहाँ यह एक first-class मोड है, बाद में सोचने की बात नहीं।
-
Platform conventions का सम्मान करें। CLI पहले से
NO_COLORमानता है; यहTERM=dumb(जिसे कई screen-reader और Emacs shells export करते हैं) को भी "accessible हो जाओ" मानता है, औरLOCKEDIN_REDUCE_MOTIONपढ़ता है। उपयोगकर्ता के मौजूदा signals को पहचानना उन्हें एक और चीज़ configure करवाने से बेहतर है। - इसे testable बनाएँ, और tested रखें। जो accessibility test गेट में नहीं है वह सड़ जाती है। suite ज़ोर देती है कि accessible output में कोई decorative glyphs नहीं, landmarks मौजूद हैं, high contrast palette बदलता है, और low-distraction border-aligned रहता है — हर भाषा में।
Directional formatting भी fail-closed है। अरबी, फ़ारसी, हिब्रू, और उर्दू कोई bidi
controls उत्सर्जित नहीं करते जब तक उपयोगकर्ता isolates को support करने के लिए जाने गए
terminal के लिए स्पष्ट रूप से LOCKEDIN_BIDI=on सेट न करे; screen-reader मोड तब भी
उन्हें हटा देता है। कोई TTY probe या terminal allowlist उस सुरक्षित default को override
नहीं कर सकता।
-
a11yFilter(s)decorative Unicode (box-drawing, block, geometric, technical, dingbats, braille, emoji) हटाता है और text को बाएँ flush करता है — accessible मोड में सारे output पर लागू। -
emojiFilter(s)हल्का low-distraction filter है: यह सिर्फ़ ज़ोरदार emoji/symbols हटाता है और box-drawing, bullets, arrows, और ANSI colour रखता है, ताकि visual layout बचा रहे। - colour object
Cजगह पर एक high-contrast palette से बदल जाता है; high-contrast या low-distraction चालू होने पर gradients एक solid accent पर fall back करते हैं। Plain मोड हरCentry को खाली कर देता है (colour पूरी तरह बंद,FORCE_COLORके तहत भी) layout को अछूता छोड़ते हुए। -
renderSplash, spinner,renderPrompt, औरcardमें accessible मोड के लिए semantic branches हैं (plain text, कोई motion नहीं, landmarks)। - Detection
detectAccessible/detectHighContrast/detectLowDistraction/detectPlainमें रहता है; entry point render से पहले उन्हें लागू करता है। in-session/a11ycommand (handleA11y+renderA11yStatus) उसी module-level state को live toggle करता है।
ट्यूटोरियल की review checklist में एक accessibility चरण शामिल है, और यह कहीं भी एक अच्छी आदत है:
lockedin --accessible <your command>चलाएँ और पुष्टि करें कि यह साफ़ plain text की तरह पढ़ता है — filter से छिपकर कोई नया decorative glyph नहीं निकल रहा — और किसी भी नए structured block का एक landmark है। फिर--high-contrast,--low-distraction, और--plainआज़माएँ (जिसे कोई colour codes उत्सर्जित नहीं करने चाहिए पर layout रखना चाहिए)। नए user-visible text को हर भाषा bundle में एक key चाहिए, ताकि/a11ypanel और help अनुवादित रहें।
Satire. 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.