我正在尝试在contentDescription上设置TextView,但TalkBack似乎没有宣布它。 “话语提示”仅表达文字内容。

textView.setText("2d 9h left");
textView.setContentDescription("2days 9hours left");


上面的第二行无效。话语提示说:“还剩2d 9h”。

我也尝试了以下方法:

    ViewCompat.setAccessibilityDelegate(textView, new AccessibilityDelegateCompat()
    {
        @Override
        public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event)
        {
            super.onPopulateAccessibilityEvent(host, event);
            event.getText().add(host.getContentDescription());
        }
    });


但这会导致“话语提示”宣布“还剩2天9小时,还剩2d 9h”,这也是不正确的。

最佳答案

据我所知,contentDescription仅适用于必须进行文字描述的视图。例如,一个ImageView可能具有一个contentDescription,可访问性对讲功能可以通过该TextView知道触摸时该视图元素的内容。

我是从this link引用的。


  内容描述属性将文本描述链接到
  控件,ImageView或其他没有对象的可聚焦对象
  文字内容。


因此,对讲功能应仅对ImageView中编写的文本进行发声。

对于您的情况,您可以考虑采用解决方法。获取一个contentDescription并将其设置为ImageViewTextView的大小应与TextView相同,并应放在ImageView上。因此,单击contentDescription时,您可以听到程序中指定的所需ImageViewinvisible可以具有透明背景,也可以放在中。希望有帮助!

09-11 17:14