2012-07-24 9 views
7

Apple'ın sesi, bir UINavigasyon Denetleyicisinin içinde bulunan görünümlerimin birinin başlığını yanlış telaffuz ediyor.iOS erişilebilirliği - UINavigationBar'ın başlığı için erişilebilirlik etiketini nasıl ayarlıyorsunuz?

Uygulamanın diğer bölümlerinde, şirket adını doğru bir şekilde telaffuz etmesine yardımcı olmak için özel bir erişilebilirlik etiketi ekledim. Bir UINavigationBar'ın erişilebilirlik etiketini nasıl ayarlayabilirim?

cevap

10

Ben bir erişilebilirlik etiket eklemek olamazdı) o gezgin çubuğundan daha büyük bir şey etrafında olup olmadığını görmek için dokunun, ama geçici bir çözüm buldu:

Ben erişilebilirlik olan bir UILabel ile navigationItem başlık Görünümü değiştirmek kurmak.

UILabel *titleLabel = [[UILabel alloc] init]; 
titleLabel.text = @"myTitle"; 
[titleLabel setAccessibilityLabel:@"myCustomAccessiblityLabel"]; 
[titleLabel setFont:[UIFont boldSystemFontOfSize:20.0]]; 
[titleLabel setBackgroundColor:[UIColor clearColor]]; 
[titleLabel setTextColor:[UIColor whiteColor]]; 
[titleLabel sizeToFit]; 
self.navigationItem.titleView = titleLabel; 

Erişilebilirlik etiketini ayarlama neden çalışmadığından emin değilim, ancak yukarıdaki kod gereksinimlerim için çalışıyor.

+2

Geçici çözümünüzü gönderdiğiniz için teşekkürler! UINavigationBar ile sorun Apple ile dosyalamaya değer olabilir. Erişilebilirlikle ilgili hata raporlarını ele almak konusunda oldukça iyiler (yukarıda bahsettiğim UIBarButtonItem sorunu dahil). – Turix

+0

Harika bir fikir adamı! – Husam

0

UINavigationBar, UIView'dan itibaren accessibilityLabel özelliğini ayarlayabilmeniz gerekir. Deneyin: yourUINavigationBar.accessibilityLabel = @"title";. Ayrıca, yourUINavigationBar.isAccessibilityElement = YES; ile erişilebilirlik öğesi olarak işaretlendiğinden (ve erişilebilirlik öğesi olarak da işaretlenmiş başka bir görünümün içinde olmadığından) emin olmanız gerekebilir. (Ben bu son bit sorun olabilir, çünkü erişilebilirlik etiketleri hakkında zaten biliyormuşsunuz gibi görünüyor. Simülatördeki Erişilebilirlik Müfettişini kullanabilirsiniz. .

+0

Bu benim için işe yaramadı korkarım. SetAccessibilityElement = YES ayarlı ve başlık bir erişilebilirlik öğesi olarak işaretlenmiş başka bir görünümün içinde değil. –

+0

@RobertWagstaff Üzgünüz! Bu konuya hiç sahip olmadığımı itiraf ediyorum, ama belki de bunun yerine 'UINavigationItem' nesnesinin 'titleView' özelliği için bunu yapmanız gerekir. (Btw, bu "UIBiB ile ilgili" normal şeyler gibi davranmadı geçmişte "UIBarButtonItem" erişilebilirlik ile olan bir sorun benzer görünüyor.) – Turix

+0

hala hayır şans, ben denedim: self.navigationItem. title = @ "myTitle"; [self.navigationItem.titleView setIsAccessibilityElement: YES]; [self.navigationItem.titleView setAccessibilityLabel: @ "AccessibilityTitle"]; loadManagement –

14

Bu, iOS 8.2'de çalışır. viewDidLoad yılında:

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

görünümü denetleyicisine bir gezinti kontrol geçişleri, accessibilityLabel yerine görünümü kontrolörü title okunması zaman.

+0

iOS 7.1.2'de benim için çalıştı. Bu mükemmel bir cevaptır ve doğru cevap olarak seçilmelidir. – Vlad

+0

En iyi yanıt, iOS9'da çalışır. – BollMose

+0

Kabul, en iyi cevap. – Tyten

İlgili konular