かなり珍しい現象に出くわしたのでメモ。
GIFのような感じで、 input[type="text"]
での文字削除の挙動がおかしくなるという不具合に出くわしました。
何が起こっているかというと、
-
cmd
+delete
で全削除 => 削除されずにキャレットが先頭に -
fn
+delete
でキャレット後の一文字を削除 => キャレット後の一文字を飛ばしてその次を削除、キャレットは削除した文字の位置に移動
エモいです。
結論
user-select: none
をinputにつけるのをやめると正常に動作するようになりました。
今回現象が発生したサイトでは、全称セレクタに user-select: none
がついていたので、さらに解決する時間がかかったということでした...。
* {
user-select: none; /* ←があった */
}
ちなみに、user-select: auto
で上書き(打ち消し)しても発生するので、素直にuser-select: none
を指定する範囲を狭めましょう。
(!important
使っても発生しました)
以上です。