Mac で VoiceOver が起動しているかどうかを判定する方法 / または Google Chrome を強制的にアクセシビリティ有効にする方法
自分のアプリケーション (AXApplication ) の AXEnhancedUserInterface (bool) を調べて、1 が入っていたら VoiceOver が起動している。
Google Chrome を強制的にアクセシビリティ有効にする方法
Google Chrome はこの値を見てアクセシビリティオブジェクトを作るかどうかを決めているようで (パフォーマンスのため?)、デフォルトではアクセシビリティオブジェクトが生成されない。
自分で作ったアプリケーションでアクセシビリティを使いたい場合、これは不便な仕様である。必要に応じて
- 全アプリケーションに AXEnhancedUserInterface をセット
- アプリケーションが起動するたびに AXEnhancedUserInterface をセット
- アプリケーション終了時に AXEnhancedUserInterface をリセット (ただし VoiceOver が起動しているようなら何もしない)
みたいなことが必要になる。
なお Google Chrome でアクセシビリティが有効化されているかどうかは chrome://accessibility を見ればわかる。また、上記 AXEnhancedUserInterface を設定しなくても、一時的でいいのならこのページでアクセシビリティを有効にできる。
有効にしたあとはページのリロードが必要、と思ったけど必要ないっぽい…
関連エントリー
- スクリーンキャスト用のキーストローク表示アプリ 前にMacRuby でスクリーンキャスト用のキーストローク表示スクリプトを書いたんですが、それを Swift で書きなおして機能を追加したり...
- Swift で Mac の ScriptingBridge を無理矢理つかう ちょいちょい「環境設定」→「セキュリティとプライバシー」→「アクセシビリティ」を開かせたいケースがあるが、openURL とかで Secur...
- CopyHook というペーストボードの中身をいじるツールを作った https://github.com/cho45/CopyHook ペーストボードにコピーが行われたときに、JavaScript で何かする...
- Google+ の画像自動バックアップで、一部画像がアップロードされないとき Google+ の画像自動バックアップは、デフォルトだとカメラで撮影されたものしかアップロードされない。(いつのまにかこういう仕様になってた...
- Chrome App をテストする Chrome App という、Chrome Extension の延長上にあるスタンドアロンアプリを作れる仕組みがある。これは、しばしば出て...