滑动切换焦点辅助元素 iOS

Posted

技术标签:

【中文标题】滑动切换焦点辅助元素 iOS【英文标题】:Swipe to switch focused accessibility element iOS 【发布时间】:2014-12-11 17:41:16 【问题描述】:

当用户在某些应用程序中启用 Voice Over 时,单手向右或向左滑动会更改聚焦的辅助功能元素并说出它(例如,App Store 顶部图表视图)。我想在我自己的应用程序(使用情节提要)中使用它。

我自己可以想出几种方法来做到这一点,使用滑动手势识别器和按顺序排列的可访问性元素列表,但似乎在可访问性 API 中必须有一种方法可以做到这一点。然而,我的研究一无所获。

这是一个内置功能吗?如果是这样,我如何将它添加到我的故事板或代码中?

编辑:

根据答案之一的建议,我已经为我的视图实现了 UIAccessibility 协议。这是代码。

- (NSInteger)accessibilityElementCount
  return 4;


- (id)accessibilityElementAtIndex:(NSInteger)index
  return [@[self.menuButton, self.firstButton, self.secondButton, self.thirdButton] objectAtIndex:index];


- (NSInteger)indexOfAccessibilityElement:(id)element
  return [@[self.menuButton, self.firstButton, self.secondButton, self.thirdButton] indexOfObject:element];

我遇到此问题的视图是在界面构建器故事板中定义的。毫无疑问,您可以从代码中推断出,它有 3 个按钮作为子视图。

【问题讨论】:

您的问题暗示您刚开始在 ios 上实现可访问性。我强烈建议您从 Accessibility Programming Guide 开始,然后返回 *** 并提出具体的代码级问题。 【参考方案1】:

您所描述的是 VoiceOver 的内置行为,不能在每个应用程序的基础上进行更改。

如果您想修改订单元素的焦点,请查看 iOS 7 的 UIAccessibilityContainer 协议或 iOS 8 的 NSObjectaccessibilityElements 属性。如果您不想实现其中任何一个,您也可以简单地将 accessibilityElementsHidden 设置为 YES 以获取您希望 VoiceOver 忽略的元素。

【讨论】:

谢谢。这实际上在我的应用程序的其他视图中似乎有效,只是不适用于一个特定的视图(我写的唯一一个,碰巧)。我尝试了你的建议来实现 UIAcessibilityContainer 协议,当我滑动时它确实会被调用并返回我想要的 UIButtons,但似乎对 Voiceover 的焦点没有影响。 您能否在问题中添加一些您认为有代表性的代码? 我已经编辑了这个问题。不幸的是,视图本身是在界面生成器中定义的。【参考方案2】:

我已通过向情节提要中的按钮添加可访问性标签来解决此问题。因为旁白已经正确地说出了他们的标签,所以我之前没有费心这样做。

【讨论】:

以上是关于滑动切换焦点辅助元素 iOS的主要内容,如果未能解决你的问题,请参考以下文章

Flexslider图片轮播文字图片相结合滑动切换效果

swipe.js如何动态添加滑动元素?

swipe.js怎么动态添加滑动元素

1加手机怎么关闭网页左右滑动

关于含RecyclerView的fragment来回切换时页面自动滑动到底部的解决方法

推荐10款左右切换的焦点图源码下载