-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility zh
🌎 语言: 简体中文 — 查看全部 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=1、LOCKEDIN_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 <mode> |
切换一种模式:screen-reader、high-contrast、low-distraction、plain(也支持 sr / hc / calm / mono 等别名) |
/a11y reset |
关闭全部模式 |
状态始终以明确的开 / 关文字显示,绝不只靠颜色传达;需要这些功能的人可能无法感知颜色。 整个面板也已完整本地化。
这些原则同样适用于其他终端工具。
- 语义优先于装饰。 屏幕阅读器逐字符朗读。框线会变成重复的“横线”,ASCII 字标则是噪声。 无障碍模式用文字替代视觉结构:启动画面直接读出“LockedIn CLI”,卡片使用 “帖子:”“(帖子结束)”等地标标示区块边界。
- 绝不只靠颜色或图标表达含义。 只由颜色或 emoji 承载的信息对一些用户不可见。 关闭颜色后文字仍应完整,例如去掉 ✔ 后,“已与 Ava 建立联系”仍然清楚。
- 提供文字替代并移除噪声。 装饰 emoji 常会被冗长朗读(“📥”会读成“收件箱托盘”)。 无障碍模式移除纯装饰符号并保留文字;低干扰模式移除醒目的 emoji,但为需要平静界面的 视力用户保留布局。
-
尊重减少动态效果的偏好。 盲文加载动画可能分散注意力,也可能引发前庭不适。
无障碍和低干扰模式都不播放动画,只静态打印一次状态,对应网页上的
prefers-reduced-motion。 - 提供高对比度。 低对比度的“柔和灰色”次要文字对许多用户不符合 WCAG 要求。高对比度模式改用纯白并提高强调色亮度。
- 降低认知负担。 有些用户需要的不是更多,而是更少:少装饰、无动画、无 emoji。 这在此处是一级功能,而不是事后补丁。
-
遵循平台惯例。 CLI 尊重
NO_COLOR,也把许多屏幕阅读器和 Emacs shell 会导出的TERM=dumb视为启用无障碍模式的信号,并读取LOCKEDIN_REDUCE_MOTION。识别既有信号比要求用户再配置一次更好。 - 让它可测试,并持续测试。 未进入测试门禁的无障碍功能会逐渐失效。测试套件会在所有语言下 检查无障碍输出不含装饰符号、语义地标存在、高对比度配色已替换,以及低干扰布局仍然对齐。
方向格式同样采取失败即关闭的策略。阿拉伯语、波斯语、希伯来语和乌尔都语默认不输出
双向文本控制符;只有用户明确为支持隔离符的终端设置 LOCKEDIN_BIDI=on 时才启用。
屏幕阅读器模式即使在此情况下也会移除这些控制符。TTY 探测或终端白名单都不能覆盖安全默认值。
-
a11yFilter(s)移除装饰 Unicode(框线、方块、几何、技术符号、装饰符、盲文和 emoji), 并将文字左对齐;无障碍模式会对所有输出应用它。 -
emojiFilter(s)是更轻量的低干扰过滤器:仅移除醒目的 emoji / 符号,保留框线、 项目符号、箭头和 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.