Frage

Als eine Übung mit der Zugänglichkeit und eine persönliche Herausforderung für mich habe ich beschlossen, dass ich eine relativ einfache Anwendung schreiben möchten.

Die App würde eine MKMapView der Vereinigten Staaten zeigen, und wenn man überall darauf tippen, verwendet es eine MKReverseGeocoder Sie den Ort zu zeigen, Staat und Land, in dem Sie erschlossen. Dies funktioniert gut, obwohl ich durch Zugabe eines WildcardGestureRecognizer zum MKMapView die Berührungsereignisse kapern haben. Dies funktioniert gut mit VoiceOver ausgeschaltet.

Wenn ich VoiceOver auf und tippen Sie auf die Karte drehen, sagt sie „Karte“. Wenn ich doppelt tippen macht es wenig clicky Geräusch, das bedeutet, dass Sie es aktiviert haben. Um ehrlich zu sein, bin ich ratlos, wie diese Ereignisse abfangen. Ich weiß, dass die allgemeine Lösung eine transparente Sicht über den gesamten Bildschirm zu setzen und überliefern berührt, wird aber, dass die Arbeit mit VoiceOver?

Für die Aufzeichnung der WildcardGestureRecognizer Ich verwende finden Sie hier: Wie abfangen Ereignisse auf einem MKMapView oder UIWebView berührt Objekte?

War es hilfreich?

Lösung

Das Problem ist, dass, wenn Sie auf Voiceover drehen, Touch-Ereignisse vom System blockiert werden. Um das zu beweisen, legt eine Spur in Ihrer touchesBegan Funktion. Es sollte in Ordnung feuern, bis Sie auf Voiceover aktivieren.

Der kleine clicky Ton, den Sie hören, wenn Sie doppelt tippen die Voiceover-over-ride Geste ist. Voiceover hat seinen eigenen Satz von Gesten, aber Sie können over-ride Voiceover-Gesten mit einem Doppel-Tap-hold.

Zum Beispiel bewegen sich unten wischen nicht eine Seite mit Voiceover. Aber wenn Sie Doppel-Tap-Hold, Warten auf den clicky Sound und dann nach unten wischen, wird es rollen.

Andere Tipps

iOS 5.0 diese Funktion hinzugefügt - nur die UIAccessibilityTraitAllowsDirectInteraction Zug auf der Ansicht:

mapView.accessibilityTraits |= UIAccessibilityTraitAllowsDirectInteraction;

(wenn dies nicht funktioniert, können Sie stattdessen müssen die Kartenansicht um eine Unterklasse und die accessibilityTraits Methode überschreiben)

Die erste Berührung an diesem Element wird noch das „Klick“ -Geräusch machen und den Namen der Ansicht usw. bekannt geben, aber alle nachfolgenden berührt werden direkte Interaktionen sein - dh die Berührungsereignisse in die Kartenansicht übergeben wird.

Beispiel hierfür im Einsatz in einer von Apples iOS apps ist Garageband -. Das Klavier Ansicht dieses Merkmal gesetzt hat, so dass der Blinde die Tasten auf der Klaviatur sie durch direktes Berühren spielen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top