我想在 VoiceOver 处于事件状态时每次聚焦不同的元素时调用一个方法。我希望有一些 UIAccessibilityNotification 为此,但我似乎找不到任何。
最终,我的目标是在阅读无障碍标签之前添加一个附加条件。例如,与说(默认情况下)“如果 UIButton 成为焦点:读取标签”相反,我希望能够说“当 UIButton 成为焦点并且UIButton 的背景色为蓝色:读取标签”。
所以我的问题是:如何在阅读标签之前添加附加条件,或者在新元素成为焦点时接收通知?
Best Answer-推荐答案 strong>
您无法明确判断用户何时移动 VoiceOver 光标(就像您无法判断有视力的用户在看哪里一样)。
对于您想要的行为,您有两种选择:
- 只要其他条件发生变化,就将按钮的
accessibilityLabel 设置为适当的值。
子类 UIButton 并覆盖它的 accessibilityLabel getter 方法:
- (NSString *) accessibilityLabel {
if (SOME_CONDITION) {
return @"Hooray!";
} else {
return @"Womp womp";
}
}
如果您需要完全禁用某个项目,而不是返回 nil 或空白字符串,则应将其 accessibilityElementsHidden 属性设置为 YES .
关于iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/29762613/
|