In der iPhone-Wetter-App habe ich bei der Verwendung von VoiceOver festgestellt, dass das erste Anklopfen eines Abschnitts den Abschnitt ankündigt.
Wenn Sie zum Beispiel in iOS 9 zum ersten Mal auf ein beliebiges Element im mittleren Streifen tippen, wird "Stündliche Vorhersagen" angezeigt, bevor Sie mit der Beschreibung des Elements fortfahren, auf das Sie geklopft haben. Durch Tippen auf etwas anderes im Streifen werden keine "stündlichen Vorhersagen" angezeigt.
Wenn Sie auf etwas in der unteren Tabelle tippen, wird "Tägliche Vorhersagen" angesagt, bevor Sie das Element, auf das Sie geklopft haben, weiter beschreiben. Wenn Sie auf etwas anderes in dieser Tabelle tippen, wird "Daily Forecasts" nicht vorangestellt.
Gibt es eine einfache API, um Bereiche Ihrer App zu benennen? Oder müssen Sie das manuell tun, indem Sie den Voiceover-Cursor verfolgen und Ihr Label dynamisch ändern? (Funktioniert das überhaupt? Können Sie das AccessibilityLabel ändern, nachdem etwas angetippt wurde, aber bevor es gelesen wird?)
Es gibt zwei Ansätze, die ich vermute:
Unterteilen der UITableViewCell und Überschreiben der AccessibilityLabel.
%Vor%Siehe diesen Link von Apple-Dokumentation : Sie könnenAccessibilityLabel der Zelle von cellForRowAtIndexPath festlegen. Das Beispiel ist für die Wetter App selbst.
Gibt es eine einfache API, um Bereiche Ihrer App zu benennen?
Es scheint, wie das am besten geeignete Referenz Apple Zugänglichkeit Programming Guide .
Und seine API, Apples UIAccessibility-Dokumentation .
Das Festlegen der Eigenschaft shouldGroupAccessibilityChildren
scheint der beste Weg zu sein, um Ihr Ziel zu erreichen. Die verknüpfte API beschreibt es als
Ein boolescher Wert, der angibt, ob Voiceover sollte Gruppe zusammen die Elemente, die Kinder des Empfängers sind, unabhängig von ihrer Position auf dem Bildschirm. Wenn Sie den Wert dieser Eigenschaft auf JA auf der übergeordneten Ansicht der Elemente in den vertikalen Spalten verursacht Voiceover der App-Gruppierung zu respektieren und navigieren sie richtig.
Zu beachtende Punkte:
isAccessibilityElement
Eigenschaft verwenden, Standard UIKit Kontrollen und Ansichten, die das UIAccessibility Protokoll standardmäßig implementieren)?
view.isAccessibilityElement = true
accessibilityLabel
identifiziert das Element accessibilityHint
beschreibt die Aktion, die von einem Element ausgelöst wird