Ke *_* MA 4 accessibility ios voiceover swift
我是iOS Accessibility领域的新手,我正在尝试使用此UIAccessibilityNotification功能,但它无法正常运行。我用一个按钮编写了一个非常简单的应用程序,当您单击该按钮时,将调用此方法。
- (IBAction)announce:(id)sender {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
@"Speak this out loud");
}
Run Code Online (Sandbox Code Playgroud)
以我的理解,当您单击按钮时,画外音将显示为“大声说出来”,但它正在读取按钮名称。谁能告诉我代码有什么问题,或者为什么我用错了代码?
为了清楚起见,我双击了按钮。当您单击该按钮时,它将读取按钮名称和特征(“ button”),而当您双击该按钮时,它将仅读取按钮名称。
感谢@ChrisCM的回答。延迟发布使其生效。
@IBAction func announce(sender: AnyObject) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, "Item added to cart")
})
}
Run Code Online (Sandbox Code Playgroud)
但是,仍然存在一个小问题,即单击“添加到购物车”按钮后,画外音将定位到第一个可访问项,即后退按钮,并读取“后退按钮”,然后读取announcementNotification参数。
您对通知如何工作的理解是正确的,但是对配音如何处理基本交互的理解却不正确。当您发布公告时,它开始,但是立即被对ui交互的标准画外音响应打断,这是为了宣布所按内容的可访问性标签。经过足够的延迟或基本上除了点击以外的所有内容,然后发布您的公告。
对于问题的第二部分(第一个可访问性问题为重点)。这可能是因为正在发生某些屏幕重绘,因此UIAccessibilityScreenChangedNotificationView层次结构发布了一个固有的图形。您应该通过自己发布此通知并使用您希望突出显示的元素来覆盖此内容。可能是启动屏幕更改的元素,或者是由于此交互而添加的新内容。
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |