問題タブ [accessibility-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Accessibility API を使用して Mac OS X で他のウィンドウを移動する
アクセシビリティ API を使用して、他のアプリケーション ウィンドウの位置を変更しようとしています。私がやりたいことは、すべてのアプリケーションから画面上のすべてのウィンドウを取得し、それらすべてを特定のオフセット (5 または 10 としましょう) に移動することです。または任意の値)。これは私にとってObjective-Cでのプログラミングの初日であるため、これを行うのに苦労しています。
これが私が今していることです。まず、 を使用してウィンドウとその PID のリストを見つけますCGWindowListCopyWindowInfo
。次に、ウィンドウごとに、ウィンドウAXUIElementCreateApplication
の を取得するために使用しAXUIElementRef
ます。その後、AXUIElementCopyAttributeValue
属性で使用する必要がありますkAXPositionAttribute
(適切な位置を取得できず、常にゼロを取得します)。最後に、必要なオフセットを位置に追加AXUIElementSetAttributeValue
し、属性kAXPositionAttribute
と新しい位置ポイントを使用する必要があります (0,0 のような絶対値を設定しても実行時エラーが発生します)。
運が悪くて多くのことを試したので、誰かが私が上で説明したことを行うスニペットで私を助けることができますか. また、上記で実装することにしたとおりである必要はありません。それを行うためのより良い方法があれば、喜んで変更します。
更新: コメントで要求されているように、試みの 1 つのコード スニペットを次に示します。
cocoa - Cocoa アクセシビリティ : 親は要素をその子の 1 つとして報告しません
Mac OS 用のUI アプリを開発しています。Accessibility Inspector
この次のエラーが表示されたとき、OSX に付属の を使用していました。
「親は要素をその子の 1 つとして報告しません」
カーソルが a の要素の上にあったので、これは理解できますNSCollectionView
。
では、サブアイテムを Collection の子として「登録」するにはどうすればよいですか?
編集:私はいくつかの奇妙な動作も観察します:Accessibility Inspector
が開いているとき、カーソルでサブ要素の 1 つを入力するたびに、次のメッセージが表示されます。
サブクラスDriveViewBox
はどこですか。NSBox
objective-c - アクセシビリティ オプションを使用して OSX でアプリケーション ウィンドウを移動する
アクセシビリティ API を使用して、OSX で他のアプリケーションを移動しようとしています。私は実際にこれを機能させています。しかし、私は大きな問題に遭遇しました。
これは、アプリケーションの PID を使用して、後でウィンドウを移動します。複数のウィンドウが同じ PID を持っていることがわかりました。アプリケーションの 2 番目のウィンドウを移動しようとすると、アプリがクラッシュします。
WindowID だけを使用してアプリケーションを移動できますか?
c++ - メニュー オプションのアクセシビリティ サポートを提供する方法 (QMenu の QAction)
問題が発生しています。QMenuに含まれるQActionのオプション名とともに、スクリーンリーダーにショートカットキーを教えさせることができないようです。たとえば、「開く...」の代わりに、スクリーン リーダーに「開く... Ctrl+O」と教えてもらいたいとします。
私が見たように、問題はスクリーン リーダーが QAction::text() プロパティしか認識しないことです。したがって、次のようなことをすると:
私はこのようなものを得ます:(申し訳ありませんが、画像を投稿するには少なくとも10の評判が必要です)
|ファイル|
|開く Ctrl+O|
また、スクリーン リーダーは、ファイルについては「ファイル メニュー Alt+F」と表示されますが、開くオプションについては「開く」と表示されます。
次のようなことをしようとすると:
私はこのようなものを得る:
|ファイル|
|開く Ctrl+O Ctrl+O|
スクリーン リーダーは "Open Ctrl+O" と表示しますが、ご覧のとおり、ショートカットの文字列が重複しています。
これまでに試したこと: 表示できるすべてのプロパティを設定します (たとえば、QAction::setWhatsThis、QAction::setIconText など)。
使用できる小さなハックを見つけました。私は次のようなことができます:
しかし、これはテキストの上部から少し切り取ります ("Open")。したがって、このハックを使用するときにテキストが切り取られないようにテキストを揃える方法で十分です。
私はどんな提案にもオープンです。statusBar を使用してこれを行う方法があると思いますが、方法がわかりません。私は自分自身を明確にしたことを願っています...助けてくれてありがとう!
macos - Mac App Store: アプリのサンドボックス化は必須ですか?
アクセシビリティ API が必要なので、サンドボックス化せずにアプリを配布する必要があります。サンドボックスを有効にせずに(正当な理由で)提出した場合、アプリが拒否されるかどうかは誰にもわかりませんか?
Mac App Store ガイドラインには次のように書かれています。
適切にサンドボックス化されていないアプリは拒否される可能性があります
その声明についてあなたの経験は何ですか?「そうかもしれない」か「そうなるだろう」?