Android: Come eliminare il text parlato da AccessibilityEvents quando si estende SeekBar?

La mia applicazione Android contiene un controllo cursore personalizzato basato sul SeekBar e desidero albind una frase di text personalizzata al mio controllo per spiegarne l'utilizzo per l'accessibilità.

Ho fatto questo con successo utilizzando View.setContentDescription(text) e TalkBack parla correttamente la frase quando richiesto di concentrarmi sul controllo dello slider da Activity.onCreate .

  • Imansible visualizzare i dati come ListView da Firebase
  • JNI Android - Convertire char * in byte arrays e restituirlo a java
  • Errore: Imansible trovare: com.android.support:support-v4.20.0.+
  • Geofencing Android - Nessuna intenzione di venire?
  • Android Studio non può aprire alcun progetto
  • Impostare il button Home di ActionBar sul lato destro
  • Fin qui tutto bene. Tuttavia, quando touch il controllo, che credo imposta l'AccessibilityFocus sul mio dispositivo di prova Android API 16, parole aggiuntive vengono aggiunte alla frase parlata, cioè "… cerca controllo. 0 per cento '. Voglio rimuovere queste parole aggiuntive.

    Ho cercato di eliminarli usando event.getText().clear() in View.onInitializeAccessibilityEvent(event) senza successo. L'echo dell'evento a LogCat riport la frase corretta in event.contentDescription e non event.contentDescription voci in event.text , ma le parole extra appaiono sia nell'output audio dell'hardware del dispositivo sia nel text di debug sullo schermo visualizzato da Menu-> Impostazioni- > Accessibilità-> TalkBack-> Impostazioni-> Impostazioni Developer-> Mostra l'output vocale .

    Puoi chiunque suggerire where vengono aggiunte le parole supplementari e come eliminarle?

    Eventuali suggerimenti costruttivi saranno accolti. Grazie.

    Aggiornare

    Posso vedere che un evento di Esplora da touch (iniziale singolo touch) sul mio controllo personalizzato non passa attraverso i suoi methods onInitializeAccessibilityEvent o dispatchPopulateAccessibilityEvent poichè devo call deliberatamente event.setContentDescription(null) . Nonostante questo, c'è un AccessibilityEvent generato con ContentDescription di controllo personalizzato, impostato in Activity.onCreate in codice, oltre alle parole extra che sto cercando di eliminare.

    Ho anche impostato un AccessibilityDelegate sul ViewGroup genitore del controllo ViewGroup per dare visibilità delle sue chiamate onRequestSendAccessibilityEvent . Questo conferma che nessun evento contenente la mia ContentDescription sta passando.

    Questo è molto sconcertante, e succede sia sull'emulatore che sull'hardware reale con API 16. Qualche idea?

  • Android - impedisce a TalkBack di annunciare ad alta voce il titolo di TextView
  • Android: come controllare se è abilitata una AccessibilityService particolare?
  • Impostare il text in AccessibilityNodeInfo
  • Accessibilità e Android WebView
  • Rendere accessibili le applicazioni Android (per le persone con disabilità) con PhoneGap
  • Modificare l'ordine di destinazione dell'accessibilità
  • 2 Solutions collect form web for “Android: Come eliminare il text parlato da AccessibilityEvents quando si estende SeekBar?”

    È inoltre necessario ignorare http://developer.android.com/reference/android/view/View.html#onInitializeAccessibilityNodeInfo (android.view.accessibility.AccessibilityNodeInfo)

    e impostare il contenutoDescrizione.

    Se vuoi rimuovere il 0%, cercherò di cambiare la class in AccessibilityNodeInfo / AccessibilityEvent: http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html#setClassName(java.lang.CharSequence )

    Credo che questo sia un bug in TalkBack e ha sollevato il problema di Google Eyes-Free # 375 , incluso il codice di esempio.

    Aggiornamento: Google ha ora archiviato questo. Il link è passato a: http://code.google.com/archive/p/eyes-free/issues/375

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.