このプログラムが動作している状態でVivaldiやGoogle Chrome等を操作し、HTMLのフォーム内で文字を入力したりカーソルキーを押してカーソルの移動を行った時の反応を比較していただければ一目瞭然だと思います。
動作の詳細についてはソースコードを参照してください。
・IEやGoogle Chromeなど正常に動作するブラウザの挙動
→カーソルを動かすと、カーソル移動のイベントのみが正しく発行されている。
・Vivaldiの場合
→カーソルを動かすと、移動のイベントだけでなく消去のイベントまで発生しており、しかも移動と消去がランダムな順序で発生するため点滅して動くようなおかしな動きになってしまっている。あと一歩で完全対応できそうな予感。どうか、どうか対応をお願いします……!
・FirefoxやEdgeの場合
→動かない。話にならない。
この状況でも正しく動くかどうかを確認するには、拙作のSKK日本語入力FEPをインストールし、設定画面で「入力モードの表示」を有効にした状態で、実際にTwitterの入力フォームの部分に日本語で文字入力やカーソルキー操作を行って、カーソル位置のマーカーの座標が正しく更新されているかどうかを見るのが最も確実な方法だと思います。(というか、それ以外にまともに日本語入力とMSAAを同時駆動して確認できるソフトがない)
現状、SKKFEPのカーソル位置認識処理は、MSAA APIとキャレット取得APIとTSFを組み合わせて動作していますが、VivaldiだとシンプルなWebフォームではカーソル位置を検出できていますが、Twitterだと取得できない状況です。(重ねて言いますがIEやGoogle Chromeだとちゃんと動いています)
co(Twitter)