Pergunta

Meu aplicativo Android contém um controle deslizante personalizada com base no SeekBar, e eu quero anexar um texto personalizado frase para o meu controle para explicar o seu uso para a Acessibilidade.

Eu tenho feito isso com sucesso, usando View.setContentDescription(text), e o TalkBack corretamente fala a frase quando eu solicitar o foco no meu controle deslizante de Activity.onCreate.

Tão longe, tão bom.No entanto, quando eu toco o controle, que eu acredito que define o AccessibilityFocus no meu Android API de 16 de dispositivo de teste, extra palavras estão sendo adicionados a frase enunciada, isto é,'...buscar o controle.0 por cento'.Eu quero remover estas palavras adicionais.

Eu tentei eliminá-los usando event.getText().clear() no View.onInitializeAccessibilityEvent(event) sem sucesso.Ecoando o evento para LogCat relatórios a expressão correta em event.contentDescription e não há entradas no event.text, mas as palavras extras aparecem tanto na saída de áudio do dispositivo de hardware e na tela de depuração do texto apresentado pelo Menu->Configurações->Acessibilidade>TalkBack->Definições->Definições De Programação->Display Saída De Voz.

Por favor, alguém pode sugerir onde as palavras extras estão sendo adicionados, e como eliminá-los?

Quaisquer sugestões construtivas seriam bem-vindos.Obrigado.

Atualização

Eu posso ver que algumas Explorar Através do Toque inicial, toque único) evento no meu controle personalizado não passar através de sua onInitializeAccessibilityEvent ou dispatchPopulateAccessibilityEvent métodos como eu sou deliberadamente chamar event.setContentDescription(null).Apesar disso, há uma AccessibilityEvent sendo gerado com o meu controle personalizado ContentDescription, definido no Activity.onCreate no código, mais o extra palavras que eu estou tentando eliminar.

Eu também definir um AccessibilityDelegate no meu controle personalizado do pai ViewGroup para dar visibilidade de sua onRequestSendAccessibilityEvent chamadas.Isso confirma que nenhum evento contendo o meu ContentDescription é de passagem.

Isso é muito intrigante, e acontece o emulador e hardware real com o API de 16.Qualquer idéias?

Foi útil?

Solução 2

Eu acredito que este é um bug em TalkBack, e têm levantado Aos Olhos do Google-Livre edição #375, incluindo o código de exemplo.

Atualização: O Google tem agora arquivados neste.Link movido para: http://code.google.com/archive/p/eyes-free/issues/375

Outras dicas

Você também precisará substituir http://developer.android.com/reference/android/view/View.html#onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo)

e definir o contentDescription lá.

Se você deseja remover a 0%, gostaria de tentar alterar a classe no AccessibilityNodeInfo/AccessibilityEvent:http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html#setClassName(java.lang.CharSequence)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top