自分のアプリケーション (AXApplication ) の AXEnhancedUserInterface (bool) を調べて、1 が入っていたら VoiceOver が起動している。
Google Chrome を強制的にアクセシビリティ有効にする方法
Google Chrome はこの値を見てアクセシビリティオブジェクトを作るかどうかを決めているようで (パフォーマンスのため?)、デフォルトではアクセシビリティオブジェクトが生成されない。
自分で作ったアプリケーションでアクセシビリティを使いたい場合、これは不便な仕様である。必要に応じて
- 全アプリケーションに AXEnhancedUserInterface をセット
- アプリケーションが起動するたびに AXEnhancedUserInterface をセット
- アプリケーション終了時に AXEnhancedUserInterface をリセット (ただし VoiceOver が起動しているようなら何もしない)
みたいなことが必要になる。
なお Google Chrome でアクセシビリティが有効化されているかどうかは chrome://accessibility を見ればわかる。また、上記 AXEnhancedUserInterface を設定しなくても、一時的でいいのならこのページでアクセシビリティを有効にできる。
有効にしたあとはページのリロードが必要、と思ったけど必要ないっぽい…