2012-05-18 8 views
11

Ich bin dabei, meine iOS-App zugänglich zu machen und bin fast fertig. Meine App enthält mehrere benutzerdefinierte Bildschirmübergänge, und wenn VoiceOver aktiviert ist, scheint es entweder das Element ganz links nach dem Übergang oder gelegentlich ein zufälliges Element auszuwählen. UIAccessibilityTraitSummaryElement sah vielversprechend aus, aber wie ich es verstehe funktioniert es nur, wenn die App gestartet wird, nicht nach willkürlichen Übergängen.VoiceOver: erzwinge die Auswahl eines Barrierefreiheitselements nach einem Bildschirmübergang

Es scheint keine Zugänglichkeitseigenschaft oder -eigenschaft zu geben, um die bevorzugte Reihenfolge anzugeben, in der Elemente den VoiceOver-Fokus erhalten. Gibt es eine Möglichkeit, den Fokus von VoiceOver zu erzwingen?

Antwort

13

EDIT: iOS 6 ist ab sofort verfügbar, und wie durch kevboh erwähnt, können Sie jetzt ein Argument übergeben, wenn ein UIAccessibilityLayoutChangedNotification oder UIAccessibilityScreenChangedNotification Posting:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, myAccessibilityElement); 

myAccessibilityElement wird in den meisten Fällen ein UIView mit isAccessibilityElement auf JA setzen (der Standardwert für viele Ansichten).

Alternativ können Sie das neue Merkmal, das in iOS6 UIAccessibilityTraitHeader hinzugefügt wurde, zu Ihren barrierefreien Elementen accessibilityTraits hinzufügen, die das gleiche Ergebnis haben sollten (obwohl ich dies noch nicht getestet habe).

ORIGINAL: Es gibt neue API in iOS 6, die hier nicht diskutiert werden, weil sie noch unter NDA, kann aber in der "Zugänglichkeit für iOS" Video von der WWDC 2012 (Session 210) zu finden.

Gelingt das nicht obwohl, eine Abhilfe manuell könnte eine Ansage auslösen den Standard zu überschreiben fokussiert Ankündigung Zugänglichkeit Label:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text"); 
+0

die Sitzung Video Letzte Nacht sah, dass API sieht perfekt aus. Vielen Dank! Für diejenigen, die nach der In-Video-Erklärung suchen, tritt es um 26:33 in Session 210 - Accessibility für iOS auf. – kevboh

+0

Ich werde hier wieder kommentieren, wenn die API öffentlich wird. – kevboh

+4

Jetzt, da iOS 6 öffentlich ist: Sie können ein Barrierefreiheitselement übergeben, wenn Sie eine "UIAccessibilityLayoutChangedNotification" oder "UIAccessibilityScreenChangedNotification" als zweites Argument für 'UIAccessibilityPostNotification' bereitstellen und VoiceOver sich auf dieses Element konzentriert. – kevboh