Android 可访问性:如何更改搜索栏读取的字符串

Android accessibility: how to change the search bar readed string

正如我在标题中所写,Android Talkback 实际上读取了我的搜索栏的提示文本,但我需要更改该行为以读取自定义字符串(与提示不同)。我尝试设置 contentDescription 但它不起作用(对讲仍然读取提示文本)。

你有什么建议吗?

您可以在视图上设置 AccessibilityDelegate 来覆盖诸如它通常如何描述自身的内容:

ViewCompat.setAccessibilityDelegate(yourView, object : AccessibilityDelegateCompat(){
    override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfoCompat?) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info?.let { it.text = "whatever" }
    }
})

或者你可以重写 onPopulateAccessibilityEvent(它处理像 AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED 这样的触发事件)并使用 event.getText(),它给你一个 List<CharSequence> 你可以 add你的描述。这实际上取决于您在做什么以及它需要多动态。

不幸的是,我还没有找到对所有这些东西的很好的概述,否则我会 link 你去看看。我认为代表是你需要研究的