首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAccessibilityAnnouncementNotification VoiceOver中断

UIAccessibilityAnnouncementNotification VoiceOver中断
EN

Stack Overflow用户
提问于 2014-11-10 15:30:40
回答 2查看 7.3K关注 0票数 6

我在iOS 7/8 UIAccessibility上遇到了很大的麻烦。我正在使用的具体用例是我所期望的一个非常常见的“进度保存”用例。

编辑:--我已经注意到,从我最初的问题中,希望得到的结果并不清楚,所以我在这里添加了一个描述:目标是通过VoiceOver来表达“已保存的进度”信息,或者代替正在谈论的NavigationBar标题,或者在它被说出来之后。在这种情况下,我不确定可访问性的典型行为是什么,所以可能熟悉iOS可访问性的人也可以澄清这一点。

从最简单的解决方案开始,向最复杂的方向努力,我尝试了以下方法。

代码语言:javascript
复制
-(void) showProgressSavedPanel {

    ... // present the panel toast
    NSString * message = NSLocalizedString(@"Your progress has been saved.", @"Progress saved message");
    UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, message);
}

不幸的是,使用这种方法,当VoiceOver自动说出导航栏标题,后面是后退按钮的标题时,公告很快就被打断了。实际的VoiceOver结果类似于“您的进度有-- Navbar标题--后退按钮”。

阅读关于iOS可访问性的文章,我发现了一个新的API,它似乎也不起作用。添加了一个直接指向进度保存标签的新IBOutlet后,我将上面的代码替换为以下代码:

代码语言:javascript
复制
-(void) showProgressSavedPanel {

    ... // present the panel toast
    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, _progressSavedLabel);
}

无论是使用UIAccessibilityScreenChangedNotification还是使用UIAccessibilityLayoutChangedNotification,结果都是一样的:预期的信息没有被说出来。无论我做什么,似乎VoiceOver只是想说肚脐标题。

我想出了一个解决方案,这使我成为一个非常悲伤的熊猫,它使用第一个解决方案,除了在任意延迟后发布公告通知(1.5似乎有效),导致背棒按钮项目被发言后发布公告。

有谁知道更好的方法吗?

(预先谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-10 18:35:24

您可能无法实现任何一个API开箱即用的预期效果.正如您所观察到的,时间安排有点棘手,可能是由于VoiceOver本身正在努力在加载完成后开始读取屏幕内容。

在我看来,即时可见的通知,如吐司对话框,最好是用公告来描述。您还希望在用户被告知他们在哪个屏幕上之后,发布公告。虽然不太理想,但在人为地、硬编码的延迟之后,考虑发布公告是正确的。一旦实现,试验不同的本地化,以确保它是一致的阅读后,标题。

票数 5
EN

Stack Overflow用户

发布于 2019-11-15 12:13:40

让VoiceOver完成它的主要任务,然后发布通知,在"dispatch_after“执行块的帮助下宣布所需的指令。

代码语言:javascript
复制
// Delay execution of my block for 2 seconds.
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"desiredInstructionString"); });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26847179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档