相关疑难解决方法(0)

发送未链接到视图的辅助功能事件

我们希望发送一个无法链接到视图的辅助功能事件(将由TalkBack等提取).

例如,当AsyncTask完成时,我怎么能发送一个辅助功能事件(例如说"数据下载"的对话)?

android accessibility android-a11y

5
推荐指数
2
解决办法
6833
查看次数

Android如何在显示RelativeLayout时获取talkBack读取文本

我有一个活动,它使用以下代码为整个活动的视图添加自定义视图

activity.getWindow().getDecorView()).addView(newView)
Run Code Online (Sandbox Code Playgroud)

为了显示教练标记/使用标记的屏幕.

我的自定义视图从RelativeLayout扩展而来,在其构造函数中,在屏幕底部添加了一个按钮,当单击该按钮时,将取消视图.

我已经覆盖了"dispatchDraw"方法,以便我可以在特定位置的布局中添加多个coachmark UI对象(textview和bitmaps).这些coachmark对象使用如下代码在视图上绘制自己

        canvas.save();
        canvas.translate(positioning[0], positioning[1]);
        textView.draw(canvas);
        canvas.restore();

        canvas.save();
        canvas.drawBitmap(bitmap, positioning[2], positioning[3], new Paint());
        canvas.restore();
Run Code Online (Sandbox Code Playgroud)

ISSUE:启用TalkBack时

  • 当显示此教练标记视图时,此视图不会大声读出任何内容
  • 如果用户按下文本视图和位图的位置,则不会大声读出任何内容

然而,当用户按下按钮时,按钮的内容描述被大声读出.

我假设textViews和Bitmaps未被读出的原因是由于我们上面的代码在画布上呈现它们的方式.

问题1:当点击textview和位图时,有没有办法让TalkBack大声说出什么? - 我已经尝试设置contentDescriptions并可以专注于textviews和位图,但这没有任何区别.

问题2:另一种方法是让TalkBack在显示自定义视图时读出内容,并且此文本可以汇总屏幕中显示的所有主题标记.我无法解决如何做到这一点,有没有人有任何建议? - 我已经尝试将我的customView设置为可聚焦(setFocasable(true)并给它一个contentDescription但这不起作用. - 我已经尝试在绘制自定义视图时发起操作,然后向事件添加内容描述但是这个也不起作用,即

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
}

@Override
public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info) {
    super.onInitializeAccessibilityNodeInfo(info);
    // this is not read out load when the view is displayed, but is read when the view is pressed
    info.setContentDescription("on Initialize Accessibility Node Info User Tips");
}
Run Code Online (Sandbox Code Playgroud)

android bitmap custom-view relativelayout talkback

3
推荐指数
1
解决办法
5452
查看次数