Pregunta

Mi aplicación de Android contiene un control deslizante personalizado basado en el SeekBar, y quiero adjuntar una frase de texto personalizada a mi control para explicar su uso para Accesibilidad.

He hecho esto exitosamente usando View.setContentDescription(text), y TalkBack dice correctamente la frase cuando solicito centrarse en mi control deslizante desde Activity.onCreate.

Hasta ahora, todo bien.Sin embargo, cuando toco el control, que creo que establece AccessibilityFocus en mi dispositivo de prueba Android API 16, se agregan palabras adicionales a la frase hablada, es decir.'...busca el control.0 por ciento'.Quiero eliminar estas palabras adicionales.

He intentado eliminarlos usando event.getText().clear() en View.onInitializeAccessibilityEvent(event) sin éxito.Hacer eco del evento en LogCat informa la frase correcta en event.contentDescription y no hay entradas en event.text, pero las palabras adicionales aparecen tanto en la salida de audio del hardware del dispositivo como en el texto de depuración en pantalla mostrado por Menú->Configuración->Accesibilidad->TalkBack->Configuración->Configuración de desarrollador->Mostrar salida de voz.

¿Alguien puede sugerir dónde se agregan las palabras adicionales y cómo eliminarlas?

Cualquier sugerencia constructiva será bienvenida.Gracias.

Actualizar

Puedo ver que algún evento de Exploración táctil (un solo toque inicial) en mi control personalizado no pasa por ninguno de sus onInitializeAccessibilityEvent o dispatchPopulateAccessibilityEvent métodos como estoy llamando deliberadamente event.setContentDescription(null).A pesar de esto, existe una AccessibilityEvent siendo generado con mis controles personalizados ContentDescription, establecer en Activity.onCreate en el código, además de las palabras adicionales que estoy tratando de eliminar.

También he configurado un AccessibilityDelegate en el padre de mi control personalizado ViewGroup para dar visibilidad a su onRequestSendAccessibilityEvent llamadas.Esto confirma que ningún evento que contenga mi ContentDescription está de paso.

Esto es muy desconcertante y sucede tanto en el emulador como en el hardware real con API 16.¿Algunas ideas?

¿Fue útil?

Solución 2

Creo que esto es un error en TalkBack y he planteado Número 375 de Google Eyes-Free, incluido el código de ejemplo.

Actualizar: Google ahora ha archivado esto.Enlace movido a: http://code.google.com/archive/p/eyes-free/issues/375

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top