TalkBack,在进入警示对话框时不要说“提示”(或)警示对话框的替代方案。

3

当我在设计我的应用程序以便使用Talkback进行访问时,遇到了这个问题。

当Android打开警告对话框时,它会读出单词"alert",然后是其余的对话框内容。我没有使用警告对话框来显示警告,是否有任何方法可以确保Android直接读取对话框内容而不是读取"alert"这个单词。

另外,如果我只想显示一些从屏幕弹出并且可以通过类似于警告对话框的方式来解除的数据,并且Talkback可以很好地处理它,则是否有警告对话框的替代方案?


你正在测试哪个版本的TalkBack? - alanv
我正在 Nexus 5 上测试它,运行最新版本的 TalkBack(3.5.2)。 - Dustfinger
@JehoshaphAkshay,你解决了这个问题吗? - user1064249
@user1064249 没有,我没有。 - Dustfinger
2个回答

0
有点晚了,但是对于现在阅读此内容的任何人,可以像这样覆盖对话框的视图:
class NoAlertDialog @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
    : RelativeLayout(context, attrs, defStyleAttr) {

    init {
        inflate(context, R.layout.dialog, this)
    }

    override fun dispatchPopulateAccessibilityEvent(event: AccessibilityEvent?): Boolean {
        Log.e("Logging", "Event dispatched: " + event?.action)
        if (event?.action == AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED) {
            return true
        }
        return super.dispatchPopulateAccessibilityEvent(event)
    }
}

如果不起作用,尝试比较不同的AccessibilityEvent int,使用在日志记录器中记录的那个。

-1

基于这篇Google Groups帖子,您可以通过覆盖View.dispatchPopulateAccessibilityEvent方法来实现它。

例如:

@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    //super.dispatchPopulateAccessibilityEvent(event);
    event.setBeforeText("My custom alert title text");
    event.getText().clear();
    return true;
}

1
我应该在哪个视图上设置它? - Carlo Moretti
1
这是一个视图类的方法,自API级别4以来一直存在。因此,您可以在任何视图中重写它。您可以参考这个SO线程来了解如何实现它。 - r.pedrosa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接