首页 文章

iOS Voice Over在UINavigationController上推送/弹出时宣布新的视图 Headers

提问于
浏览
0

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

“地址簿, Headers ”

然后在后退按钮上进行主动选择

“返回键”

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

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

我欣赏后退按钮选择是一个标准和明智的默认值,也许一个知道那里的应用程序的用户可能会厌倦新视图宣布自己 . 但对我来说,感觉它可能有助于为用户保持清晰,特别是新用户,如果观看时他们自己宣布了 .

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

干杯

2 回答

  • 0

    如果您设置自定义titleView的accessibilityLabel,则VoiceOver会将其读取为页面 Headers . 然后,它将读出第一个项目(“后退按钮”) . 换一种说法:

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

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

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

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

    通常,在测试时,请针对Apple的应用程序进行测试,并遵循其指南和行为 .

相关问题