Skip to content

Accessibility bn

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

অ্যাক্সেসিবিলিটি

🌎 ভাষা: বাংলাসব ৩৩টি ভাষা দেখুন

LockedIn CLI একটি রসিকতা, কিন্তু এর accessibility নয়। এতটা দৃশ্যত সমৃদ্ধ একটি terminal UI — gradient wordmark, box-drawing card, braille spinner, emoji — সহায়ক প্রযুক্তি দিয়ে ব্যবহার করা সত্যিই কঠিন যদি না আপনি সেভাবে design করেন। এই পাতাটি ব্যাখ্যা করে CLI কী করে, কীভাবে এটি চালু করবেন, এবং এর পেছনের সাধারণ best practice (এই প্রকল্পের বাইরেও অনেকভাবে কাজে লাগে)।

চারটি মোড

মোড Flag Env এটি যা করে
Screen reader --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, বা TERM=dumb পরিচ্ছন্ন linear plain text: কোনো border নেই, কোনো ASCII art নেই, কোনো spinner গতি নেই, কোনো decorative glyph নেই; colour বন্ধ; সংক্ষিপ্ত prompt; semantic landmark ("Post:" … "(end of post)")।
High contrast --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 কম দৃষ্টির জন্য একটি high-contrast palette: বিশুদ্ধ-সাদা secondary text, উজ্জ্বলতর accent, কোনো dim নেই, low-contrast gradient-এর বদলে solid accent।
Low distraction --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 কমানো গতি (কোনো spinner animation নেই), কোনো decorative emoji নেই, শান্ত solid colour — visual layout রাখে। কম cognitive/sensory চাপের জন্য।
Plain / monochrome --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, বা NO_COLOR=1 সম্পূর্ণ layout, border, ও emoji রেখে সমস্ত colour নিষ্ক্রিয় করে। দুর্বল colour support-এর terminal, 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-এর ভেতরে মোড সুইচ করা: /a11y

আপনাকে আগেভাগে সিদ্ধান্ত নিতে হবে না। interactive session-এর ভেতরে, /a11y slash command একটি সত্যিকারের, কার্যকর control panel (accessibility স্যাটায়ার নয়):

টাইপ করুন ফলাফল
/a11y চারটি মোডের বর্তমান অবস্থা (on/off) দেখায়
/a11y <mode> একটি toggle করুন: screen-reader, high-contrast, low-distraction, plain (sr / hc / calm / mono-র মতো alias-ও কাজ করে)
/a11y reset প্রতিটি মোড বন্ধ করে

অবস্থা সবসময় একটি স্পষ্ট on/off শব্দ হিসেবে দেখানো হয়, কখনো শুধু colour নয় — এটি যাদের সেবা করে ঠিক সেই ব্যবহারকারীরা হয়তো colour উপলব্ধি করবেন না। panel-টি সম্পূর্ণ localized।

এর পেছনের best practice

এগুলো সেই নীতি যা আমরা প্রয়োগ করেছি — একই নীতি যেকোনো terminal tool-এ খাটে।

  1. সজ্জার উপর semantics। একটি screen reader অক্ষর পড়ে। Box-drawing border হয়ে যায় "horizontal line, horizontal line…"; একটি ASCII-art wordmark হলো শব্দগোলমাল। Accessible মোড visual structure-কে শব্দ দিয়ে প্রতিস্থাপন করে: splash "LockedIn CLI"-কে text হিসেবে ঘোষণা করে, এবং card পায় landmark ("Post:", "(end of post)") যাতে ব্যবহারকারী জানেন একটি block কোথায় শুরু ও শেষ হয়।
  2. কখনো শুধু colour বা icon-এর উপর নির্ভর করবেন না। শুধু colour বা একটি emoji বহন করে এমন অর্থ কিছু ব্যবহারকারীর কাছে অদৃশ্য। colour বন্ধ রেখে text অর্থবহ রাখুন — যেমন "Connected with Ava" ✔ চলে গেলেও ঠিকঠাক পড়ে।
  3. Text বিকল্প দিন / শব্দগোলমাল ছেঁটে ফেলুন। Decorative emoji উচ্চারিত হয় বিস্তারিতভাবে ("📥" → "inbox tray")। Accessible মোড কেবল decorative glyph ছেঁটে শব্দ রাখে; low-distraction জোরালো emoji ছাঁটে কিন্তু যারা শুধু শান্তি চান সেই দৃষ্টিসম্পন্ন ব্যবহারকারীদের জন্য layout রাখে।
  4. কমানো গতিকে সম্মান করুন। Animation (braille spinner) একটি বিক্ষেপ এবং একটি 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 মোড এটিকে বিশুদ্ধ সাদায় বদলে দেয় এবং accent উজ্জ্বল করে।
  6. Cognitive load কমান। দৃষ্টির বাইরে, কিছু ব্যবহারকারীর কম দরকার: কম কারুকাজ, কোনো গতি নেই, কোনো emoji নেই। এখানে এটি একটি প্রথম-শ্রেণির মোড, পরে-ভাবার বিষয় নয়।
  7. Platform convention মেনে চলুন। CLI ইতিমধ্যে NO_COLOR মানে; এটি TERM=dumb-কেও (যা অনেক screen-reader ও Emacs shell export করে) "accessible হও" হিসেবে ধরে, এবং LOCKEDIN_REDUCE_MOTION পড়ে। ব্যবহারকারীর বিদ্যমান signal শনাক্ত করা তাদের আরেকটা জিনিস configure করানোর চেয়ে ভালো।
  8. এটি testable করুন, এবং tested রাখুন। যে accessibility test গেটে নেই তা পচে। suite জোর দেয় যে accessible output-এ কোনো decorative glyph নেই, landmark উপস্থিত, high contrast palette বদলায়, এবং low-distraction border-aligned থাকে — প্রতিটি ভাষায়।

Directional formatting-ও fail-closed। আরবি, ফারসি, হিব্রু, ও উর্দু কোনো bidi control নির্গত করে না যতক্ষণ না ব্যবহারকারী isolate সমর্থন করে জানা একটি 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/symbol সরায় এবং box-drawing, bullet, arrow, ও ANSI colour রাখে, যাতে visual layout টিকে থাকে।
  • colour object C স্থানেই একটি high-contrast palette-এ বদলে যায়; high-contrast বা low-distraction চালু থাকলে gradient একটি solid accent-এ fall back করে। Plain মোড প্রতিটি C entry খালি করে দেয় (colour সম্পূর্ণ বন্ধ, FORCE_COLOR-এর অধীনেও) layout অস্পৃশ্য রেখে।
  • renderSplash, spinner, renderPrompt, ও card-এর accessible মোডের জন্য semantic branch আছে (plain text, কোনো গতি নেই, landmark)।
  • 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 code নির্গত করবে না কিন্তু layout রাখবে)। নতুন user-দৃশ্যমান text-এর প্রতিটি ভাষা bundle-এ একটি key দরকার, যাতে /a11y panel ও help অনূদিত থাকে।


স্যাটায়ার। 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