issue(a11y): the Settings tabs have no tab list for screen readers

在 Open WebUI 的 Settings 窗口中,各个选项卡虽然被标记为 tab,但外层缺少 tablist 容器,因此屏幕阅读器无法播报选项卡总数和当前所处位置。遇到该报错时,优先检查 Settings 选项卡容器是否存在 role="tablist" 。

快速结论:在 Open WebUI 的 Settings 窗口中,各个选项卡虽然被标记为 tab,但外层缺少 tablist 容器,因此屏幕阅读器无法播报选项卡总数和当前所处位置。遇到该报错时,优先检查 Settings 选项卡容器是否存在 role="tablist"。

适用环境:Open WebUI dev 分支(提交 faf16fa38);Docker 安装;操作系统 Linux;浏览器 Firefox;未使用 Ollama,而是通过 OpenAI 兼容连接;默认设置。

最快修复方案:暂无确认的一步修复方案。Issue 已定位到 SettingsModal.svelte 中 role 丢失,但未在讨论中给出可执行的修复步骤。

注意事项:该问题属于无障碍语义缺失,不影响 Settings 的正常点击和功能使用;修复需改前端组件,属于界面语义调整,不影响后端或模型连接配置。

问题场景

用户在 Open WebUI 中打开 Settings 窗口时触发该问题。Settings 的选项卡(General、Interface 等)在视觉上正常显示,但使用屏幕阅读器浏览时,选项卡之间缺少 tablist 语义容器,导致无法获知选项卡数量和当前所在位置。报告者已在最新 release 和当前 dev 分支复现。

报错原文

issue(a11y): the Settings tabs have no tab list for screen readers

document.querySelector('#settings-tabs-container [role="tablist"]') ? 'tablist' : 'no tablist'

上述控制台语句输出 no tablist;在 Accessibility 面板中查看 General 选项卡,其父元素是 section,而不是 tab list。

原因分析

根据 Issue 的定位:提交 6af91325e(2025 年 6 月)曾在 SettingsModal.svelte 中为选项卡添加 role="tablist";提交 3be493f5b(2026 年 7 月)在重新设计 Settings 窗口时把搜索框移出,同时移除了该 role。由于搜索框已不再与选项卡混排,理论上可以把 role="tablist" 重新加回选项卡容器,使屏幕阅读器能够播报如 “General, tab, 1 of 9” 的位置信息。这是可能原因与可行方向,讨论中未给出已合并的修复。

环境排查

  • 确认 Open WebUI 版本是否为 dev(faf16fa38)或同样包含该重设计的版本。
  • 确认安装方式为 Docker,排除本地自定义前端构建造成的差异。
  • 确认浏览器为 Firefox;其他浏览器也可用相同控制台语句检查 tablist 是否存在。
  • 确认 Ollama 未使用,连接为 OpenAI 兼容方式,排除模型后端因素。
  • 无需检查 CUDA、PyTorch、显卡等项,该问题与推理环境无关。

解决步骤

  1. 打开 Settings 窗口,按 F12 打开开发者工具,进入 Console。
  2. 粘贴并执行 document.querySelector('#settings-tabs-container [role="tablist"]') ? 'tablist' : 'no tablist',确认当前输出为 no tablist,以判定问题存在。
  3. 在 Elements/Accessibility 面板中查看 General 选项卡的父元素,确认其父级是 section 而非 tablist。
  4. 可优先尝试:在包含 Settings 选项卡的容器(#settings-tabs-container 内)恢复 role="tablist",使选项卡有语义父容器;此方案依据 Issue 中的历史提交推断,尚未在讨论中验证。
  5. 若自行修改前端,需重新构建并部署 Open WebUI 后再复测;官方修复请关注后续版本更新。

验证方法

重新打开 Settings,再次执行控制台语句,应输出 tablist。在 Accessibility 面板中选中某个选项卡,其父元素应为具有 tablist 角色的容器;使用屏幕阅读器浏览选项卡时,应能播报选项卡位置,例如 “General, tab, 1 of 9”。

参考来源

open-webui/open-webui #33058

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 29778

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注