辅助功能和Android的WebView(Accessibility and Android Web

2019-07-29 11:03发布

是Android的WebView启用辅助功能? 谁能告诉如何制作的WebView访问?

Answer 1:

Android的web视图无障碍经由启动Javascript注射在蜂窝和上述(如通过指出alanv )。 用户必须通过启用它:

  • 打开辅助模式,包括在4.0以上版本的“触摸浏览”。
  • 启用“增强网页辅助功能”,或者,旧设备,“注入的Web脚本”。

这是通过注入javascript改成通过每个页面加载<script>标记。 请注意,您必须要小心,因为不是所有的内容将起到很好的与此JavaScript和注入将在一些边缘情况会失败。



Answer 2:

您可以扩展的WebView类来实现辅助功能的API方法。

http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views



Answer 3:

我也遇到了这个问题,在4.0的设备。 最后我把一个TextView上的WebView的顶部,使得TextView的背景和文本透明。 TextView的文本内容被设定的WebView的剥去了所有的HTML标签的内容。

一个最不雅的解决方案,我知道,但嘿工程....



Answer 4:

不, WebView不能从内置对讲服务访问,至少Android版本4.0。 相反,盲目用户指示使用类似移动访问为Android ,它提供了一个口头浏览界面。 我建议让您的内容提供给其他进程,使盲人用户可以查看在自己选择的浏览器中的内容。 我这样做是通过开始的意图来查看内容:

public static void loadUrlInBrowser(Context c, Uri uri) {
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(uri, "text/html");
    c.startActivity(i);
}

或者,你可以设置的WebView的内容描述。 请注意,这似乎只在前期4.0 Android版本的工作。 我发现,4.0的设备保持要么说的WebView还是什么都没有。



Answer 5:

我知道如何访问辅助功能API Web视图内容,当AccessibilityNodeInfo.getText()为空或“空”,称AccessibilityNodeInfo.getContentDescription()。

简单的代码:

private String getTextOrDescription(AccessibilityNodeInfo info) {
    String text = String.valueOf(info.getText());

    if (isEmptyOrNullString(text)) {
        text = String.valueOf(info.getContentDescription());
    }
    return text;
}

private boolean isEmptyOrNullString(String text) {
    if (TextUtils.isEmpty(text) || text.equalsIgnoreCase("null")) {
        return true;
    }
    return false;
}

getContentDescription()可以得到网页视图内容。

对不起,我英文不好。



文章来源: Accessibility and Android WebView