kev*_*boh 17 cocoa-touch accessibility objective-c ios voiceover
我正在使我的iOS应用程序可访问,我差不多完成了.我的应用程序包含几个自定义屏幕转换,当VoiceOver打开时,它似乎选择要在转换后描述的最左上角元素,或偶尔选择随机元素.UIAccessibilityTraitSummaryElement看起来很有希望,但据我了解它只适用于应用程序启动时,而不是任意转换后.
似乎没有可访问性特征或属性来指定元素被赋予VoiceOver焦点的首选顺序.有没有办法强制VoiceOver焦点?
Pat*_*pel 19
编辑: iOS 6现已可用,如kevboh所述,您现在可以在发布UIAccessibilityLayoutChangedNotification或时传递参数UIAccessibilityScreenChangedNotification:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, myAccessibilityElement);
Run Code Online (Sandbox Code Playgroud)
myAccessibilityElement 在大多数情况下,将isAccessibilityElement设置为YES(许多视图的默认值)的UIView.
或者,您可以将iOS6中添加的新特征添加UIAccessibilityTraitHeader到您的辅助功能元素中accessibilityTraits,这应该具有相同的结果(尽管我还没有对此进行测试).
原文: iOS 6中有新的API,这里无法讨论,因为它仍然在NDA下,但可以在WWDC 2012的"Accessibility for iOS"视频中找到(Session 210).
尽管如此,解决方法可能是手动触发公告以覆盖默认的焦点辅助功能标签公告:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text");
Run Code Online (Sandbox Code Playgroud)
由于这个可访问性推荐站点,提供了有趣的解释来强制 VoiceOver 焦点并根据需要重新排列元素。
通知内容更改
当当前页面的内容发生变化时,可以使用多种类型的通知来通知无障碍 API。为此,我们必须使用UIAccessibilityPostNotification方法将更改通知发送到辅助功能 API 。
有多种类型的更改通知,但最常用的两种是:
阅读顺序
使用UIAccessibilityContainer协议重新定义 VoiceOver 阅读顺序。这个想法是有一个元素表来定义元素的阅读顺序。使用shouldGroupAccessibilityElement属性通常非常有用,因此我们有一个精确的顺序,但仅针对视图的一部分(视图的其余部分将使用 VoiceOver 提供的本机顺序读取)。
说明此功能的最佳方式是键盘的按键顺序不是适当的。这是所需的顺序:1, 2, 3, 4, 7, 6, 8, 9, 5。创建了两个视图(蓝色和灰色),我们以图形方式将数字放入其中,如下定义:

插图和代码片段(Swift 和 ObjC)也可用于定义这两种解释。
| 归档时间: |
|
| 查看次数: |
15667 次 |
| 最近记录: |