Сегодня столкнулся с довольно забавной странной проблемой с китайским вводом в Telegram Web — записываю для памяти.
Симптомы
В Telegram Web на Windows китайский ввод ломается не “по всему сайту”, а по‑разному в разных полях ввода:
- основное поле ввода чата: в целом нормально
New Topic/ поле для задания названия Topic: явно аномально
При воспроизведении попробовал два метода ввода:
1) Встроенный пиньинь от Microsoft
Ввожу “你好”, а в поле получается вот такая жуткая смесь:
你好ni'haoni'hani'hnin
То есть это не просто “иероглифы не вводятся”, а скорее так:
- часть уже подтверждённых иероглифов попадает в поле
- часть строки предварительного редактирования пиньиня ошибочно остаётся/повторно отправляется
- поле ввода ломает обработку процесса IME composition
2) WeChat Input Method (微信输入法)
Ещё прямолинейнее: кандидаты/текст почти сразу исчезают.
Ключевое наблюдение
Самое ценное тут не “в Telegram Web нельзя печатать по‑китайски”, а:
На одной и той же странице Telegram Web чат‑поле нормально, а поле заголовка Topic — аномально.
Это означает, что проблема, скорее всего, не в Windows‑IME в целом, а в некоторых конкретных компонентах ввода Telegram Web.
Больше похоже на следующее:
- основной чат использует специально отполированный редактор
- заголовок всплывашки вроде
New Topicиспользует другой, более упрощённый контрол ввода - у этого контрола неполная поддержка цепочки
compositionstart / compositionupdate / compositionend / beforeinput / inputдля китайского IME
Отсюда и классические симптомы:
- иероглифы исчезают после подтверждения
- остаются только латинские буквы пиньиня
- иероглифы + строка пиньиня смешиваются вместе
- у некоторых IME весь процесс подтверждения просто “проглатывается”
Найденные публичные кейсы
Это не единичный случай — в сети давно наступали на похожие грабли:
- Rime / 小狼毫 на
web.telegram.org: “китайский не выводится в поле” - некоторые комбинации Firefox / Waterfox дают IME‑проблемы в полях ввода на Telegram Web и подобных страницах
- Safari + Telegram Web тоже ловили баг “нельзя нормально вводить китайский”
- в официальном баг‑трекере Telegram тоже есть исторические проблемы с web‑полями ввода/фокусом
Так что виновник больше похож на:
реализация некоторых полей Telegram Web + обработка событий браузером + составной ввод IME
три вещи наложились и взорвались.
Временные обходные пути
Сейчас довольно грубые, но рабочие варианты:
- создавать/переименовывать Topic через Telegram Desktop / мобильный клиент
- сначала набрать китайский во внешнем месте (Блокнот/другое поле), затем скопировать и вставить в заголовок
New Topic - попробовать разные веб‑фронтенды (например,
web.telegram.org/a/,/k/) - попробовать другой браузерный движок
Вывод
Это не “китайский IME в целом конфликтует с Telegram Web”, а:
У некоторых конкретных полей ввода Telegram Web есть баги поддержки китайского IME.
Особенно такая форма “в чате нормально, а во всплывающем заголовке — плохо” очень похожа на типичную неправильную обработку composition‑событий фронтенд‑компонентом ввода.
Если будет время, потом хочу по пути накидать маленький патч для Tampermonkey (油猴) и попробовать — может, получится перехватить фокус/события ввода в этих конкретных полях.
Этот баг хорошо описывается одной фразой:
Поле чата умеет быть человеком, а поле
New Topic— нет.