問題タブ [talkback]
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.
android - Android トークバックの問題
トークバックが有効になっているときの動作をチェックすることで、アプリをより「アクセスしやすく」しています。
私が苦労していること:
- 時間は、午後 7 時 15 分を「午後 7 時 15 分」と読み上げます。
- "pm" はOKですが、"am" は "I am" のように "am" として出てきます。
- 単語を区切るために使用される場合、ダッシュはマイナスとして読み上げられます
どうすればこれを修正できますか?
android - DrawerLayer で Talkback の四角形の foucse を取得するには?
私のアプリケーションでは、DrawerLayout を使用して同じヘルプ情報を表示しています。だから私はそれを実際の活動の上に置きました。TalckBack 関数を追加したいのですが、DrawerLayout のいずれかのビューで黄色の四角形 (トークバック モードでフォーカスをマーク) を取得することはできません。Drawerlayout ビューは、インスタンス化することでオンデマンドでロードされます。
私が試したこと:
xml に次を追加します。
コード内:
しかし、まだ運がありません。では、ImageButton のトークバック モードで四角形のマークを強制する方法は?
android - Android RelativeLayoutが表示されているときにtalkBackにテキストを読み上げさせる方法
次のコードを使用して、アクティビティのビュー全体にカスタム ビューを追加するアクティビティがあります。
コーチ マーク/ユーザー ヒントの画面を表示するため。
私のカスタム ビューは RelativeLayout から拡張され、そのコンストラクターでは、クリックするとビューを閉じるボタンが画面の下部に追加されます。
「dispatchDraw」メソッドを上書きして、レイアウトの特定の場所に複数のコーチマーク UI オブジェクト (テキストビューとビットマップ) を追加できるようにしました。これらのコーチマーク オブジェクトは、次のようなコードを使用してビューに描画されます。
問題: TalkBack が有効になっている場合
- このコーチ マーク ビューが表示されている場合、このビューでは何も読み上げられません
- ユーザーがテキストビューとビットマップがある場所を押すと、何も読み上げられません
ただし、ユーザーがボタンを押すと、ボタンの contentDescription が読み上げられます。
textViews と Bitmaps が読み取られない理由は、上記のコードによってキャンバスにレンダリングされる方法によるものだと思います。
質問 1:テキストビューとビットマップがクリックされたときに、TalkBack に何かを発声させる方法はありますか? - テキストビューとビットマップに contentDescriptions と focusable を設定しようとしましたが、違いはありません。
質問 2:別の方法は、カスタム ビューが表示されているときに TalkBack に何かを読み上げさせることです。このテキストは、画面に表示されるすべてのコーチマークを要約できます。これを行う方法がわかりません。誰か提案はありますか?- customView をフォーカス可能 (setFocasable(true)) に設定して contentDescription を指定しようとしましたが、これは機能しません。 - カスタム ビューが描画されたときにアクションを開始し、イベントにコンテンツの説明を追加しようとしましたが、どちらも機能しません。つまり
android - 画面の内容を読み上げるときの Nexus 4.4.2 と Samsung 4.1.2 での TalkBack の違い
画面が Nexus 7 (4.4.2) と Samsung SGH-I317 (4.1.2) に表示されているときに、TalkBack が読み上げる内容に違いがあります。
- Samsung SGH-I317 (4.1.2) では、画面が表示されているときに一部の要素が読み上げられますが、すべての要素が表示されるわけではありません。
Nexus 7 (4.4.2) では、TalkBack は特に選択/タップされた要素のみを読み取ります。
これは Samsung/Nexus の違いですか、それとも Android 4.1.2/4.4.2 の違いですか?
画面が表示されたときに予想される動作は何ですか? TalkBack は画面上のすべての要素を読み上げる必要がありますか? または、表示されている画面だけを読み上げて、UI 要素が読み上げられる前にユーザーにタッチさせる必要がありますか?
android - スピナーをクリックすると、ドロップダウン ビューの表示中に「2 つのアイテムを表示しています」と表示されます。スピナーのこのトークバックをオーバーライドするには?
ドロップダウン ビューを作成するために Spinner を実装している間、最初の要素は常にメイン ビューとドロップダウン リストに表示されます。getDropdrowView() をオーバーライドして非表示にしました。しかし、トークバックで問題が発生します。
問題は、スピナーをクリックすると、ドロップダウン ビューが開き、そこに 1 つのアイテムが存在する場合でも「2 つのアイテムを表示しています」と表示されることです。onclickListener を提供して、読み上げテキストを「1 項目を表示」としてオーバーライドしたかったのです。ただし、スピナーはクリックイベントをサポートしていません。
ontouchListener、onkeyListenerを試しましたが、「2つのアイテムを表示しています」というテキストを上書きするものは何もありませんでした。 setContentDescriptionも機能しません。次のことを試しましたが、うまくいきませんでした:
助けてください..トークバックに関するフォーラムの議論はほとんどありません.
android - MultiAutoCompleteTextView に値が選択されたときに読み上げられるテキストを設定するにはどうすればよいですか
"MultiAutoCompleteTextView" から拡張されたカスタム ビューがあります。ユーザーが CustomTextView への入力を開始すると、ポップアップに推奨値が表示されます。これらの値のいずれかを選択すると、選択した値が CustomTextView に取り込まれます。
選択できる値には、ID と名前があります。デフォルトでは、ユーザーがリストから値を選択し、CustomTextView にその選択された値が入力されると、TalkBack は選択されたアイテムの ID を奇妙な方法で読み上げます。
それは読む
"(単語全体としての itemID) は、syn (個々の文字としての itemId) のカンマ スペースを置き換えます"
たとえば、idがappleの場合、読み取ります
"apple は syn アップル コンマ スペースを置き換えます"
IDではなく名前だけ読み上げてほしいです。
アクセシビリティ用のカスタム ビューを追加するためのアクセシビリティ ドキュメントを読む ( http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views ) さまざまな API を上書きしてイベント テキストを設定しようとしましたが、しかし、イベントテキストに対して何かを行うとすぐに、何も読み上げられません。
API 15以降のみをサポートする必要があるため、CustomTextViewにコードを追加しました
デバッグ システム アウトで、イベント テキストが ID から「Test」に更新されていることがわかります。
したがって、文字列「Test」が読み上げられない理由がわかりませんか? 何か案は?
注: 次のコードを追加すると、CustomTextView に触れたときに "Touched on CustomTextView" が正しく読み上げられます。ただし、このメソッドを上書きしても、提案からアイテムが最初に選択され、CustomTextView が設定されたときとの違いはありません。
android - Android アクセシビリティ: EditText ビューで読み上げられるテキストを変更するにはどうすればよいですか
デフォルトでは、アクセシビリティ サービスは EditText ビューに対して以下を読み上げます。
- EditText に値が入力されている場合 = その値が読み出されます
- 値が入力されていない場合 = 「ヒント」を読み上げます
どちらの場合もまったく異なるものを読み上げてほしい。
私のxmlスニペットは
API 14 以降をサポートする必要があります。
この 1 つのケースで EditText を拡張する手間をかけたくないので、am AccessibilityDelegate を使用しています。
ドキュメントから、私のデリゲートでは、動作を変更したいデリゲートのメソッドを上書きするだけでよいことがわかりました。他のすべてのメソッドは、デフォルトでビューの実装になります。
http://developer.android.com/reference/android/view/View.AccessibilityDelegate.html http://developer.android.com/reference/android/view/View.html
「onPopulateAccessibilityEvent」のドキュメントは次のように述べています。「ホスト View にアクセシビリティ イベントにテキスト コンテンツを設定する機会を与えます。」「dispatchPopulateAccessibilityEvent」のドキュメントは次のように述べています。テキスト コンテンツをイベントに追加します。 " デフォルトの動作は、ビュー自体に対して "onPopulateAccessibilityEvent" を呼び出し、次にそのすべての子に対して "dispatchPopulateAccessibilityEvent" を呼び出すことです。
http://developer.android.com/guide/topics/ui/accessibility/apps.html
このドキュメントは、「onPopulateAccessibilityEvent」の下に「*このイベントの実装が出力テキストを完全にオーバーライドし、レイアウトの他の部分がコンテンツを変更できないようにする場合は、コードでこのメソッドのスーパー実装を呼び出さないでください。」
したがって、私の代理人は次のとおりです
キーボードを使用して移動するか、画面を使用して EditText ビューをタップすると、「リンゴ」ではなく「ヒント テキスト」と表示されるのはなぜですか?
デバッガーを使用すると、イベント テキストを設定する前はテキストが空で、設定後は「りんご」になっているのに、TalkBack がまだヒントを読み上げていることがわかります。
奇妙なことに、「onInitializeAccessibilityNodeInfo」を上書きして目的のテキストでイベントを送信すると、この目的のテキストが読み上げられます (以下のコード スニペットを参照)。しかし、「onInitializeAccessibilityNodeInfo」は EditText のイベントに反応しているが、新しいイベントを発生させるだけなので、これは私には間違っているようです。