首页 > 解决方案 > 在iOS中选择时忽略可访问性标签?

问题描述

我有一个带有可访问性标签的按钮,比如“开始”。当用户关注它时,旁白会按预期宣布其标签。但是,当用户双击时,画外音会再次宣布标签。我想忽略第二个公告。我检查了 Spotify 的应用程序,当单击“播放”按钮时,其图标和标签变为“暂停”,但配音并未宣布此更改。我怎样才能实现相同的行为?

标签: iosswiftaccessibilityvoiceover

解决方案


当用户双击时,画外音再次宣布标签。我想忽略第二个公告。

达到目标的最快方法是在新的按钮子类中覆盖accessibilityActivate函数:

class myButton: UIButton {

    override func accessibilityActivate() -> Bool {

        self.accessibilityLabel = ""

        return true
    }
}

当按钮操作失去焦点时,不要忘记重新定义您的可访问性标签,否则它将保持为空。在类中
使用UIAccessibilityFocus非正式协议myButton,例如:

override open func accessibilityElementDidLoseFocus() {
    self.accessibilityLabel = "yourPreviousLabelHere"
}

推荐阅读