滑动切换焦点辅助元素 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 的 NSObject
的 accessibilityElements
属性。如果您不想实现其中任何一个,您也可以简单地将 accessibilityElementsHidden
设置为 YES
以获取您希望 VoiceOver 忽略的元素。
【讨论】:
谢谢。这实际上在我的应用程序的其他视图中似乎有效,只是不适用于一个特定的视图(我写的唯一一个,碰巧)。我尝试了你的建议来实现 UIAcessibilityContainer 协议,当我滑动时它确实会被调用并返回我想要的 UIButtons,但似乎对 Voiceover 的焦点没有影响。 您能否在问题中添加一些您认为有代表性的代码? 我已经编辑了这个问题。不幸的是,视图本身是在界面生成器中定义的。【参考方案2】:我已通过向情节提要中的按钮添加可访问性标签来解决此问题。因为旁白已经正确地说出了他们的标签,所以我之前没有费心这样做。
【讨论】:
以上是关于滑动切换焦点辅助元素 iOS的主要内容,如果未能解决你的问题,请参考以下文章