iPhone Safari: the + (More) button in the message box needs two taps to open its menu

该问题出现在 iPhone Safari 中点击消息输入框左侧 +(More)按钮时,第一次点按没有反应、需要第二次才展开菜单。维护者已在 Playwright WebKit 的 iPhone 13 设备配置下测试并复现失败,因此现有证据不支持“Tooltip 吞掉首次点按”的结论,优先排查方向应转

快速结论:该问题出现在 iPhone Safari 中点击消息输入框左侧 +(More)按钮时,第一次点按没有反应、需要第二次才展开菜单。维护者已在 Playwright WebKit 的 iPhone 13 设备配置下测试并复现失败,因此现有证据不支持“Tooltip 吞掉首次点按”的结论,优先排查方向应转向 iOS/Safari 版本、键盘是否打开、输入框焦点状态等设备侧因素。

适用环境:Open WebUI v0.11.4(pip 安装,Python 3.12),客户端为 iPhone Safari;复现测试环境为 Playwright WebKit 26.4、iPhone 13 设备配置、Tippy 6.3.7。测试代码基线为 dev 分支 7e6c8d7b6f17fd203ada83c64c43d2bf8fd67b2e。

最快修复方案:暂无确认的一步修复方案。原始 Issue 未提供经过设备验证的修复,维护者也在复现测试后关闭了该 Issue。

注意事项:Issue 中提出的 touch={false} 改动只是基于代码阅读的推测,并未在真机上确认;维护者测试发现当前 touch: true 下菜单仍会在第一次点按后正常展开,因此该改动不构成对已证实回归的修复。

问题场景

用户在 iPhone 上通过 Safari 打开 Open WebUI v0.11.4(pip 安装,Python 3.12),进入任意聊天后点击消息输入框左侧的 +(More)按钮。预期第一次点按就展开菜单,实际第一次点按没有任何可见反应,第二次点按才打开菜单。同一按钮在桌面端单击即可正常工作。

报错原文

iPhone Safari: the + (More) button in the message box needs two taps to open its menu

原因分析

报告者根据代码阅读推测:src/lib/components/chat/MessageInput/InputMenu.svelte 中的触发按钮被包裹在 <Tooltip content={$i18n.t('More')}> 里,而 src/lib/components/common/Tooltip.svelte 默认向 tippy.js 传入 touch = true,因此在触摸屏上第一次点按可能被用于显示 “More” tooltip。报告者认为改为 touch={false} 可能解决问题。

但维护者在当前 dev 分支使用 Playwright WebKit 26.4、iPhone 13 设备配置和 Tippy 6.3.7,复现了 Tooltip-inside-Dropdown 的事件流程后给出不同结论:在 touch: true 下第一次点按依次产生 pointerdown、touchstart、pointerup、touchend、click、dropdown-click,菜单在第一次点按即展开并以 aria-expanded="true" 结束;touch tooltip 虽会出现,但没有消费或阻止冒泡的 click。测试 touch: false 也只是关闭了触摸触发的 tooltip,菜单仍在第一次点按展开。因此,现有证据无法复现该失败,touch={false} 也被认为不能修复已证实的回归。

维护者同时指出,使用相同 tooltip 与相同触摸设置的发送按钮并未出现需要两次点按的报告,而且若 tooltip 真吃掉首次点按,第一次点按应会显示 “More”,与实际描述不符。

可能的真实原因仍未确认,维护者提示可能与真实 iOS 设备上的特定交互有关,例如键盘处于打开状态、输入框焦点状态,或特定 iOS/Safari 版本。

环境排查

  • Open WebUI 版本:确认是否为 v0.11.4 或当前 dev 分支(测试基线 7e6c8d7b6f17fd203ada83c64c43d2bf8fd67b2e)。
  • 安装方式:pip 安装,Python 3.12。
  • 客户端:iPhone 型号、iOS 版本、Safari 版本(Issue 原始报告未提供)。
  • 键盘状态:点按 + 时键盘是否处于打开状态。
  • 输入焦点:点按前消息输入框是否处于焦点状态。
  • 前端依赖:Tooltip 组件与 tippy.js(复现测试使用 Tippy 6.3.7)。

解决步骤

  1. 确认问题是否仍出现在当前 dev 分支,避免基于旧版本继续排查。
  2. 记录设备侧信息:iPhone 型号、iOS/Safari 版本、点按 + 时键盘是否打开、输入框焦点状态。
  3. 录制一段屏幕录像,清楚展示第一次点按与第二次点按的差异。
  4. 不要直接采用 touch={false} 作为修复方案:Issue 中的测试显示该改动只是关闭触摸 tooltip,菜单在第一次点按仍会展开,无法对应已证实的回归。
  5. 若要在真实设备上继续定位,可采用对比测试:同一台 iPhone 上分别测试发送按钮与 + 按钮,以及键盘打开/关闭、输入框有焦点/无焦点等不同状态,观察是否只有特定组合下需要两次点按。

验证方法

在真实 iPhone Safari 上,于当前 dev 分支重复该操作:进入任意聊天,在键盘打开与关闭两种状态下分别点击 +,确认第一次点按即可展开菜单,且 aria-expanded 变为 true;同时对比发送按钮是否同样正常。若仍只能第二次点按展开,则说明该设备特定问题仍然存在,需要附上屏幕录像、设备型号、iOS/Safari 版本、键盘状态与输入框焦点状态重新提交。

参考来源

open-webui/open-webui #31855

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 26965

发表回复

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