Игнорировать метку доступности при выборе в iOS? - PullRequest
1 голос
/ 23 января 2020

У меня есть кнопка с меткой доступности, скажем, «Пуск». Когда пользователь сосредотачивается на этом, голос за кадром объявляет его метку, как и ожидалось. Однако голос за кадром снова объявляет метку, когда пользователь дважды нажимает. Я хочу проигнорировать это второе объявление. Я проверил приложение Spotify, при нажатии на кнопку «играть», его значок и метка меняется на «пауза», но голос за кадром не объявляет об этом изменении. Как я могу добиться того же поведения?

1 Ответ

1 голос
/ 27 января 2020

голос за кадром снова объявляет метку, когда пользователь дважды нажимает. Я хочу проигнорировать это второе объявление.

Самый быстрый способ достичь своей цели - переопределить функцию accessibilityActivate в новом подклассе кнопок:

class myButton: UIButton {

    override func accessibilityActivate() -> Bool {

        self.accessibilityLabel = ""

        return true
    }
}

Не забудьте переопределить метку доступности, когда действие кнопки потеряло фокус, иначе оно останется пустым.
Используйте UIAccessibilityFocus неофициальный протокол в классе myButton, например, следующим образом:

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