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

Con*_*gus 6 blind ios voiceover uiaccessibility swift

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

我能找到的最接近这个问题的是 UIAccessibility - 从上到下阅读屏幕上的所有标签和按钮,这是不可能的.虽然这对我的应用来说不是好兆头,那是一年前的事.Apple是否以任何方式更新了它的UIAccessibility协议以允许此操作?

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

任何帮助是极大的赞赏!

Bor*_*šek 13

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

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

斯威夫特4

UIAccessibility.post(notification: .announcement, argument: "Text")
Run Code Online (Sandbox Code Playgroud)

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


xoo*_*ler 5

您可以使用以下命令将 VoiceOver 焦点移动到某个元素:

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, elementToFocusOn) 
Run Code Online (Sandbox Code Playgroud)

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