如何让VoiceOver在iOS中宣布章节标签?

the*_*eal 8 ios voiceover

在iPhone天气应用程序中,当使用VoiceOver时,我注意到第一次点击一个部分,它会宣布该部分.

例如,在iOS 9中,首次点击中间条带上的任何项目将在继续描述您点击的元素之前宣布"每小时预测".点击条带中的任何其他内容将不会宣布"每小时预测".

点击底部表格上的任何内容,将在继续描述您点击的元素之前发布"每日预测".点击此表中的任何其他内容不会以"每日预测"作为前缀.

是否有一个简单的API来命名您应用的各个部分?或者您是否必须通过跟踪配音光标并动态更改标签来手动执行此操作?(这是否有效?在点击某些内容之后但是在读取之前,您是否可以更改accessibilityLabel?)

And*_*rna 0

\n

是否有一个简单的 API 来命名应用程序的各个部分?

\n
\n\n

看来最合适的参考是Apple的辅助功能编程指南

\n\n

及其 API,Apple 的 UIAccessibility Documentation

\n\n

设置shouldGroupAccessibilityChildren财产似乎是实现目标的最佳方式。链接的 API 将其描述为:

\n\n
\n
\n

一个布尔值,指示 VoiceOver 是否应将作为接收者子元素的元素组合在一起,无论它们在屏幕上的位置如何。在垂直列中的项目的父视图上将此属性的值设置为 YES 会导致 VoiceOver 尊重 app\xe2\x80\x99s 分组并正确导航它们。

\n
\n
\n\n

要记住的事情:

\n\n
    \n
  1. 目标元素是辅助功能元素吗?(您可以使用isAccessibilityElement属性进行检查;标准 UIKit 控件和视图默认实现 UIAccessibility 协议)\n\n
      \n
    • 如果是这样,您只需设置其可访问属性
    • \n
    • 如果不是,你需要改变它的值,view.isAccessibilityElement = true
    • \n
  2. \n
  3. 属性accessibilityLabel标识元素
  4. \n
  5. accessibilityHint属性描述了元素触发的操作
  6. \n
  7. 您可以在故事板中设置辅助功能属性
  8. \n
  9. 或者,您可以在视图子类的实现中设置辅助功能属性
  10. \n
\n