Как переопределить имя класса доступности - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу, чтобы Talkback не объявлял имя класса для Button представления. Для этого я написал следующую логику c, но она не работает

fun setAccessibilityDelegate(view: Button?) {
    view?.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
        override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
            super.onInitializeAccessibilityNodeInfo(host, info)
            info?.contentDescription = getContentDesStartWatching()
            info?.className = ""
        }
    })
}

Фактическое описание: «начать просмотр кнопка, кнопка двойное нажатие для активации»

Ожидаемое описание: « кнопка начала просмотра, двойное нажатие для активации »

Примечание: не может изменить описание контента на «начать просмотр», поскольку оно извлекается из бэкенд

1 Ответ

0 голосов
/ 12 февраля 2020

Это сработало для меня, использовалось AccessibilityDelegateCompat вместо AccessibilityDelegate

Kotlin код:

fun setAccessibilityDelegate(view: View) {
    ViewCompat.setAccessibilityDelegate(view, object: AccessibilityDelegateCompat() {
        override fun onInitializeAccessibilityNodeInfo(host:View,
                                                       info: AccessibilityNodeInfoCompat) {
            super.onInitializeAccessibilityNodeInfo(host, info)
            info.className = null
            info.contentDescription = getContentDesStartWatching()
        }
    })
}
...