OGeek|极客世界-中国程序员成长平台

标题: iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:07
标题: iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点?

我想在 VoiceOver 处于事件状态时每次聚焦不同的元素时调用一个方法。我希望有一些 UIAccessibilityNotification 为此,但我似乎找不到任何。

最终,我的目标是在阅读无障碍标签之前添加一个附加条件。例如,与说(默认情况下)“如果 UIButton 成为焦点:读取标签”相反,我希望能够说“当 UIButton 成为焦点并且UIButton的背景色为蓝色:读取标签”。

所以我的问题是:如何在阅读标签之前添加附加条件,或者在新元素成为焦点时接收通知?



Best Answer-推荐答案


您无法明确判断用户何时移动 VoiceOver 光标(就像您无法判断有视力的用户在看哪里一样)。

对于您想要的行为,您有两种选择:

  1. 只要其他条件发生变化,就将按钮的 accessibilityLabel 设置为适当的值。
  2. 子类 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4