IA2でアクセシビリティ情報を取得するやつ
2. 「C++ によるデスクトップ開発」で諸々をインストール
4. 3.で生成したia2_api_all.idlをWindows側に移動
5. インストールしたx64 Native Tools Command Promptを実行してコマンドプロンプトを開く
6. ia2_api_all.idlのあるディレクトリでmidl ia2_api_all.idlを実行(IDLをC++のコードに変換)
7. ia2_api_all.hなどが生成される
8. いい感じのコードを書いてmain.cppとして保存
9. cl /utf-8 main.cpp ia2_api_all_i.c oleacc.lib ole32.lib oleaut32.lib user32.lib
10. main.exe
COM (Component Object Model):Windowsで、アプリケーション間で通信できるようにするためのもの
get_accName()と似たようなメソッドがいくつかあるので、機能拡張できそう
参考
IA2Role enumとしてIA2_ROLE_LANDMARKみたいなやつと数値との対応関係が作られている
ia2->role()で取得した数値を比較できる
結果↓
code:powershell
Accessibility tree
------------------
│ │ │ │ ├─ia2:40 msaa:グラフィック(40) "mehm8128のアイコン。白背景に、青で大きく「mehm」という文字があり、中央部分に上から重ねて、小さく「めふも」と書かれている。さらにその文字の右隣には「</>」というHTMLタグのようなものがある。" │ │ │ │ ├─ia2:34 msaa:一覧項目(34) "• Add tests for interactive element labels named by svg title elements #56902 · web-platform-tests/wpt" │ │ │ │ │ └─ia2:30 msaa:リンク(30) "Add tests for interactive element labels named by svg title elements #56902 · web-platform-tests/wpt" │ │ │ │ │ └─ia2:30 msaa:リンク(30) "fix: customizing the starting line number even if globally set #2941 · vuejs/vitepress" │ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ │ └─(depth limit)
│ │ │ │ └─(depth limit)