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

时间:2017-04-04 18:23:46

标签: ios accessibility voiceover uiaccessibility

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

buttonObj.sendActions(for: .touchUpInside)

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

1 个答案:

答案 0 :(得分:3)

您想要ACCESSIBILITY_FOCUS该项目。您可以使用辅助功能通知执行此操作。

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,
                             elementYouWantToFocus);

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

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

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