关于 ios:在视图及其子视图上启用 VoiceOver
Enable VoiceOver on the view and it subviews
背景:就像 Apple 的电话应用程序中的语音邮件视图。我希望能够从单元格上下文以及各个控件中获得画外音通知。
问题:似乎如果父视图打开了可访问性,则子视图变得不可访问。
我研究了 shouldGroupAccessibilityChildren 和 accessibilityViewIsModal 但他们似乎没有解决它。我认为 UIAccessibilityNavigationStyle 可能是答案,但不确定如何使用它。
澄清:这与可视语音邮件无关。下图显示了 Apple 原生应用的画外音功能。黑盒子是声音的目标所在。绿色框只是屏蔽了一些私人信息。
选择整体框时

选择播放按钮时
相关讨论
- 您是否介意在不提及可视语音邮件的情况下澄清问题,因为可视语音邮件并非在所有国家/地区(如我的国家)都可用?请找到一个不同的示例,或者最好详细描述您的特定 UI 和实际/预期行为。谢谢。
你应该考虑子类化 UIAccessibilityContainer 协议。我相信这就是你想要的。创建一个自定义可访问性容器,它是您想要的所有东西的父级。然后,您可以更精细地控制您的超级视图及其子视图如何报告给可访问性 API。
相关讨论
- 我可能应该更新它,但我得出了同样的结论。但是,您也可以添加一个与父视图大小相同的子视图并使其可访问。它可以让您像使用容器一样四处走动,而无需深入了解细节。