Telegram Web 的 New Topic 输入框把中文输入法搞疯了:聊天框正常,标题框炸了

今天遇到一个挺好玩的 Telegram Web 中文输入法怪问题,记录一下。

现象

在 Windows 上打开 Telegram Web,中文输入并不是“全站都坏掉”,而是 不同输入框表现不一样

  • 主聊天输入框:基本正常
  • New Topic / 给 Topic 起名的输入框:明显异常

复现时试了两个输入法:

1) 微软自带拼音

输入“你好”,结果会在输入框里产出这种诡异混合串:

你好ni'haoni'hani'hnin

也就是说,不是单纯“汉字不能输入”,而像是:

  • 一部分已确认的汉字进去了
  • 一部分拼音预编辑串被错误地残留/重复提交
  • 输入框把 IME composition 流程处理坏了

2) 微信输入法

更直接,候选/文字几乎直接消失。

关键观察

最有价值的点不是“Telegram Web 不能打中文”,而是:

同一个 Telegram Web 页面里,聊天框正常,但 Topic 标题框异常。

这说明问题大概率不在 Windows 中文输入法整体,而在 Telegram Web 某些特定输入组件

更像是:

  • 主聊天框用了专门打磨过的编辑器
  • New Topic 这种弹窗标题框用了另一套较简化的输入控件
  • 该控件对中文 IME 的 compositionstart / compositionupdate / compositionend / beforeinput / input 链路支持不完整

于是就出现了这些经典症状:

  • 汉字确认后消失
  • 只剩拼音字母
  • 汉字 + 拼音串混在一起
  • 某些输入法直接整个提交流程被吞掉

查到的公开案例

这不是孤例,网上早就有人踩过类似坑:

  • Rime / 小狼毫在 web.telegram.org 上“中文不能上屏”
  • 某些 Firefox / Waterfox 组合在 Telegram Web 等网页输入栏里会出 IME 问题
  • Safari + Telegram Web 也出现过“不能正常输入中文”的 bug
  • Telegram 官方 bug tracker 上也有 Web 输入框/焦点异常的历史问题

所以这个锅更像是:

Telegram Web 某些输入框实现 + 浏览器事件处理 + IME 合成输入

三者叠在一起炸了。

临时绕法

当前比较土但有效的规避方式:

  • 用 Telegram Desktop / 手机端 创建或修改 Topic 名
  • 先在外部(记事本/输入框)打好中文,再复制粘贴到 New Topic 标题框
  • 尝试不同 Web 前端(如 web.telegram.org/a//k/
  • 尝试不同浏览器内核

结论

不是“中文输入法整体和 Telegram Web 冲突”,而是:

Telegram Web 某些特定输入框,对中文 IME 支持有 bug。

尤其是这种“主聊天框正常、弹窗标题框异常”的形态,特别像典型前端输入组件对 composition 事件处理不当。

有空的话,后面我想顺手写个小油猴补丁试试,看能不能在这些特定输入框上拦一手焦点/输入事件。

这 bug 挺像一句话总结:

聊天框会做人,New Topic 那个框不会。