Доступна ли доступность для Android WebView? Может ли кто-нибудь сказать, как сделать WebView доступным?
Доступность и Android WebView
Ответ 1
Доступность веб-просмотров Android включена с помощью javascript-инъекции в Honeycomb и выше (как указанной alanv). Пользователь должен включить его:
- Включение режима доступности, в том числе "Исследуйте прикосновением" в 4.0 +.
- Включение "Расширенная доступность в Интернете" или на старых устройствах "Ввод веб-скриптов".
Это работает, вставляя javascript на каждый загруженный страницы с помощью тегов <script>
. Обратите внимание, что вам нужно быть осторожным, так как не все содержимое будет хорошо работать с этим javascript, и инъекция не будет работать в некоторых случаях.
Ответ 2
Вы можете расширить класс WebView для реализации API Accessibility API.
http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views
Ответ 3
Я также столкнулся с этой проблемой на 4.0 устройствах. Я закончил размещение TextView поверх WebView, делая текст и текст TextView прозрачным. Текстовое содержимое TextView, установленное для содержимого WebView, удалено из всех HTML-тегов.
Самое неудобное решение, я знаю, но эй это работает....
Ответ 4
Нет, WebView
недоступен из встроенной службы TalkBack, по крайней мере, с версии 4.0 для Android. Вместо этого слепые пользователи поручили использовать что-то вроде Мобильная доступность для 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. Обратите внимание, что это, похоже, работает только в версиях Android версии 4.0. Я обнаружил, что 4.0-устройства не поддерживают сказать WebView или вообще ничего.
Ответ 5
Я знаю, как получить доступ к содержимому веб-представления по API Accessibility, когда AccessibilityNodeInfo.getText() имеет значение null или "null", вызовите 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() может получить содержимое веб-представления.
извините за мой плохой английский.