在 iOS 上模拟 VoiceOver 辅助功能点击

Posted

技术标签:

【中文标题】在 iOS 上模拟 VoiceOver 辅助功能点击【英文标题】:Simulate VoiceOver accessibility tap on iOS 【发布时间】:2017-04-04 18:23:46 【问题描述】:

我知道我可以通过以下方式模拟按钮点击:

buttonObj.sendActions(for: .touchUpInside)

但实际上点击按钮并没有激活 VoiceOver 的元素。我想以编程方式点击元素,就像用户在 VoiceOver 开启时用手指点击它一样 - 所以 VoiceOver 应该开始读取项目的 accessibilityLabel,但实际上还没有执行项目的操作。

【问题讨论】:

【参考方案1】:

您想要 ACCESSIBILITY_FOCUS 项目。您可以使用辅助功能通知来做到这一点。

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,
                             elementYouWantToFocus);

请注意,在大多数情况下,将可访问性的重点转移到用户身上会降低访问性。如果您的用户界面结构良好,用户应该能够自己找到内容。甚至是新内容。主要的上下文变化等应该被宣布,一般来说 ios 的默认行为将更容易访问,因为它们是用户将习惯的。

https://www.w3.org/TR/UNDERSTANDING-WCAG20/consistent-behavior.html

我还在blog post 上更深入地介绍了这个主题。

【讨论】:

WCAG 的引文真是太棒了。以后一定会用到的。

以上是关于在 iOS 上模拟 VoiceOver 辅助功能点击的主要内容,如果未能解决你的问题,请参考以下文章

覆盖 TextField 中的 VoiceOver 消息 - iOS 辅助功能

ios辅助功能之voiceover实战

寻找 iOS VoiceOver 辅助功能指南:当我点击文本时,它应该说多少?

UIPageControl 和 VoiceOver/辅助功能

MKAnnotationView 自定义标注对辅助功能 (VoiceOver) 不可见

在哪里可以找到 iOS“配音”功能的 emoji 辅助功能文本?