7

通常,我会查看 Apple 的 UICatalog 示例代码以获取基本的 VoiceOver 支持,但看起来示例代码中有对 UIPickerViews 的 VoiceOver 支持。我是否需要在某处提供accessibilityLabel 方法来添加VoiceOver 支持?我尝试实现UIPickerViewAccessibilityDelegate方法,但语音仅读取我的选择器视图中的标签,而不是向上或向下滑动以更改值的提示。

我的选择器视图也设置为 UITextField 的输入视图。所以我不确定这是否相关。

更新: https ://github.com/stevemoser/VoiceOverPicker

我创建了一个示例项目来演示该问题。在示例中,显示了一个正常的选择器视图和一个文本字段。还有一个选择器设置为文本字段的输入视图属性。我似乎无法通过在使用 VoiceOver 时点击它来激活任一选择器。虽然我可以通过在屏幕上的视图中滑动(左右)来激活其中一个。有任何想法吗?

更新 2:看起来如果应用程序是在 iPhone 上运行的 iPhone 应用程序或在 iPad 上运行的 iPad 应用程序,它可以正常工作,但如果它是在 iPad 上运行的仅 iPhone 应用程序,则点击以选择 UIPickerView 不起作用。

4

2 回答 2

2

您是否只是使用每一行的标题(而不是自定义视图)来做一个普通的 UIPickerView?如果是这样,那么您无需做任何事情。

您提到 VoiceOver 正确读取了每一行的标签,因此我们知道 UIPickerView 正确地将 isAccessibilityElement 设置为 YES。它也正确读取了可访问性标签。

您是否有可能在选择器有机会读取可访问性提示之前与它进行交互?(为了其他人的利益,accessibilityHint 是史蒂夫在他的问题中提到的“用一根手指轻扫或向下调整值”。)或者也许某些通知正在改变 VoiceOver 焦点,然后提示有机会被阅读?

于 2014-01-16T17:18:43.977 回答
1

默认情况下,如果您的选择器视图是可访问的,当您使用 VoiceOver 关注它时,它将按照以下方式读取内容:

“[ROW LABEL] [#total] 选择器项目中的 [#number] 可调”暂停 2 到 3 秒,然后“向上或向下滑动以选择值”

有几点需要注意:

  1. 阅读标签和提示之间有 2 到 3 秒的延迟,请务必等待。
  2. 如果您提供自己的提示,我相信默认提示不会被阅读
  3. 只有当您直接按下某个控件或向右或向左滑动到控件时,才会读取提示。如果您向下或向上滑动 2 根手指,它将不会被读取。
  4. 确保您是在实际设备而不是模拟器上进行测试,因为它不会显示 VoiceOver 宣布的所有内容。
于 2014-01-19T17:34:32.693 回答