有没有办法让VoiceOver在命令上读取标签?

时间:2015-08-02 21:40:44

标签: ios swift voiceover uiaccessibility blind

我希望我的QR码扫描应用程序在找到QR码时通知用户。对于有视力的用户,这可以使用底部的标签进行更新以通知用户。但是,盲人用户必须再次点击该标签才能通过Voice Over读取。我更喜欢它只是自动阅读。

我能找到的最接近这个问题的是 UIAccessibility - Read all the labels and buttons on the screen from top to down,这是不可能的。虽然这对我的应用来说不是好兆头,那是一年前的事。 Apple是否以任何方式更新了它的UIAccessibility协议以实现此目的?

作为最后的手段,我想如果启用VoiceOver,我可以播放自己的mp3录音。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:12)

您可以通过以下方式让VoiceOver随时说出任何字符串:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, NSLocalizedString("QR code has been detected", comment: ""))

Swift 4

UIAccessibility.post(notification: .announcement, argument: "Text")

没有直接的方法告诉VoiceOver说出VoiceOver光标未打开的元素的更新。这(即“手动”说出相同的内容)是一种可行的解决方法。

答案 1 :(得分:3)

您可以使用以下方法将VoiceOver焦点移动到元素:

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,elementToFocusOn)

然后,VoiceOver将解析并读取与该元素关联的辅助功能属性。