Skip to content

Accessibility zh HK

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

無障礙功能

🌎 語言: 繁體中文(香港)查看全部 33 種語言

LockedIn CLI 是個玩笑,但它的無障礙功能不是。漸變字標、框線卡片、盲文動畫和 emoji 讓終端機介面很豐富,卻也會令輔助技術難以使用,除非從設計開始就考慮無障礙。本頁說明 CLI 做了甚麼如何啟用,以及背後的通用最佳實踐

四種模式

模式 旗標 環境變數 效果
屏幕閱讀器 --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=1LOCKEDIN_REDUCE_MOTION=1 減少動態效果、移除裝飾 emoji、採用平靜的純色,同時保留視覺佈局,降低認知和感官負擔。
純文字 / 單色 --plain--mono--monochrome LOCKEDIN_PLAIN=1,或 NO_COLOR=1 禁用所有顏色,但保留完整佈局、邊框和 emoji。適合顏色支援不佳的終端機、記錄或個人偏好,並覆蓋 FORCE_COLOR

這些模式可以組合--high-contrast --low-distraction 會得到明亮、平靜且無 emoji 的介面;在 TERM=dumb 終端機上,屏幕閱讀器使用者會自動進入無障礙模式。模式衝突時, 限制更嚴格的設定優先:單色覆蓋彩色配色,屏幕閱讀器模式優先於純文字模式。

lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin aura

在會話中切換模式:/a11y

你不必在啟動前決定。交互會話里的 /a11y 是真正可用的控制面板:

輸入 結果
/a11y 顯示四種模式當前的開 / 關狀態
/a11y <mode> 切換一種模式:screen-readerhigh-contrastlow-distractionplain(也支援 sr / hc / calm / mono 等別名)
/a11y reset 關閉全部模式

狀態始終以明確的開 / 關文字顯示,絕不只靠顏色傳達;需要這些功能的人可能無法感知顏色。 整個面板也已完整本地化。

背後的最佳實踐

這些原則同樣適用於其他終端機工具。

  1. 語義優先於裝飾。 屏幕閱讀器逐字元朗讀。框線會變成重複的“橫線”,ASCII 字標則是噪聲。 無障礙模式用文字替代視覺結構:啟動畫面直接讀出“LockedIn CLI”,卡片使用 “帖文:”“(帖文結束)”等地標標示區塊邊界。
  2. 絕不只靠顏色或圖標表達含義。 只由顏色或 emoji 承載的資訊對一些使用者不可見。 關閉顏色後文字仍應完整,例如去掉 ✔ 後,“已與 Ava 建立聯系”仍然清楚。
  3. 提供文字替代並移除噪聲。 裝飾 emoji 常會被冗長朗讀(“📥”會讀成“收件箱”)。 無障礙模式移除純裝飾符號並保留文字;低干擾模式移除醒目的 emoji,但為需要平靜介面的 視力使用者保留佈局。
  4. 尊重減少動態效果的偏好。 盲文載入動畫可能分散注意力,也可能引發前庭不適。 無障礙和低干擾模式都不播放動畫,只靜態輸出一次狀態,對應網頁上的 prefers-reduced-motion
  5. 提供高對比度。 低對比度的“柔和灰色”次要文字對許多使用者不符合 WCAG 要求。高對比度模式改用純白並提高強調色亮度。
  6. 降低認知負擔。 有些使用者需要的不是更多,而是更少:少裝飾、無動畫、無 emoji。 這在此處是一級功能,而不是事後補丁。
  7. 遵循平臺慣例。 CLI 尊重 NO_COLOR,也把許多屏幕閱讀器和 Emacs shell 會導出的 TERM=dumb 視為啟用無障礙模式的訊號,並讀取 LOCKEDIN_REDUCE_MOTION。識別既有訊號比要求使用者再設定一次更好。
  8. 讓它可測試,並持續測試。 未進入測試門禁的無障礙功能會逐漸失效。測試套件會在所有語言下 檢查無障礙輸出不含裝飾符號、語義地標存在、高對比度配色已替換,以及低干擾佈局仍然對齊。

方向格式同樣采取失敗即關閉的策略。阿拉伯語、波斯語、希伯來語和烏爾都語預設不輸出 雙向文字控制符;只有使用者明確為支援隔離符的終端機設定 LOCKEDIN_BIDI=on 時才啟用。 屏幕閱讀器模式即使在此情況下也會移除這些控制符。TTY 探測或終端機白名單都不能覆蓋安全預設值。

實作方式(供感興趣的讀者)

  • a11yFilter(s) 移除裝飾 Unicode(框線、方塊、幾何、技術符號、裝飾符、盲文和 emoji), 並將文字左對齊;無障礙模式會對所有輸出應用它。
  • emojiFilter(s) 是更輕量的低干擾過濾器:僅移除醒目的 emoji / 符號,保留框線、 項目符號、箭頭和 ANSI 顏色,因此視覺佈局仍然存在。
  • 高對比度模式會就地替換顏色對象 C;開啟高對比度或低干擾時,漸變改為純色強調。 純文字模式強制 C 的每個值為空,即使設定 FORCE_COLOR 也完全無顏色,同時保留佈局。
  • renderSplash、載入動畫、renderPromptcard 在無障礙模式下都有語義分支: 純文字、無動畫並帶地標。
  • 偵測邏輯位於 detectAccessible / detectHighContrast / detectLowDistraction / detectPlain;進入點會在渲染前應用偵測結果。會話內的 /a11y 指令(handleA11y + renderA11yStatus)實時切換同一組模組狀態。

加入功能時如何保持無障礙

教程的審查清單包含無障礙步驟:

執行 lockedin --accessible <your command>,確認它是干凈、易讀的純文字,沒有新的裝飾符號 漏過過濾器,而且任何結構化區塊都有地標。然後測試 --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