问题
设置页(SettingsModal)里大量配置项只有标题 + 控件,没有说明文字。用户看到「触发模式」「润色上下文窗口」「Beta 通道」等标签时,往往不知道具体影响什么、何时该改。
2026 年初做过「页面瘦身」:SettingRow 的 desc prop 和 SectionDesc 被刻意隐藏——调用点仍传 desc={t('...Desc')},i18n 里也有大量 *Desc / *Hint 文案,但界面上完全不可见。
期望
在每个(或绝大多数)非自明配置项标题旁增加 「?」悬浮提示(桌面 hover / 移动 tap),展开详细说明该选项的作用、适用场景与注意事项。
- 不恢复每行下方小字描述(保持当前紧凑布局)
- 帮助信息应可发现(用户知道有问号可点/可悬停),而非隐藏 dead copy
现状(代码级)
| 位置 |
说明 |
openless-all/app/src/pages/settings/shared.tsx |
SettingRow 接受 desc 但不渲染;SectionDesc 为 return null |
openless-all/app/src/pages/settings/tabs.tsx |
General / Services / Privacy / Advanced / About 五个 Tab |
openless-all/app/src/i18n/*.ts |
约 100+ 条 settings.*Desc / *Hint 已存在,6 语言 |
Icon.tsx |
已有 help(问号圆)图标,设置行未使用 |
无 可复用 Tooltip 组件 |
仅零星 title= 原生 tooltip |
典型「只有标题、用户看不懂」的例子
- 触发模式(
RecordingInputSection)— 有 settings.recording.modeDesc,UI 不显示
- 录音时静音(同上)— 有
muteDuringRecordingDesc,行上甚至未传 desc
- 历史保留 / 润色上下文(
DataStorageSection)— 多条 *Desc 全部隐藏
- 主题(
ThemeSection)— 无 *Desc i18n,需新增
- LLM 提供商 / Thinking 模式(
ProvidersSection)— 注释写明 desc 因换行被拿掉
Android 权限面板(AndroidPermissionsPanel)有部分 inline hint,风格与桌面不一致,需统一决策。
建议实现
1. 共享组件
在 shared.tsx 扩展 SettingRow,或新增 SettingHelp:
- 标题旁小号
Icon name="help" 触发器
- 桌面:hover / focus 显示 tooltip
- 移动 / 触屏:tap 显示 popover(不可 hover-only)
aria-describedby + 键盘可聚焦
2. 文案来源(优先复用)
- 已有
desc={t('...Desc')} 的调用点 → 接到 tooltip
- 已有 i18n
*Desc / *Hint 但未 wired → 补 prop
- 缺失 key 的项(如 Theme)→ 补 6 语言文案
3. 分 Tab rollout 优先级
| 优先级 |
Tab / Section |
理由 |
| P0 |
General:RecordingInputSection、LanguageSection、ThemeSection |
新用户首屏,选项最抽象 |
| P1 |
Services:ProvidersSection(凭证、Thinking、模型) |
配错影响核心功能 |
| P2 |
Privacy:DataStorageSection、桌面 PermissionsSection |
数据/权限敏感 |
| P3 |
Advanced:DebugToolsSection、LocalModelSection、BetaChannelSection 等 |
进阶用户,但术语多 |
4. 平台
- Desktop + Android WebView 设置共用
pages/settings/*,同一套 SettingRow 即可
- Android 专属 inline hint 决定是否迁移为统一
? 样式(建议统一,减少两套 UX)
接受标准
非目标
- 不恢复每行 permanent 小字描述(除非个别 section 维护者明确要求)
- 不一次性重写全部 Advanced 里开发者向工具的 long-form 文档(可先链到 Help Center)
- 不在本 issue 内重做
RemoteInputSection(当前未接入 tabs)
相关
- 设置入口:
components/SettingsModal.tsx
- 外部帮助:
SettingsModal 侧栏已有 Help Center 链接,行级 tooltip 是就地补充,不替代文档站
问题
设置页(
SettingsModal)里大量配置项只有标题 + 控件,没有说明文字。用户看到「触发模式」「润色上下文窗口」「Beta 通道」等标签时,往往不知道具体影响什么、何时该改。2026 年初做过「页面瘦身」:
SettingRow的descprop 和SectionDesc被刻意隐藏——调用点仍传desc={t('...Desc')},i18n 里也有大量*Desc/*Hint文案,但界面上完全不可见。期望
在每个(或绝大多数)非自明配置项标题旁增加 「?」悬浮提示(桌面 hover / 移动 tap),展开详细说明该选项的作用、适用场景与注意事项。
现状(代码级)
openless-all/app/src/pages/settings/shared.tsxSettingRow接受desc但不渲染;SectionDesc为return nullopenless-all/app/src/pages/settings/tabs.tsxopenless-all/app/src/i18n/*.tssettings.*Desc/*Hint已存在,6 语言Icon.tsxhelp(问号圆)图标,设置行未使用Tooltip组件title=原生 tooltip典型「只有标题、用户看不懂」的例子
RecordingInputSection)— 有settings.recording.modeDesc,UI 不显示muteDuringRecordingDesc,行上甚至未传descDataStorageSection)— 多条*Desc全部隐藏ThemeSection)— 无*Desci18n,需新增ProvidersSection)— 注释写明 desc 因换行被拿掉Android 权限面板(
AndroidPermissionsPanel)有部分 inline hint,风格与桌面不一致,需统一决策。建议实现
1. 共享组件
在
shared.tsx扩展SettingRow,或新增SettingHelp:Icon name="help"触发器aria-describedby+ 键盘可聚焦2. 文案来源(优先复用)
desc={t('...Desc')}的调用点 → 接到 tooltip*Desc/*Hint但未 wired → 补 prop3. 分 Tab rollout 优先级
RecordingInputSection、LanguageSection、ThemeSectionProvidersSection(凭证、Thinking、模型)DataStorageSection、桌面PermissionsSectionDebugToolsSection、LocalModelSection、BetaChannelSection等4. 平台
pages/settings/*,同一套SettingRow即可?样式(建议统一,减少两套 UX)接受标准
SettingRow(或等价 primitive)支持可选help/ 复用现有desc作为 tooltip 内容?帮助en/zh-CN/zh-TW/ja/ko均可用(新增 key 需 6 语同步)非目标
RemoteInputSection(当前未接入 tabs)相关
components/SettingsModal.tsxSettingsModal侧栏已有 Help Center 链接,行级 tooltip 是就地补充,不替代文档站