問題タブ [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.
ios - iOS アクセシビリティ サウンドをプログラムで使用する
AVSpeechSynthesizer
クラスを介してiOSのテキスト読み上げシンセサイザーをプログラムで使用できることを認識しています。
ただし、iOS との非視覚的な対話は、音声と音声以外の音に基づいています。たとえば、アプリが選択されるたびに、VoiceOver がアプリの名前を発声すると共に、短い「カチカチ」音が聞こえます。
スピーチと一緒に、これらの音もプログラムで再現できるようにする Objective-C API があるかどうか疑問に思っていました。
android - AccessibilityNodeInfo から webview を取得する方法
AccessibilityService を使用する必要があるアプリケーションを作成しています。また、他のアプリケーションのウィンドウ コンテンツを取得するのに問題はありません。ウィンドウのコンテンツから利用可能なすべての子を検出しましたが、その子は AccessibilityNodeInfo に表示されています。AccessibilityNodeInfo に webview があり、その WebView の URL を取得する必要がありますが、AccessibilityNodeInfo を関連するビューに変換する方法はありません。
AccessibilityNodeInfo から webview を取得する方法はありますか?
webkit - AXWebArea から HTML を抽出または再構築する
Accessibility API 経由でアクセスできる AXWebArea があります。AXWebArea の作成に使用される HTML を抽出または再構築する方法はありますか? 私がデバッグしているアプリは、HTML を AXWebArea にロードする前に変更しています。どのような変更を行っているかを知りたいです。
android - Android アクセシビリティ サービス「オプトイン」を管理する企業
AirWatch (EMM/MDM) で動作するエンタープライズアクセシビリティ サービスを開発しており、MDM を使用してほとんどの Android 設定を制御できることがわかりましたが、エンタープライズがアプリケーションを自動登録する方法を見つけることができないようですアクセシビリティ イベントの受信 - 代わりに、ユーザーがアクセシビリティ システム設定を開いて手動でオプトインし、チェック ボックスをオンにしてアプリケーションを手動で登録する必要があります。
デバイスは、ユーザーではなく企業が所有しています。私たちの理解では、これはまさに MDM のすべて (デバイスの所有権/制御をユーザーから企業に移すこと) の種類であり、したがって、アプリケーションをプログラムまたは中央で自動登録する方法があるので、ユーザーに依存せずにアクセシビリティ イベントを受け取るにはどうすればよいですか? 私たちのアプリケーションは何万ものデバイスにサイドロードされますが、一部のデバイスでは設定メニューが制限されているため、手動で登録することは実際にはオプションではありません.
方法がない場合、これは Android がまだこの機能を追加していないためですか? Knox SDK を介して実行できますか? これを達成する他の方法はありますか?
android - ユーザー補助サービス Android の使用
フォアグラウンド アプリケーションを検出するために、Android のアクセシビリティ サービスを利用しました。
利用可能な 2 つのアクセシビリティ イベントをリッスンしたい
TYPE_VIEW_TEXT_CHANGED
TYPE_WINDOW_STATE_CHANGED
window state change
すべてのイベントをリッスンしたいのですが、それは機能していますが、2 番目のイベントでは、view_text_changed
すべてではなく 1-2 アプリケーションのみのイベントをリッスンしたいと考えています。
私はandroid:packageNames
xmlでパラメータを読んで試しましたが、window_state_changedイベントに制限を課します。
それを行う他の方法はありますか??
android - Android ユーザー補助サービス - 画面の更新に一貫性がない
AccessibilityService
Android 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
へのライブ アクセスというよりは、スナップショットのように見えますか? これを回避する方法はありますか?
android - AccessibilityService にカスタム イベントを送信する方法は?
プログラムの目的: サービスで BACK ボタンをトリガーする
私は多くの方法を試しましたが、誰もこの目的を達成することはできませんでしたが、最終的に AccessibilityService を発見しました。これは、この機能を実装する最も可能性のある方法かもしれません。
この AccessibilityService を作成し、動作することをテストしました
そして、performGlobalAction
サービスに移動しようとしましたが、アクションを実行しません。
また、別の方法でカスタム イベントを送信しようとしましたが、誰も MyAccessibilityService に送信できません
アクションを実行するためのイベントとメッセージを認識できるように、カスタム イベントまたはメッセージを MyAccessibilityService に送信するにはどうすればよいですか?