【问题标题】:iOS Voice Over to announce new view titles when pushed/popped on a UINavigationControlleriOS Voice Over 在 UINavigationController 上推送/弹出时宣布新的视图标题
【发布时间】:2015-06-15 09:32:33
【问题描述】:

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

“通讯录,标题”

后面是返回按钮上的活动选择

“返回按钮”

起初我尝试通过使用通知函数并构造我希望 Voice Over 说的字符串来明确地调用它。当用户进入新推送的视图时,这似乎有效,但在返回同一视图时不起作用。尽管我的钩子在我的 VC 的 ViewWillAppear 方法中,所以这两个方法都被调用了。

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

我很欣赏后退按钮选择是一种标准且合理的默认设置,也许熟悉应用程序的用户可能会因为新视图的发布而感到厌倦。但对我来说,它可能有助于让用户清楚地了解情况,尤其是新用户,如果视图在它们出现时宣布了自己。

事实上,iOS 本身的行为似乎会根据视图的呈现方式而有所不同,这让我怀疑我是否做错了什么。这是一个好主意吗?是否有一种标准方法可以让这种行为始终如一地发挥作用?

干杯

【问题讨论】:

    标签: ios uinavigationcontroller accessibility voiceover


    【解决方案1】:

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

    例如:如果您浏览一个网站,并且该网站的按钮看起来很时髦。最终你会习惯这些看起来很时髦的按钮。如果你然后看到一个正常的按钮,你会不会有点困惑,然后说“嘿,这个按钮有什么不同”。它会让你暂停对吗?

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

    一般来说,在测试时,请针对 Apple 的应用程序进行测试,并遵循它们的准则和行为。

    【讨论】:

    • 感谢您的回复。我同意针对核心应用程序进行测试是了解可能性的好主意。然而,在这种情况下,我发现核心应用程序似乎做了我想让我的应用程序做的事情,但我不知道他们是如何做到的。设置应用程序如下所示..第一页上的“设置”。进入通用...“通用设置返回按钮”。进入辅助功能,“辅助功能通用返回按钮”。它与您将视图弹出回根目录相同。那么他们是怎么做到的呢?他们是否为后退按钮设置了可访问性标签,以便在按钮之前读出标题?
    • 我发现了问题所在。我的视图标题被分配为视图,以便我可以嵌入图像和标题文本。我将这些 titleViews 分配如下 - self.navigationItem.titleView = 。以这种方式完成后,iOS 不会正确读出该视图的可访问性标签。但是,如果我将文本标题分配给自己,如下所示 - self.title = 那么这个标题文本被读出我想要的作为后退按钮标签的前缀。似乎有一个错误或我没有对我的自定义标题视图做的事情。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      相关资源
      最近更新 更多