Skip to content

Accessibility uk

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

Доступність

🌎 Мова: Українськапереглянути всі 33 мови

LockedIn CLI — це жарт, але його доступність — ні. Настільки візуально насичений термінальний інтерфейс — градієнтний логотип, картки з псевдографіки, брайлівські спінери, емодзі — по-справжньому важко використовувати з допоміжними технологіями, якщо не проєктувати під них. Ця сторінка пояснює що робить CLI, як це увімкнути та загальні найкращі практики за цим (корисні далеко за межами цього проєкту).

Чотири режими

Режим Прапорець Env Що робить
Екранний диктор --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, або TERM=dumb Чистий лінійний простий текст: без рамок, без ASCII-арту, без руху спінера, без декоративних гліфів; колір вимкнено; коротка підказка; семантичні орієнтири («Допис:» … «(кінець допису)»).
Висока контрастність --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

Не обов'язково вирішувати наперед. Усередині інтерактивної сесії slash-команда /a11y — це справжня, робоча панель керування (доступність — не сатира):

Введіть Результат
/a11y Показати поточний стан (увімк./вимк.) усіх чотирьох режимів
/a11y <mode> Перемкнути один: screen-reader, high-contrast, low-distraction, plain (аліаси на кшталт sr / hc / calm / mono теж працюють)
/a11y reset Вимкнути всі режими

Стан завжди показується як явне слово увімк./вимк., ніколи лише кольором — ті самі користувачі, яким це служить, можуть не сприймати колір. Панель повністю локалізована.

Найкращі практики за цим

Це принципи, які ми застосували — ті самі застосовні до будь-якого термінального інструмента.

  1. Семантика важливіша за декорацію. Екранний диктор читає символи. Рамки з псевдографіки перетворюються на «горизонтальна лінія, горизонтальна лінія…»; логотип з ASCII-арту — це шум. Режим доступності замінює візуальну структуру словами: заставка оголошує «LockedIn CLI» як текст, а картки отримують орієнтири («Допис:», «(кінець допису)»), щоб користувачі знали, де починається й закінчується блок.
  2. Ніколи не покладайтеся лише на колір чи іконки. Сенс, який несе лише колір чи емодзі, невидимий для деяких користувачів. Тримайте текст осмисленим із вимкненим кольором — наприклад, «Встановлено зв'язок з Ava» читається нормально після того, як ✔ зникла.
  3. Надавайте текстові альтернативи / прибирайте шум. Декоративні емодзі зачитуються вголос багатослівно («📥» → «лоток вхідних»). Режим доступності прибирає суто декоративні гліфи й лишає слова; низька відволікуваність прибирає гучні емодзі, але зберігає розкладку для зрячих користувачів, яким потрібен просто спокій.
  4. Поважайте знижений рух. Анімація (брайлівський спінер) — це відволікання і може бути вестибулярним тригером. Режими доступності та низької відволікуваності не анімують — вони друкують статус один раз, статично. Це віддзеркалює prefers-reduced-motion з вебу.
  5. Пропонуйте високу контрастність. Низькоконтрастний «приглушено-сірий» вторинний текст провалює контраст WCAG для багатьох користувачів. Режим високої контрастності міняє його на чисто-білий і робить акценти яскравішими.
  6. Знижуйте когнітивне навантаження. Окрім зору, деяким користувачам потрібно менше: менше прикрас, без руху, без емодзі. Це першокласний режим тут, а не запізніла думка.
  7. Дотримуйтеся угод платформи. CLI уже поважає NO_COLOR; він також трактує TERM=dumb (що експортують багато оболонок екранних дикторів та Emacs) як «переходь у режим доступності» і читає LOCKEDIN_REDUCE_MOTION. Виявлення вже наявних сигналів користувача краще, ніж змушувати його налаштовувати ще одну річ.
  8. Зробіть це тестованим і тримайте протестованим. Доступність, якої немає в тестовому бар'єрі, гниє. Набір стверджує, що доступний вивід не містить декоративних гліфів, що орієнтири присутні, що висока контрастність міняє палітру, а низька відволікуваність лишається вирівняною за рамками — кожною мовою.

Напрямне форматування теж fail-closed. Арабська, перська, іврит та урду не видають жодних bidi-керівних символів, доки користувач явно не задасть LOCKEDIN_BIDI=on для терміналу, про який відомо, що він підтримує isolates; режим екранного диктора прибирає їх навіть тоді. Жодне зондування TTY чи allowlist терміналів не може перевизначити це безпечне значення за замовчуванням.

Як це побудовано (для допитливих)

  • a11yFilter(s) прибирає декоративний Unicode (псевдографіка, блоки, геометричні, технічні, dingbats, брайль, емодзі) і притискає текст ліворуч — застосовується до всього виводу в режимі доступності.
  • emojiFilter(s) — легший фільтр низької відволікуваності: він прибирає лише гучні емодзі/символи і зберігає псевдографіку, маркери, стрілки та ANSI-колір, тож візуальна розкладка виживає.
  • Об'єкт кольору C замінюється на висококонтрастну палітру на місці; градієнти відкочуються до суцільного акценту, коли увімкнено високу контрастність чи низьку відволікуваність. Простий режим примусово робить кожен запис C порожнім (колір повністю вимкнено, навіть під FORCE_COLOR), лишаючи розкладку недоторканою.
  • renderSplash, спінер, renderPrompt і card мають семантичні гілки для режиму доступності (простий текст, без руху, орієнтири).
  • Виявлення живе в detectAccessible / detectHighContrast / detectLowDistraction / detectPlain; точка входу застосовує їх перед рендерингом. Внутрішньосесійна команда /a11y (handleA11y + renderA11yStatus) перемикає той самий стан рівня модуля в реальному часі.

Як зберегти це робочим, додаючи функцію

Чек-лист рев'ю з посібника містить крок доступності, і це гарна звичка будь-де:

Запустіть lockedin --accessible <ваша команда> й переконайтеся, що це читається як чистий простий текст — жодні нові декоративні гліфи не прослизають повз фільтр — і що будь-який новий структурований блок має орієнтир. Потім спробуйте --high-contrast, --low-distraction та --plain (який має видавати жодних кодів кольору, але зберігати розкладку). Новому видимому користувачеві тексту потрібен ключ у кожному мовному бандлі, щоб панель /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