Android:Comment faire pour éliminer un texte parlé de AccessibilityEvents lors de l'extension de SeekBar?

StackOverflow https://stackoverflow.com//questions/25001069

Question

Mon application Android contient un contrôle de curseur personnalisé basé sur le SeekBar, et je veux joindre un texte personnalisé phrase pour mon contrôle d'expliquer son utilisation pour l'Accessibilité.

Je l'ai fait avec succès à l'aide de View.setContentDescription(text), et TalkBack correctement parle de la phrase quand je demande de se concentrer sur ma curseur de contrôle de Activity.onCreate.

Pour l'instant, donc bon.Cependant, quand je touche le contrôle, qui, je crois, définit la AccessibilityFocus sur mon Android API 16 appareil de test, mots supplémentaires sont ajoutés à la phrase prononcée, c'est à dire'...chercher à contrôler.0%'.Je veux supprimer ces mots.

J'ai essayé de les éliminer à l'aide de event.getText().clear() dans View.onInitializeAccessibilityEvent(event) sans succès.En écho à l'événement pour LogCat rapports de la phrase correcte en event.contentDescription et pas d'entrées dans event.text, mais les mots supplémentaires figurent à la fois dans la sortie audio de l'appareil et sur l'écran de débogage texte affiché par Menu->Paramètres->Accessibilité>TalkBack>Paramètres->Paramètres De Développeur->Affichage De La Sortie Vocale.

Svp quelqu'un peut-il suggérer où les mots supplémentaires sont ajoutés, et comment les éliminer?

Toutes les suggestions constructives sont les bienvenues.Merci.

Mise à jour

Je vois que certains d'Explorer Par le Toucher (seul initiale-appuyez sur) l'événement sur mon contrôle personnalisé ne passe pas par son onInitializeAccessibilityEvent ou dispatchPopulateAccessibilityEvent les méthodes que je suis délibérément appel event.setContentDescription(null).Malgré cela, il y a un AccessibilityEvent généré avec ma du contrôle personnalisé ContentDescription, situé dans Activity.onCreate dans le code, ainsi que les extra mots, je suis d'essayer d'éliminer.

J'ai également mis un AccessibilityDelegate sur mon contrôle personnalisé du parent ViewGroup donner de la visibilité à ses onRequestSendAccessibilityEvent les appels.Cela confirme qu'aucun événement ne contenant mon ContentDescription est de passage.

C'est très surprenant, et se produit dans les deux l'émulateur et matériel réel avec l'API 16.Des idées?

Était-ce utile?

La solution 2

Je crois que c'est un bug dans la fonction TalkBack, et ont soulevé des Les Yeux de Google-Gratuit question n ° 375, y compris des exemples de code.

Mise à jour: Google a maintenant archivé cette.Lien déménagé: http://code.google.com/archive/p/eyes-free/issues/375

Autres conseils

Vous devez également remplacer http://developer.android.com/reference/android/view/View.html#onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo)

et de définir la contentDescription là.

Si vous souhaitez supprimer le 0%, je voudrais essayer de changer la classe dans AccessibilityNodeInfo/AccessibilityEvent:http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html#setClassName(java.lang.CharSequence)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top