我正在尝试使我的 Voice Over 的 UIPickerView 可访问,我注意到 UIPickerViewAccessibilityDelegate 协议相当不完整。它只允许您指定 pickerView 组件的标签和提示,而不是组件内的行。 (它还有一个错误,它的 pickerView:accessibilityLabelForComponent: 方法没有在它的 pickerView 参数中传递 UIPickerView* ,而是一个 UIAccessibilityPickerComponent !)
所以我现在想知道,是否有任何方法可以为我的选择器的行设置自定义辅助功能标签,或者是否只能读出屏幕上显示的实际选择器行值?
我正在尝试做一个选择器视图,显示时间,小时,分钟,秒。我无法让 datePicker 执行此操作。但是,如果每一行都可以在画外音中说出类似“3 小时”而不是仅仅 3 的内容,那就太好了。如果我必须将可见标签设置为我希望画外音读出的内容,那么我不确定标签将适合显示这一点,即。
15小时35分20秒
用英语在屏幕上显示的内容相当多,不确定本地化后它会增长多大。因此,理想的是能够为每一行设置标签。
Cheers
如果您正在实施pickerView:viewForRow:forComponent:reusingView:
的方法UIPickerViewDelegate
作为填充 UIPickerView 组件的方式,您可以通过设置为每行实现自定义辅助功能标签accessibilityLabel
on the UIView
您将从该方法返回。
请注意,在填充以下内容的情况下,我未能成功使 VoiceOver 读取自定义辅助功能标签UIPickerView
using pickerView:titleForRow:forComponent:
- 均匀设置accessibilityLabel
在返回的NSString
(这在其他一些上下文中确实有效,例如为 UITableView 索引设置辅助功能标签)并没有改变 VoiceOver 的发音。因此,如果您想自定义 VoiceOver (或 Switch Control)对 UIPickerView 行说话的内容,似乎唯一的方法是使用pickerView:viewForRow:forComponent:reusingView:
,而不是其他 2 个候选方法中的任何一个,用于填充 UIPickerView 行。
不过,我还是建议你重新考虑一下你所做的事情是否值得。当 VoiceOver(或 Switch Control)用户到达组件时,例如和accessibilityLabel
“分钟”,他们知道现在是分钟,因为 VoiceOver 会读到例如: “分钟,19”,这样在调整数值时,就不需要再听到“20分钟”,“21分钟”; “20”和“21”就足够了,用户可以记住上下文(例如“现在我只有几分钟,所以让我们将其调整为 45”)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)