快速结论:该问题出现在 Open WebUI 管理面板弹窗(如 Users > Groups 的 New Group)中的 Default models 选择器:用键盘打开后列表虽然可见,但焦点仍停留在触发按钮上,导致输入无法过滤、Tab 会跳到列表背后的表单字段。问题定位在弹窗焦点陷阱(focus trap)对 combobox 的处理,属于可访问性缺陷,不是环境或模型加载故障。
适用环境:Open WebUI dev 分支(提交 3b8205505);通过 Git Clone 安装;Linux;Firefox;Ollama v0.40.13;默认配置。Issue 未提供 Python、CUDA、显卡信息,此处不作补充。
最快修复方案:暂无确认的一步修复方案。Issue 只定位了根因(common/Modal.svelte 的焦点陷阱只允许焦点进入 menu 或 listbox 内的内容),未给出已验证的修复操作。可优先尝试:在弹窗内改用鼠标点击 Default models 选择器的搜索框再输入,以绕过键盘焦点被回弹的问题。
注意事项:上述绕过方式只是规避焦点陷阱,并未修复缺陷;升级到修复版本前,键盘操作该选择器仍可能失效。相关 Issue #33024、#33056 指向同一选择器/焦点管理的代码路径,修复时需一并验证打开、输入过滤、关闭后焦点回归等行为。
问题场景
在 Open WebUI 管理面板中依次进入 Admin Panel > Users > Groups,点击 New Group 打开新建分组弹窗。弹窗内含有 Default models 模型选择器:用 Tab 定位到该控件并按 Enter 打开后,列表弹出且第一个模型处于高亮状态,但键盘焦点仍留在弹窗中该按钮上。此时输入字母不会过滤列表,继续按 Tab 会把焦点移到列表后面的 Group Description 等字段,而列表保持打开。同一个选择器在聊天窗口外(无弹窗包裹)时,键盘操作正常。
报错原文
issue(a11y): the model picker can't take keyboard focus inside a window, such as Default models in New Group
原因分析
根据 Issue 正文的定位,原因是弹窗组件 common/Modal.svelte 的焦点陷阱逻辑:它只在焦点目标位于 menu 或 listbox 内部时,才允许焦点进入渲染在弹窗内容之外的浮层。模型选择器的搜索框是一个 combobox,既不属于 menu 也不属于 listbox,因此焦点陷阱会把它“推回”弹窗内部。结果是列表视觉上已展开但无法接收键盘输入,Tab 顺序也仍沿弹窗表单字段推进。该结论为 Issue 作者基于代码的定位,未经维护者确认的修复验证,具体实现细节以对应版本源码为准。
环境排查
- 确认 Open WebUI 版本/提交,Issue 复现于 dev 分支 3b8205505;报告中同时说明在最新 release 与 dev 分支上均已复现。
- 确认安装方式为 Git Clone,默认配置,未涉及自定义环境变量或前端构建改动。
- 确认浏览器为 Firefox,操作系统为 Linux。
- 确认复现路径为管理面板 Users > Groups 的 New Group 弹窗;作为对照,在聊天中(不经弹窗)使用同一选择器,键盘操作应正常。
- Python、CUDA、PyTorch、显卡、Ollama 相关版本与前端焦点逻辑无直接关联,Issue 未提供,此处无需排查。
解决步骤
- 先按 Issue 步骤稳定复现:Admin Panel > Users > Groups > New Group,Tab 到 Default models 后按 Enter,输入字母观察列表是否过滤,再按 Tab 观察焦点去向。
- 记录对照结果:在聊天界面(不在弹窗中)使用同一模型选择器,确认键盘输入过滤正常,以排除浏览器或输入法层面的问题。
- 可优先尝试的临时绕过:打开列表后直接用鼠标点击选择器内部的搜索框再输入;或直接鼠标点选模型,避免依赖键盘焦点。
- 如具备开发条件,可检查当前版本
common/Modal.svelte的焦点陷阱判定逻辑,确认是否仍仅将 menu/listbox 视为可脱离弹窗的焦点目标;Issue 未给出补丁,修改前应以官方后续提交为准,不建议在未经验证的情况下自行改源码用于生产环境。 - 关注 Issue #33024、#33056 等关联问题的处理进展,它们涉及同一模型选择器的键盘可达性与关闭后的焦点回归,通常会在同一轮修复中覆盖。
验证方法
在弹窗中的 Default models 选择器上用键盘重新走一遍完整流程:Enter 打开后焦点应进入搜索框、输入即可过滤列表、Tab 不应跳到列表背后的字段、按 Escape 或选定模型关闭后焦点应回到触发按钮。同时确认聊天中的同一选择器键盘操作未出现回归。Issue 关闭时未提供已验证的修复提交,实际修复效果需以官方修复版本为准。
参考来源
关联:#33024、#33056(由机器人评论在 Issue 中列出)
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug]: Qwen3.6-35B-A3B (hybrid GDN + MoE): a prompt's logprobs move by up to 0.2 when another sequence shares its engine step (v0.30.0, sm_1](https://www.chat-gpts.plus/wp-content/uploads/2026/10/59764-7f760e85-768x403.jpg)

