ユーザーが 4 桁の PIN を入力するように求められるロック解除画面があります。ユーザーがピンを間違って入力すると、以前TextView
は表示されていなかった がエラー メッセージとともに表示されます。この時点で、TalkBack がエラー メッセージの内容を読み上げると便利です。
いくつかの実験を通じてandroid:focusableInTouchMode="true"
、ビューを設定し、プログラムで を呼び出すことができることに気付きましたView#requestFocus()
。これは初めて機能しますが、ビューに既にフォーカスがあるため、後続のエラーで失敗します。また、現在のビュー フォーカスをオーバーライドすることは一般的に悪い考えのようです。
View#announceForAccessibility(java.lang.CharSequence)
次に、エラーメッセージが表示されたときに呼び出してみました。ビューが現在表示されていない場合、このメソッドは暗黙のうちに失敗するようです。問題ありません。それ以外は完全に機能します。ただし、API レベル 16+ (Jelly Bean) でのみ利用可能であり、その有用性が実際に制限されています。TalkBack は API レベル 7 以降をサポートしているため、より良い解決策が必要です。
アクセシビリティに関する 2011 年と 2012 年の Google I/O セッションの両方を見てきましたが、どちらもこの基本的な使用例を扱っていないようです。これを行う最善の方法は何ですか?
編集 1: TLDR; Jelly Bean で導入する前に、TalkBack にテキストを読み上げさせる方法はありますか?View#announceForAccessibility(java.lang.CharSequence)