-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility fa
🌎 زبان: فارسی — مشاهدهٔ هر ۳۳ زبان
LockedIn CLI یک شوخی است، اما دسترسپذیریِ آن شوخی نیست. یک رابط کاربریِ ترمینال با این حد از غنای بصری — نشانواژهی گرادیانی، کارتهای خطکشیده، اسپینرهای بریل، ایموجی — بدون طراحیِ درست، استفاده با فناوری کمکی را واقعاً دشوار میکند. این صفحه توضیح میدهد که CLI چه میکند، چگونه آن را روشن کنیم و بهترین شیوههای کلیِ پشت آن (که فراتر از این پروژه هم به کار میآید).
| حالت | پرچم | متغیر محیطی | چه میکند |
|---|---|---|---|
| صفحهخوان |
--accessible (--a11y, --screen-reader) |
LOCKEDIN_ACCESSIBLE=1، یا TERM=dumb
|
متن سادهی خطیِ تمیز: بدون حاشیه، بدون هنر اسکی، بدون حرکت اسپینر، بدون نگارههای تزئینی؛ رنگ خاموش؛ اعلانِ کوتاه؛ نشانههای معنایی ("Post:" … "(end of post)"). |
| کنتراست بالا |
--high-contrast (--hc) |
LOCKEDIN_HIGH_CONTRAST=1 |
یک پالتِ پرکنتراست برای کمبینایی: متن ثانویهی سفیدِ ناب، تأکیدهای روشنتر، بدون کمرنگی، تأکیدِ یکدست بهجای گرادیانِ کمکنتراست. |
| حواسپرتی کم |
--low-distraction (--calm, --reduce-motion) |
LOCKEDIN_LOW_DISTRACTION=1، LOCKEDIN_REDUCE_MOTION=1
|
حرکت کاهشیافته (بدون انیمیشن اسپینر)، بدون ایموجیِ تزئینی، رنگِ یکدستِ آرام — چیدمان بصری را حفظ میکند. برای کاهش بار شناختی/حسی. |
| ساده / تکرنگ |
--plain (--mono, --monochrome) |
LOCKEDIN_PLAIN=1، یا NO_COLOR=1
|
همهی رنگ را غیرفعال میکند در حالی که چیدمان، حاشیهها و ایموجیِ کامل را نگه میدارد. برای ترمینالهایی با پشتیبانیِ ضعیف از رنگ، ثبت گزارش، یا سلیقه. بر FORCE_COLOR غلبه میکند. |
اینها ترکیبپذیرند: --high-contrast --low-distraction یک رابط کاربریِ روشن،
آرام و بدونایموجی میدهد؛ یک کاربر صفحهخوان روی ترمینالِ TERM=dumb بهطور خودکار
حالت دسترسپذیر میگیرد. هنگام تعارضِ حالتها، محدودکنندهترین برنده است — تکرنگ بر
پالت رنگی میچربد، و حالت صفحهخوان جایگزین حالت ساده میشود.
lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin auraلازم نیست از پیش تصمیم بگیرید. درون نشستِ تعاملی، فرمانِ اسلشِ /a11y یک تابلوی
کنترلِ واقعی و کارآمد است (دسترسپذیری بخشِ طنز نیست):
| تایپ کنید | نتیجه |
|---|---|
/a11y |
نمایش وضعیت کنونی (روشن/خاموش) هر چهار حالت |
/a11y <mode> |
جابهجاییِ یکی: screen-reader، high-contrast، low-distraction، plain (نامهای بدیل مانند sr / hc / calm / mono هم کار میکنند) |
/a11y reset |
خاموش کردن همهی حالتها |
وضعیت همیشه بهصورت یک واژهی صریحِ روشن/خاموش نشان داده میشود، هرگز فقط با رنگ — چون همان کاربرانی که این ویژگی به آنها خدمت میکند ممکن است رنگ را درنیابند. این تابلو کاملاً بومیسازی شده است.
اینها اصولی هستند که ما به کار بستیم — همانها که برای هر ابزار ترمینالی صدق میکنند.
- معنا بر تزئین. یک صفحهخوان نویسهها را میخواند. حاشیههای خطکشیده به «خط افقی، خط افقی…» بدل میشوند؛ یک نشانواژهی هنرِ اسکی نویز است. حالت دسترسپذیر ساختار بصری را با واژهها جایگزین میکند: صفحهی آغازین «LockedIn CLI» را به شکل متن اعلام میکند و کارتها نشانه میگیرند ("Post:", "(end of post)") تا کاربران بدانند یک بلوک از کجا شروع و کجا تمام میشود.
- هرگز فقط به رنگ یا نماد تکیه نکنید. معنایی که تنها با رنگ یا یک ایموجی حمل میشود برای برخی کاربران نامرئی است. متن را با رنگِ خاموش هم بامعنا نگه دارید — مثلاً «با Ava متصل شد» با نبودِ ✔ همچنان درست خوانده میشود.
- جایگزینِ متنی فراهم کنید / نویز را حذف کنید. ایموجیِ تزئینی پرحرف خوانده میشود ("📥" → "inbox tray"). حالت دسترسپذیر نگارههای صرفاً تزئینی را حذف میکند و واژهها را نگه میدارد؛ حواسپرتی کم ایموجیِ پرصدا را حذف میکند اما چیدمان را برای کاربران بینایی که فقط آرامش میخواهند نگه میدارد.
-
حرکت کاهشیافته را محترم بشمارید. انیمیشن (اسپینرِ بریل) حواسپرتکننده است و
میتواند محرکِ دهلیزی باشد. حالتهای دسترسپذیر و حواسپرتی کم انیمیشن نمیسازند —
وضعیت را یک بار و ایستا چاپ میکنند. این کار بازتابِ
prefers-reduced-motionوب است. - کنتراست بالا ارائه دهید. متن ثانویهی «خاکستریِ کمرنگِ» کمکنتراست برای بسیاری از کاربران کنتراستِ WCAG را برآورده نمیکند. حالت کنتراست بالا آن را با سفیدِ ناب عوض میکند و تأکیدها را روشنتر میکند.
- بار شناختی را کاهش دهید. فراتر از بینایی، برخی کاربران به کمتر نیاز دارند: آرایش کمتر، بدون حرکت، بدون ایموجی. اینجا آن یک حالتِ درجهیک است، نه یک فکرِ بعدی.
-
قراردادهای بستر را ارج نهید. این CLI پیشاپیش
NO_COLORرا محترم میشمارد؛ همچنینTERM=dumb(که بسیاری از پوستههای صفحهخوان و Emacs صادر میکنند) را «برو به حالت دسترسپذیر» تلقی میکند وLOCKEDIN_REDUCE_MOTIONرا میخواند. تشخیص سیگنالهای موجودِ کاربر بهتر از آن است که وادارش کنیم چیز دیگری را هم پیکربندی کند. - آزمونپذیرش کنید و آزموده نگهش دارید. دسترسپذیریای که در دروازهٔ آزمون نباشد میپوسد. مجموعه اثبات میکند که خروجیِ دسترسپذیر هیچ نگارهی تزئینی ندارد، که نشانهها حاضرند، که کنتراست بالا پالت را عوض میکند و که حواسپرتی کم همترازِ حاشیه میماند — در هر زبان.
قالببندیِ جهتدار نیز بهصورت شکستبسته (fail-closed) است. عربی، فارسی، عبری و اردو
هیچ کنترلِ دوجهتهای صادر نمیکنند مگر اینکه کاربر صراحتاً LOCKEDIN_BIDI=on را برای
ترمینالی که پشتیبانیِ آن از جداساز (isolate) شناختهشده است تنظیم کند؛ حالت صفحهخوان
حتی در آن صورت هم آنها را حذف میکند. هیچ کاوشِ TTY یا فهرستِ مجازِ ترمینالی
نمیتواند آن پیشفرضِ امن را نادیده بگیرد.
-
a11yFilter(s)یونیکدِ تزئینی (خطکشی، بلوک، هندسی، فنی، دینگبَت، بریل، ایموجی) را حذف میکند و متن را به چپ میرانَد — روی همهی خروجی در حالت دسترسپذیر اعمال میشود. -
emojiFilter(s)فیلترِ سبکترِ حواسپرتی کم است: فقط ایموجی/نمادهای پرصدا را حذف میکند و خطکشی، گلولهها، پیکانها و رنگِ ANSI را نگه میدارد، تا چیدمان بصری زنده بماند. - شیء رنگِ
Cسرِ جای خود با یک پالتِ کنتراست بالا عوض میشود؛ وقتی کنتراست بالا یا حواسپرتی کم روشن است گرادیانها به یک تأکیدِ یکدست بازمیگردند. حالت ساده هر ورودیِCرا تهی میکند (رنگ کاملاً خاموش، حتی زیرFORCE_COLOR) در حالی که چیدمان را دستنخورده میگذارد. -
renderSplash، اسپینر،renderPromptوcardشاخههای معنایی برای حالت دسترسپذیر دارند (متن ساده، بدون حرکت، نشانهها). - تشخیص در
detectAccessible/detectHighContrast/detectLowDistraction/detectPlainقرار دارد؛ نقطهی ورود پیش از رندر آنها را اعمال میکند. فرمانِ دروننشستِ/a11y(handleA11y+renderA11yStatus) همان وضعیتِ سطحِ ماژول را زنده جابهجا میکند.
سیاههٔ بازبینیِ این آموزش یک گام دسترسپذیری دارد، و این عادتی خوب در هر جایی است:
lockedin --accessible <your command>را اجرا کنید و تأیید کنید که بهصورت متنِ سادهی تمیز خوانده میشود — بدون نگارهی تزئینیِ تازهای که از فیلتر بگذرد — و اینکه هر بلوکِ ساختاریافتهی جدید یک نشانه دارد. سپس--high-contrast،--low-distractionو--plainرا امتحان کنید (که باید هیچ کدِ رنگی صادر نکند اما چیدمان را نگه دارد). متنِ تازهی قابلمشاهده برای کاربر به یک کلید در هر بستهی زبانی نیاز دارد، تا تابلوی/a11yو راهنما ترجمهشده بمانند.
طنز. وابسته به 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.