MSAA - Microsoft Active Accessibility APIサンプル

 テストツールのダウンロード
 このプログラムはCC0 PUBLIC DOMAINです。

動作確認欄

再現手順

 まず上記のダウンロードリンクよりZIP書庫をダウンロードしてください。
 ダウンロードした書庫を任意のフォルダに展開し、calet.exeをエクスプローラでダブルクリックして実行してください。
 実行するとMSAA(Microsoft Active Accessibility) APIを用いてカーソル座標に矩形が表示されます。コンソール上にはAPIの取得内容が表示されます。コンソール内でCTRL+Cを入力すると終了します。
(注意: コンソール内をドラッグして文字選択状態になると、プログラムが一時停止状態になってしまうので、止めないように注意してください)

 このプログラムが動作している状態でVivaldiやGoogle Chrome等を操作し、HTMLのフォーム内で文字を入力したりカーソルキーを押してカーソルの移動を行った時の反応を比較していただければ一目瞭然だと思います。
 動作の詳細についてはソースコードを参照してください。

・IEやGoogle Chromeなど正常に動作するブラウザの挙動
→カーソルを動かすと、カーソル移動のイベントのみが正しく発行されている。

・Vivaldiの場合
→カーソルを動かすと、移動のイベントだけでなく消去のイベントまで発生しており、しかも移動と消去がランダムな順序で発生するため点滅して動くようなおかしな動きになってしまっている。あと一歩で完全対応できそうな予感。どうか、どうか対応をお願いします……!

・FirefoxやEdgeの場合
→動かない。話にならない。

さらに高度な動作確認を行う方法

 上記手順はあくまでもJavaScriptの制御が入っていないフォームでの最低限の動作を見るだけでした。
 実際にはTwitterの発言フォームのように、文字数チェックやタグへのリンク追加などのイベントやIME(TSF)内部のイベントが何重にも発生している状況下で動作しています。要するにかなり際どく複雑なタイミングで動くものなので動作確認が大変です。

 この状況でも正しく動くかどうかを確認するには、拙作のSKK日本語入力FEPをインストールし、設定画面で「入力モードの表示」を有効にした状態で、実際にTwitterの入力フォームの部分に日本語で文字入力やカーソルキー操作を行って、カーソル位置のマーカーの座標が正しく更新されているかどうかを見るのが最も確実な方法だと思います。(というか、それ以外にまともに日本語入力とMSAAを同時駆動して確認できるソフトがない)

 現状、SKKFEPのカーソル位置認識処理は、MSAA APIとキャレット取得APIとTSFを組み合わせて動作していますが、VivaldiだとシンプルなWebフォームではカーソル位置を検出できていますが、Twitterだと取得できない状況です。(重ねて言いますがIEやGoogle Chromeだとちゃんと動いています)

co(Twitter)

inserted by FC2 system