ios - 如何在运行仅 iPhone 应用程序(非通用)的 iPad 上的 UIPickerView 中支持 VoiceOver?

标签 ios accessibility uipickerview voiceover uiaccessibility

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

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

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

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

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

最佳答案

您只是在为每一行使用标题(而不是自定义 View )来做普通的 UIPickerView 吗?如果是这样,您无需执行任何操作。

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

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

关于ios - 如何在运行仅 iPhone 应用程序(非通用)的 iPad 上的 UIPickerView 中支持 VoiceOver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21005119/

相关文章:

ios - 苹果为何在压缩.ipa之前先对其进行加密?

ios - 为什么 UIImage 在 Slider 中裁剪后变得模糊?

javascript - 在 JavaScript 中添加 Web 辅助功能支持

android - 更改可聚焦 ViewGroup 中元素的阅读顺序

ios - 尝试构建存档 Xcode : clang: error: linker command failed with exit code 1 (use -v to see invocation) 时出错

ios - 表情符号未显示,取而代之的是奇怪的字符

html - 仅使用 css 和 html 隐藏内容的键盘可访问性

Swift 选择器输入值设置为指定的 url

objective-c - 我可以禁用特定 UIPickerView 项目中的选择吗?

ios - UITableView 更新时 View 发生变化