問題タブ [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.

0 投票する
1 に答える
144 参照

ios - iOS アクセシビリティ サウンドをプログラムで使用する

AVSpeechSynthesizerクラスを介してiOSのテキスト読み上げシンセサイザーをプログラムで使用できることを認識しています。

ただし、iOS との非視覚的な対話は、音声と音声以外の音に基づいています。たとえば、アプリが選択されるたびに、VoiceOver がアプリの名前を発声すると共に、短い「カチカチ」音が聞こえます。

スピーチと一緒に、これらの音もプログラムで再現できるようにする Objective-C API があるかどうか疑問に思っていました。

0 投票する
2 に答える
1984 参照

android - AccessibilityNodeInfo から webview を取得する方法

AccessibilityService を使用する必要があるアプリケーションを作成しています。また、他のアプリケーションのウィンドウ コンテンツを取得するのに問題はありません。ウィンドウのコンテンツから利用可能なすべての子を検出しましたが、その子は AccessibilityNodeInfo に表示されています。AccessibilityNodeInfo に webview があり、その WebView の URL を取得する必要がありますが、AccessibilityNodeInfo を関連するビューに変換する方法はありません。

AccessibilityNodeInfo から webview を取得する方法はありますか?

0 投票する
0 に答える
66 参照

webkit - AXWebArea から HTML を抽出または再構築する

Accessibility API 経由でアクセスできる AXWebArea があります。AXWebArea の作成に使用される HTML を抽出または再構築する方法はありますか? 私がデバッグしているアプリは、HTML を AXWebArea にロードする前に変更しています。どのような変更を行っているかを知りたいです。

0 投票する
0 に答える
454 参照

android - Android アクセシビリティ サービス「オプトイン」を管理する企業

AirWatch (EMM/MDM) で動作するエンタープライズアクセシビリティ サービスを開発しており、MDM を使用してほとんどの Android 設定を制御できることがわかりましたが、エンタープライズがアプリケーションを自動登録する方法を見つけることができないようですアクセシビリティ イベントの受信 - 代わりに、ユーザーがアクセシビリティ システム設定を開いて手動でオプトインし、チェック ボックスをオンにしてアプリケーションを手動で登録する必要があります。

デバイスは、ユーザーではなく企業が所有しています。私たちの理解では、これはまさに MDM のすべて (デバイスの所有権/制御をユーザーから企業に移すこと) の種類であり、したがって、アプリケーションをプログラムまたは中央で自動登録する方法があるので、ユーザーに依存せずにアクセシビリティ イベントを受け取るにはどうすればよいですか? 私たちのアプリケーションは何万ものデバイスにサイドロードされますが、一部のデバイスでは設定メニューが制限されているため、手動で登録することは実際にはオプションではありません.

アクセシビリティ イベントの受信をオプトインする例

方法がない場合、これは Android がまだこの機能を追加していないためですか? Knox SDK を介して実行できますか? これを達成する他の方法はありますか?

0 投票する
2 に答える
1205 参照

android - ユーザー補助サービス Android の使用

フォアグラウンド アプリケーションを検出するために、Android のアクセシビリティ サービスを利用しました。

利用可能な 2 つのアクセシビリティ イベントをリッスンしたい

TYPE_VIEW_TEXT_CHANGED

TYPE_WINDOW_STATE_CHANGED

window state changeすべてのイベントをリッスンしたいのですが、それは機能していますが、2 番目のイベントでは、view_text_changedすべてではなく 1-2 アプリケーションのみのイベントをリッスンしたいと考えています。

私はandroid:packageNamesxmlでパラメータを読んで試しましたが、window_state_changedイベントに制限を課します。

それを行う他の方法はありますか??

0 投票する
1 に答える
2340 参照

android - Android ユーザー補助サービス - 画面の更新に一貫性がない

AccessibilityServiceAndroid 5.0.1 を実行している Samsung Note 4 にAndroidを展開しています。

私はWhatsAppをテストベッドとして使用していますが、これはどのアプリケーションにも当てはまり、アクセシビリティサービスがどのようにイベントを発生させるかについての質問です.

イベント2048 (TYPE_WINDOW_CONTENT_CHANGED)は、Android によって発生する一貫性がありません。WhatsAppにメッセージを送信すると、フォーカスがあり、画面が75%の時間でこのイベントが発生し、場合によっては発生しません。

これには理由がありますか?アクセシビリティ イベントは信頼できません..?

さらに、ユーザーがスクロールしたとき、またはWhatsAppのチャットウィンドウに新しい通信が表示されたときに、イベント4096 (TYPE_VIEW_SCROLLED)が一貫して発生するように見えますが、デバイスの現在のスクロール位置を特定する方法はないようです? AccessibilityEvent.getSource()リストの一部のメタデータ (この場合は android:id/list) へのアクセスを提供しますが、このリストまたはその子要素のスクロール位置に関する情報はありません。子リストは、画面に表示されているものに対して相対的boundsToScreen/Parentであり、リストの下部または中央または上部を見ているかに関係なく、値は同じです。AccessibilityEventNodeInfo提示されたインスタンスからスクロール位置を決定するのに役立つ手がかりはありますか?

最後に、2048 (TYPE_WINDOW_CONTENT_CHANGED)イベントが発生したときに、新しい要素が から実際に利用できない場合がありAccessibiltyEvent.getSource()ます (while ループを使用してルート要素まで反復し、getParent()再度下方向にスキャンした場合でも)。変更が UI に適用される前に、イベントが画面のスナップショットを取得しているようです。Athread.sleepは役に立ちません。UIAccessibilityEventNodeInfoへのライブ アクセスというよりは、スナップショットのように見えますか? これを回避する方法はありますか?

0 投票する
3 に答える
4148 参照

android - AccessibilityService にカスタム イベントを送信する方法は?

プログラムの目的: サービスで BACK ボタンをトリガーする

私は多くの方法を試しましたが、誰もこの目的を達成することはできませんでしたが、最終的に AccessibilityService を発見しました。これは、この機能を実装する最も可能性のある方法かもしれません。

この AccessibilityService を作成し、動作することをテストしました

そして、performGlobalActionサービスに移動しようとしましたが、アクションを実行しません。

また、別の方法でカスタム イベントを送信しようとしましたが、誰も MyAccessibilityService に送信できません

アクションを実行するためのイベントとメッセージを認識できるように、カスタム イベントまたはメッセージを MyAccessibilityService に送信するにはどうすればよいですか?