gologiusの巣

プログラミングなどの技術メモです。誰かの役に立てるとうれしいです。

恐怖!Edgeで全角入力時に重複して文字入力されてしまう問題(IME,Edge,Chrome)

問題

IMEで全角文字入力→確定せずに別の場所にフォーカスを移すと、文字が重複して入力される。

文字面だとわかりづらいので、下記のGIFを見てもらったほうが早い。

「あああ」 の入力が二倍になって「ああああああ」になっている。

この問題は、下記テストページで体験できるようにしてある。

この恐怖を体感してみてほしい。

IMEテスト

発生する条件

どうも下記の状態をすべて満たすと発生する模様

  • ブラウザが Edge Chrome (=つまりChroniumのブラウザ。Firefoxだと発生しない)
  • IMEが Microsoft IME (Google IMEだと発生しない。)
  • 入力欄(input type=textとか)で、フォーカス時に入力欄を全選択している。 jsとHTMLだと下記のような感じ。
  • 全角入力の変換確定前に、別の入力欄にフォーカスを移動させる
  • フォーカスを全選択していても、一度全選択を解除した後だと発生しない。

なぜ発生するのか

Microsoft IMEのバグ?(相性が悪い?)の模様。

フォーカス時に全選択する、というUIがあまりないことが原因で、あまりネットにも情報がない。

解決方法

  1. フォーカス時の全選択をやめてしまう。これで100点取れる。

  2. 該当項目が半角入力のみを想定されているのであれば、 inputmode を指定して、フォーカス時に半角入力モードになるようにしてあげれば、 発生確率は下げられる。

※ご参考URLの 全選択解除→時間をおいて再度全選択、の方法だと解消されなかった。

ほかの解決方法があるなら、教えてください

ご参考

input入力中に変換未確定の状態でフォーカス移動すると文字が二重入力される

Chrome(Windows版)でinput要素への入力中に変換未確定の状態でフォーカス移動すると文字列が二重入力される件について|さとう

余談(GIF動画)

GIFを撮影する方法ですが、

Win11 の Snipping Tool で動画撮影 → AdobeのサイトでGIF化 して作っています。

MP4をGIFに高速変換。フリー、高画質、アプリ不要|Adobe Express