Ao usar o TalkBack, qual é a maneira preferida de alertar o usuário quando o conteúdo de um TextView é alterado?

Eu tenho uma tela de desbloqueio onde o usuário é solicitado a inserir um pino de quatro dígitos. Se o usuário digitar seu pino incorretamente, um invisível anteriormenteTextView é mostrado com uma mensagem de erro. Neste ponto, seria útil para o TalkBack ler o conteúdo da mensagem de erro em voz alta.

Através de algumas experiências, percebi que poderia definirandroid:focusableInTouchMode="true" na exibição e chamar programaticamenteView#requestFocus(). Isso funciona na primeira vez, mas falha em erros subseqüentes, pois a exibição já está em foco. Também parece uma má idéia, em geral, sobrepor o foco atual da visão.

Eu então tentei invocarView#announceForAccessibility(java.lang.CharSequence) quando a mensagem de erro é exibida. Aparentemente este métodofalhar silenciosamente se a visualização não estiver visível no momento. Não tem problema e, caso contrário, funciona perfeitamente. No entanto, ele está disponível somente no nível de API 16+ (Jelly Bean), o que realmente limita sua utilidade. Tem de haver uma solução melhor, uma vez que o TalkBack suporta o nível de API 7+.

Assisti às sessões do Google I / O de 2011 e 2012 sobre acessibilidade, mas nenhuma delas parece abordar esse caso de uso básico. Qual é a melhor forma de fazer isso?

Editar 1: TLDR; Existe uma maneira deforça TalkBack para ler algum texto em voz alta antes da introdução doView#announceForAccessibility(java.lang.CharSequence) em feijão de geléia?

questionAnswers(5)

yourAnswerToTheQuestion