iOS Voice Over在UINavigationController

时间:2015-06-15 09:32:34

标签: ios uinavigationcontroller accessibility voiceover

我想知道是否有可能(并且从可访问性功能的角度来看)可以让Voice Over宣布用户进入的每个新视图的标题。所以像Voice over say

“地址簿,标题”

然后在后退按钮

上进行活动选择

“后退按钮”

首先,我尝试通过使用通知功能并构建我喜欢Voice Over的字符串来明确地调用它。这似乎在用户进入新推视图时起作用,但在返回到同一视图时不起作用。即使我的钩子在我的VC的ViewWillAppear方法中,所以这两个都被调用。

我有点困惑,好像我按模式推送视图,从屏幕底部向上滑动然后默认的iOS行为(没有我的代码的任何额外提示)是它宣布视图菜单标题然后移动在后面的按钮上。然而,当推送到我的导航控制器上的新视图时,它似乎只想选择并仅宣布后退按钮。

我很欣赏后退按钮选择是一个标准和合理的默认设置,也许那些知道应用程序周围的用户可能会因为新视图宣布自己而感到厌倦。但对我来说,感觉它可能有助于为用户保持清晰,特别是新用户,如果观看时他们会自我宣布。

事实上,iOS本身的行为似乎有所不同,具体取决于视图的显示方式,这让我想知道我是否做错了什么。这是一个好主意吗?是否有一种标准方法可以使这种行为始终如一地运作?

干杯

2 个答案:

答案 0 :(得分:2)

我想说从可访问性的角度来看这是不可取的。默认的iOS行为,尽管不时是非理想的,但用户将会习以为常。

例如:如果您浏览网站,并且它具有时髦的按钮。最终你可以使用这些时髦的按钮。如果你看到一个正常的按钮,你不会有一点困惑,并说“嘿,这个按钮有什么不同”。这会让你暂停吗?

从辅助功能的角度来看,有时默认行为最好(只要它通常是可访问的),而不是更易于访问的行为。因为,预期的行为正好......预期。当您为其他应用程序打开VoiceOver时,这种行为是否正常?

一般情况下,在测试时,请针对Apple的应用程序进行测试,并遵循其指南和行为。

答案 1 :(得分:0)

如果您设置自定义titleView的accessibilityLabel,VoiceOver会将其作为页面标题读出。然后,它将读出第一个项目(“后退按钮”)。换句话说:

self.navigationItem.titleView.accessibilityLabel = @"....";