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

Posted

技术标签:

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

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

“通讯录,标题”

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

“返回按钮”

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

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

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

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

干杯

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

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

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

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

【讨论】:

以上是关于iOS Voice Over 在 UINavigationController 上推送/弹出时宣布新的视图标题的主要内容,如果未能解决你的问题,请参考以下文章

当您在 ios 设备中打开 Voice Over,并且无法在 worklight 混合应用程序中滚动时,有没有人遇到过这种情况?

如何为 UIPickerView 行设置 Voice Over 辅助功能标签?

[4G/5G/6G专题基础-158]: 5G VoNR(Voice over NR)与VoLTE共同组成5G三大语音方案

有啥方法可以以编程方式在 iOS 中打开 ACCESSIBILITY->Speech-Voice 设置?

注册 iOS Twilio Voice Client 时出现推送通知错误

段落填空 A loud sound flyng over your head could o