iOS辅助功能 - 如何为UINavigationBar的标题设置辅助功能标签?

问题描述:

苹果的声音错误地发布了我的观点之一的标题,这是在UINavigation Controller中。iOS辅助功能 - 如何为UINavigationBar的标题设置辅助功能标签?

在应用程序的其他部分,我添加了一个自定义辅助功能标签来帮助它正确地发布公司名称。我如何设置UINavigationBar的辅助功能标签?

我不能添加辅助功能的标签,但我发现了一个解决办法:

我更换有无障碍一个UILabel的navigationItem的标题查看建立。

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; 

我不确定为什么设置辅助功能标签不起作用,但上面的代码适用于我的需要。

+2

感谢您发布您的解决方法! UINavigationBar的问题可能值得向Apple提出。他们在解决与可访问性相关的错误报告(包括上面提到的UIBarButtonItem问题)方面相当不错。 – Turix 2012-07-24 03:32:51

+0

好主意的人! – Husam 2017-11-15 11:38:26

由于UINavigationBar继承自UIView,您应该可以设置其accessibilityLabel属性。试试:yourUINavigationBar.accessibilityLabel = @"title";

此外,您可能需要确保确保它被标记为可访问元素与yourUINavigationBar.isAccessibilityElement = YES;(而不是另一种观点认为它也被标记为可访问性元素中)。 (我猜这最后一点可能是问题所在,因为看起来您已经了解了辅助功能标签,您可以在模拟器中使用辅助功能检查器,通过查看元素周围的框来查看是否属于这种情况点击它,看它是否是周围的东西比导航栏更大)

+0

这对我来说并不适用,我很害怕。我设置了isAccessibilityElement = YES,并且该标题不在另一个被标记为可访问性元素的视图内。 – 2012-07-24 02:12:20

+0

@RobertWagstaff对不起!我承认我从来没有遇到过这个问题,但是在我看来,也许你需要为'UINavigationItem'对象的'titleView'属性来做这件事。 (顺便说一句,这似乎类似于我在过去的可访问性'UIBarButtonItem'的问题,它不像“正常”UIView相关的东西那样。) – Turix 2012-07-24 02:33:49

+0

仍然没有运气,我试过了: self.navigationItem。 title = @“myTitle”; [self.navigationItem.titleView setIsAccessibilityElement:YES]; [self.navigationItem.titleView setAccessibilityLabel:@“AccessibilityTitle”]; loadView – 2012-07-24 03:10:21

适用于iOS 8.2。在viewDidLoad

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

当导航控制器转换到视图控制器,所述accessibilityLabel被读取而不是视图控制器title

+0

在iOS 7.1.2上为我工作。这是完美的答案,应选择正确的答案。 – Vlad 2015-07-20 05:55:27

+0

最佳答案,在iOS9上工作。 – BollMose 2015-11-17 07:00:17

+0

同意,最佳答案。 – Tyten 2016-01-21 21:22:05