【发布时间】:2019-04-04 18:01:22
【问题描述】:
在 iOS 中使用 Voice Over 时,调用 UIAccessibility.post(notification:argument:) 来宣布字段错误实际上并不会宣布错误。
我有一个提交按钮,当聚焦按钮时,旁白会按照您的预期读取按钮标题。按下按钮时,画外音会再次朗读标题。当按下提交按钮时,我正在做一些验证,当出现字段错误时,我试图通过调用来宣布它:
if UIAccessibility.isVoiceOverRunning {
UIAccessibility.post(notification: .announcement, argument: "my field error")
}
有趣的是,如果我在调试器的断点处停止,就会发生通知。当我不在断点处停止时,通知不会发生。
通知发布在主线程上,如果类似于NotificationCenter.default,我假设它是在发布它的同一线程上处理的。我试图将调用分派到主队列,即使它已经在主线程上,但这似乎也不起作用。
我唯一能想到的是,通知是在画外音完成阅读提交按钮标题之前发布和观察的,并且公告通知不会中断当前的画外音。
我非常感谢您对此的任何帮助。
【问题讨论】:
标签: ios voiceover uiaccessibility