【问题标题】:Ignore accessibility label when selected in iOS?在iOS中选择时忽略可访问性标签?
【发布时间】:2020-05-09 14:21:18
【问题描述】:

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

【问题讨论】:

  • 你有当前行为的工作原型(代码)吗?如果“是” - 请分享您的代码,这样会更容易找到预期的解决方案
  • 是的,我有,但这是一种非常普遍的行为。当一个按钮被点击时,旁白会宣布它的可访问性标签,我想忽略它。
  • 为什么你想忽略它? Spotify 的应用程序是一个行为不正确的应用程序,它应该在新闻上宣布状态变化。不要试图干扰预期的行为。
  • 您在按钮上使用了哪些 wcag 标签?
  • @GrahamRitchie 您可能是对的,但我们希望与用户一起测试这两个选项,然后再决定。我觉得有点主观。此外,即使它没有改变,它也会宣布可访问性标签。

标签: ios swift accessibility voiceover


【解决方案1】:

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

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

class myButton: UIButton {

    override func accessibilityActivate() -> Bool {

        self.accessibilityLabel = ""

        return true
    }
}

不要忘记在按钮操作失去焦点时重新定义辅助功能标签,否则它将保持为空。
myButton 类中使用UIAccessibilityFocus informal protocol,例如:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多