主题、语言与可访问性
助手属于应用,而不是一个自带视觉语言、与产品割裂的悬浮组件。它应跟随产品的主题与语言,同时让确认、错误等框架文案在不同适配器间保持一致。
主题 token 由宿主决定
在应用入口设置模式,并覆盖 token:
ts
createPling({
ui: {
theme: {
mode: "auto",
tokens: {
colorPrimary: "#0f766e",
radiusLg: "16px",
},
},
},
});宿主控件渲染时读取 resolvedTheme。mode: "auto" 是偏好,resolvedTheme 才是此刻实际生效的主题。自定义类名用于挂载点与布局选择,不应成为第二套主题系统。
语言有两个不同职责
UI 语言控制按钮、内置错误和日期格式,不强制模型的回答语言。运行时会跟随用户最新一条消息,并针对支持的中文界面追加明确的中文回答说明。如果产品需要更严格的回答语言策略,应增加一条窄范围系统说明并测试,不能假设切换 UI 语言就等于模型一定切换语言。
缺少翻译时,界面可能回退到英语。应在真实界面里检查回退,尤其是确认与危险操作文案;这里翻译不清楚会直接改变用户决定。
可访问性首先是行为
宿主至少要检查:
- 每个启动与控制按钮都有能说明结果的名称;
- 键盘焦点可见,面板或对话框打开时焦点进入其中;
- 关闭后焦点回到打开它的元素;
- 处理中、状态变化和错误会被读屏感知,且不会无故抢走焦点;
- 确认按钮文案不同,不能出现两个相同的“确定”;
- 浅色、深色与强制色彩模式下对比度仍然足够;
- 高亮动画在宿主支持时尊重减少动态效果的偏好。
助手不能遮住待确认操作的唯一入口。窄屏下应使用全宽面板或独立决定界面,而不是用盖住页面按钮的小浮层。
测真实组合
在每种支持语言、浅色与深色主题下各跑一次任务,并且包含动作不可用、工具失败、待确认和长对话。空聊天窗口的截图看不出文字截断、焦点陷阱和颜色问题。
参数见 UI 消息、主题与语言。

