首页 > 解决方案 > 出于某种原因,如何从 TalkBack 隐藏吐司消息

问题描述

出于可访问性演示的目的,我正在创建 android 示例应用程序。顺便说一句,在创建不良示例可访问性期间,我有一个关于 toast 问题的问题。默认情况下,每次显示 toast 时,TalkBack 都会读取 toast,效果非常好。

但有时我想对 TalkBack 隐藏 toast,这样 TalkBack 就不会读取 toast 消息。当然,TalkBack 必须阅读所有 toast 消息,以便在没有屏幕阅读器用户的情况下提供相同的信息。但有时在某些应用程序中,屏幕上会出现过多的 toast 消息,甚至同一条消息也会留在屏幕上。

所以在这种情况下,TalkBack 说的太多,甚至 TalkBack 都不会读取 toast,盲人用户可以通过滑动读取 toast 的消息。吐司消息也不是警报文本。所以在某些情况下,我认为需要对 TalkBack 隐藏 toast。

但我不知道该怎么做。我在 java 中设置了一个视图并添加了 toast 消息。然后我将importantForAccessibility设置为NO,但它不起作用。

我的代码如下。最后,我提到了自定义 TalkBack toast 的堆栈。谢谢你。

imgClick2 = (ImageView)findViewById(R.id.imageView2);
imgClick2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Toast toast = new Toast(MainActivity.this);
    TextView messageView = new TextView(MainActivity.this);
        messageView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
    messageView.setText("visible text");

    toast.setView(messageView);
    toast.show();
    }
});

标签: androidaccessibilitytoasttalkback

解决方案


推荐阅读