【问题标题】:Swipe to switch focused accessibility element iOS滑动切换焦点辅助元素 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 开始,然后返回 StackOverflow 并提出具体的代码级问题。

标签: ios objective-c xcode-storyboard uiaccessibility


【解决方案1】:

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

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

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2017-02-14
    相关资源
    最近更新 更多