画外音:强制访问性元件的画面转变之后,可选择(VoiceOver: force an accessi

2019-06-24 14:36发布

我在做我iOS应用程序访问的过程中,我几乎完成了。 我的应用程序包含几个自定义屏幕转换,并且当VoiceOver的是它似乎任意选取上最左边的元素的过渡段后形容,偶尔随机元素。 UIAccessibilityTraitSummaryElement看起来前途无量,但应用程序启动时,按照我的理解它才能正常运行,不经过任意转换。

似乎没有成为一个无障碍的性状或属性来指定优选为了使元件被给予的VoiceOver焦点。 有没有什么办法来强制VoiceOver的重点是什么?

Answer 1:

编辑:iOS 6中现在可用,并且由kevboh提到的,你可以发布一个现在时传递参数UIAccessibilityLayoutChangedNotificationUIAccessibilityScreenChangedNotification

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, myAccessibilityElement);

myAccessibilityElement在大多数情况下,将与isAccessibilityElement设置为YES(默认为许多美景)一个UIView。

或者,您可以添加在iOS6的添加新的特性UIAccessibilityTraitHeader到您的辅助元素的accessibilityTraits ,应该有相同的结果(虽然我没有测试这个还)。

原文:有一个在iOS 6中,可以不在这里讨论,因为它仍然是保密协议,新的API,但可以在“辅助功能为iOS”的WWDC 2012(会话210)的视频被发现。

如果做不到这一点,虽然,一个解决办法可能是手动触发公告覆盖默认集中无障碍标签公告:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text");


Answer 2:

有趣的解释,以迫使VoiceOver的重点和重新排列元素,希望提供感谢这个无障碍的建议网站 。

NOTIFY的内容改变

当在当前页面的内容改变,它可以通知使用几种类型的通知的可访问性API。 要做到这一点,我们必须改变通知发送给使用方法UIAccessibilityPostNotification可访问API。

有几种类型的变更通知,但两个最常用的有:

  • UIAccessibilityLayoutChangedNotification:通知该页面的一部分已与2个可能的传入的参数(一个或NSString的一个UIObject的)改变。 用的NSString,该通知的行为像一个VoiceOver的发声一个UIAccessibilityAnnouncementNotification。 用UIObject的,焦点被移动到用户界面元素。 此通知是非常相似的,但UIAccessibilityAnnouncementNotification应是动态内容的结果被删除或添加到当前视图。
  • UIAccessibilityScreenChangedNotification:通知整个页面发生了变化,包括零或UIObject类为传入的参数。 随着零,在页面中的第一个可访问元素集中。 用UIObject的,焦点被移动到与VoiceOver的指定的元素。 该通知附带了包括像宣布了新的一页声音的发声一起。

阅读顺序

重新定义VoiceOver会读出顺序使用UIAccessibilityContainer协议完成。 我们的想法是具有限定的元件的读取顺序的元素的表。 它往往是非常有用的,所以我们有一个精确的顺序,但只(视图的其余部分将使用VoiceOver会提供的本机顺序读取)视图的一部分使用shouldGroupAccessibilityElement属性。

说明此功能的最好办法是,它的键顺序不是必须一个合适的键盘。 以下是所希望的顺序:1,2,3,4,7%,6,8,9,5.两个视图中创建(蓝色和灰色),我们把图形中的数字它们作为下文定义:

插图和代码片段 (SWIFT&ObjC)也可用来定义这些2个解释。



文章来源: VoiceOver: force an accessibility element to be selected after a screen transition