私のアプリケーションをアクセス可能にしていて、私の編集テキストに問題があります:TalkBackのTextViewエラーメッセージを自動的に読み取る方法は?
すべてのEditTextでは、ユーザーの入力はある時点で確認されています(たとえばボタンを押した後)。私はeditText.setError("message")
を使用してエラーを表示します。問題は、TalkBackがオンの場合、自動的にフォーカスしてエラーを読み取らないことです。また、私はエラーのビューを取得することができないので、私はsendAccessibilityEvent
経由でそれをフォーカスするようにTalkBackに依頼することはできません。
まだeditText.setError()
を使用しているうちに、この問題を解決する方法に関するお考えをありがとうございます。
編集@Abhishek Vソリューションの1追加コード:
public class BaseEditText extends EditText {
...
...
@Override
public void setError(CharSequence error) {
super.setError(error);
announceForAccessibility(error);
}
}
答えはありますが、それでも2つの問題があります。1.トークバックは、エラーメッセージに重点を置いていません(大したことではありません)。2.エラーを表示した後にeditTextをタイプすると、視覚エラーが既に消えた後、エラーメッセージが再び表示されます。どのようにそれらの問題に対処するための任意のアイデア? – Tako
1)それを修正する方法がわからない2)announceForAccessibilityを正確に呼び出すときはいつですか?あなたはそのコードを投稿できますか? –
私は、カスタムEditTextのsetErrorにannounceForAccessibility()を追加しました(質問への更新を参照)。 – Tako