2012-07-24 7 views

Antwort

10

ich keine Zugänglichkeit Label hinzufügen könnte, aber ich fand eine Abhilfe:.

ich ersetze den Titel Ansicht des navigationItem mit einem UILabel, die Zugänglichkeit hat Konfiguration.

Ich bin mir nicht sicher, warum die Einstellung der Zugänglichkeit Etikett nicht funktioniert, aber der obige Code funktioniert für meine Bedürfnisse.

+2

Vielen Dank für Ihre Workaround! Das Problem mit UINavigationBar könnte sich bei Apple lohnen. Sie sind ziemlich gut darin, Fehlerberichte im Zusammenhang mit der Barrierefreiheit zu behandeln (einschließlich des IIBarButtonItem-Problems, das ich oben angesprochen hatte). – Turix

+0

Großartige Idee Mann! – Husam

0

Seit UINavigationBar erbt von UIView, sollten Sie in der Lage sein, seine accessibilityLabel Eigenschaft festzulegen. Versuchen Sie: yourUINavigationBar.accessibilityLabel = @"title";.

Möglicherweise müssen Sie auch sicherstellen, dass es als ein Element für die Barrierefreiheit mit yourUINavigationBar.isAccessibilityElement = YES; markiert ist (und nicht in einer anderen Ansicht, die auch als Barrierefreiheitselement gekennzeichnet ist). (Ich nehme an, dieses letzte Bit könnte das Problem sein, da es so aussieht, als wüssten Sie bereits über Eingabehilfen-Labels. Sie können den Eingabehilfen-Inspektor im Simulator verwenden, um festzustellen, ob dies der Fall ist tippen sie, um zu sehen, ob es sich um etwas, das größer ist als die Navigationsleiste ist)

+0

Das hat bei mir nicht funktioniert Ich habe Angst. Ich setze isAccessibilityElement = YES, und der Titel befindet sich nicht in einer anderen Ansicht, die als Accessibility-Element markiert ist. –

+0

@RobertWagstaff Entschuldigung! Ich gestehe, dass ich dieses Problem nie hatte, aber mir fällt auf, dass Sie das vielleicht für die 'titleView'-Eigenschaft des' UINavigationItem'-Objekts tun müssen. (BTW, das scheint ähnlich zu einem Problem, das ich mit der Barrierefreiheit 'UIBarButtonItem' in der Vergangenheit hatte, wo es sich nicht wie" normale "UIView-verwandte Sachen.) – Turix

+0

immer noch kein Glück, versuchte ich: self.navigationItem. title = @ "meinTitel"; [self.navigationItem.titleView setIsAccessibilityElement: YES]; [self.navigationItem.titleView setAccessibilityLabel: @ "AccessibilityTitle"]; innerhalb von loadView –

14

Dies funktioniert in iOS 8.2. In viewDidLoad:

self.navigationItem.accessibilityLabel = @"My accessible label"; 

Wenn ein Navigationssteuerung geht in den View-Controller wird die accessibilityLabel anstelle des View-Controller title lesen.

+0

Arbeitete für mich auf iOS 7.1.2. Dies ist eine perfekte Antwort und sollte als richtige Antwort ausgewählt werden. – Vlad

+0

Beste Antwort, Arbeit an iOS9. – BollMose

+0

Zustimmen, beste Antwort. – Tyten