2015-12-06 3 views
0

J'écris une application qui utilise touchesBegan/Moved/etc pour suivre les gestes et les dessiner sur l'écran. Lorsque VoiceOver est activé, lorsque je tape deux fois sur la zone de dessin, la première touche apparaît toujours (au touchesBegan) au centre de la vue, quel que soit l'endroit où le tap s'est réellement produit. Des idées?iOS: VoiceOver click-through au mauvais endroit

Je définir les propriétés d'accessibilité en vue de

self.isAccessibilityElement = true   // Default is false. 
self.accessibilityElementsHidden = false  // Default is false anyway. 

Répondre

1

Ceci est parce que les pièges VoiceOver gestes, et les transforme en événements plus élémentaires. Cela permet aux utilisateurs handicapés d'interagir plus facilement avec les applications. Bien que cela va complètement casser l'accessibilité de votre application, et je ne le recommande pas nécessairement. Ce que vous cherchez est le UIAccessibilityTraitAllowsDirectInteraction. Encore une fois, cela va complètement briser l'accessibilité dans presque tous les cas. Mais, dans une application de dessin, cela peut avoir du sens et faciliter l'accessibilité pour les utilisateurs partiellement localisés.

Vous devez indiquer clairement aux utilisateurs non voyants que l'application est un espace de dessin et que les gestes VoiceOver normaux doivent être exécutés dans d'autres zones de l'écran. Assurez-vous également que votre vue n'occupe pas trop de l'écran, afin d'empêcher l'utilisation standard de VoiceOver.