Skip to content

Accessibility hi

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

एक्सेसिबिलिटी

🌎 भाषा: हिन्दीसभी 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

एक session के अंदर मोड switch करना: /a11y

आपको पहले से तय नहीं करना पड़ता। 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 है।

इसके पीछे की best practices

ये वे सिद्धांत हैं जो हमने लागू किए — वही किसी भी terminal tool पर लागू होते हैं।

  1. सजावट पर 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 कहाँ शुरू और खत्म होता है।
  2. कभी सिर्फ़ colour या icons पर भरोसा न करें। जो अर्थ सिर्फ़ colour या एक emoji से ढोया जाता है वह कुछ उपयोगकर्ताओं के लिए अदृश्य है। colour बंद होने पर भी text को अर्थपूर्ण रखें — जैसे "Connected with Ava" ठीक पढ़ता है जब ✔ चला जाए।
  3. Text विकल्प दें / शोर हटाएँ। Decorative emoji ज़ोर से बोले जाते हैं ("📥" → "inbox tray")। Accessible मोड विशुद्ध decorative glyphs हटाकर शब्द रखता है; low-distraction ज़ोरदार emoji हटाता है पर उन दृष्टिवान उपयोगकर्ताओं के लिए layout रखता है जो बस शांति चाहते हैं।
  4. घटी हुई motion का सम्मान करें। Animation (braille spinner) एक distraction है और एक vestibular trigger हो सकती है। Accessible और low-distraction मोड animate नहीं करते — वे status को एक बार, स्थिर रूप से print करते हैं। यह web के prefers-reduced-motion का प्रतिबिंब है।
  5. High contrast दें। Low-contrast "muted gray" secondary text कई उपयोगकर्ताओं के लिए WCAG contrast में fail होता है। High-contrast मोड इसे शुद्ध सफ़ेद से बदल देता है और accents को चमकाता है।
  6. Cognitive load कम करें। दृष्टि के परे, कुछ उपयोगकर्ताओं को कम चाहिए: कम सजावट, कोई motion नहीं, कोई emoji नहीं। यहाँ यह एक first-class मोड है, बाद में सोचने की बात नहीं।
  7. Platform conventions का सम्मान करें। CLI पहले से NO_COLOR मानता है; यह TERM=dumb (जिसे कई screen-reader और Emacs shells export करते हैं) को भी "accessible हो जाओ" मानता है, और LOCKEDIN_REDUCE_MOTION पढ़ता है। उपयोगकर्ता के मौजूदा signals को पहचानना उन्हें एक और चीज़ configure करवाने से बेहतर है।
  8. इसे 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 मोड हर C entry को खाली कर देता है (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 /a11y command (handleA11y + renderA11yStatus) उसी module-level state को live toggle करता है।

एक feature जोड़ते समय इसे काम करता रखना

ट्यूटोरियल की 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 चाहिए, ताकि /a11y panel और help अनुवादित रहें।


Satire. 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