При использовании TalkBack, каков предпочтительный способ оповещения пользователя об изменении содержимого TextView?

У меня есть экран разблокировки, где пользователю предлагается ввести четырехзначный пин-код. Если пользователь вводит свой пин-код неправильно, ранее невидимыйTextView отображается с сообщением об ошибке. В этот момент было бы полезно, чтобы TalkBack вслух прочитал содержимое сообщения об ошибке.

После некоторых экспериментов я понял, что могу установитьandroid:focusableInTouchMode="true" на вид и программно позвонитьView#requestFocus(), Это работает в первый раз, но не на последующих ошибках, так как представление уже имеет фокус. Также кажется плохой идеей вообще переопределить фокус текущего представления.

Затем я попытался вызватьView#announceForAccessibility(java.lang.CharSequence) когда отображается сообщение об ошибке. Видимо этот метод будетмолча провалиться если вид в данный момент не виден. Нет проблем, а в остальном работает отлично. Тем не менее, это 'Доступно только в API уровня 16+ (Jelly Bean), что действительно ограничивает егос пользой. Должно быть лучшее решение, так как TalkBack поддерживает API уровня 7+. I '

Мы наблюдали за сессиями ввода-вывода Google в 2011 и 2012 годах по доступности, но ни один из них, похоже, не охватывал этот базовый вариант использования. Какие'лучший способ сделать это?

Изменить 1: TLDR; Есть ли способсила TalkBack, чтобы прочитать какой-то текст вслух до введенияView#announceForAccessibility(java.lang.CharSequence) в желейных бобах?

Ответы на вопрос(5)

Ваш ответ на вопрос