Accesibilidad y WebView de Android
¿Está habilitada la accesibilidad para Android WebView? ¿Alguien puede decir cómo hacer que un WebView sea accesible?
- Inyectar CSS a un sitio con webview en android
- Selección de texto de Webview no borrada
- DownloadListener.onDownloadStart () nunca llamado
- Rendimiento de la vista web de Android a bitmap, html5 javascript, problema de devolución de llamada
- ¿Cómo comprobar si WebView está completamente procesado y listo para funcionar?
- Vista web de Android, inicie la actividad ACTION_VIEW cuando la URL no pueda ser manejada por webview
- Cómo cargar cadena html en una vista web?
- Archivos locales de Android WebView + AJAX
- WebView onPageFinished se está llamando cuando el error Página no disponible. ¿Solución?
- Cargar archivo local y obtener Error cromo desconocido: -6
- La vista web de Android se aplica demasiado lentamente.
- OnRecivedError no muestra la página de error personalizada
- Webview guardar el problema de rotación de contraseña
La accesibilidad a la web de Android está habilitada mediante la inyección de javascript en Honeycomb y superior (como lo señala alanv ). El usuario debe habilitarlo mediante:
- Activación del modo de accesibilidad, incluido 'Explore by Touch' en 4.0+.
- Habilitación de "Accesibilidad web mejorada" o, en dispositivos antiguos, "Inyectar secuencias de comandos Web".
Esto funciona inyectando javascript en cada página cargada mediante etiquetas <script>
. Tenga en cuenta que tendrá que tener cuidado, ya que no todo el contenido jugará bien con este javascript, y la inyección fallará en algunos casos de borde.
Puede ampliar la clase WebView para implementar métodos API de accesibilidad.
http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views
También me encontré con este problema en los dispositivos 4.0. Terminé colocando un TextView encima del WebView, haciendo el fondo de TextView y el texto transparente. El contenido de texto de TextView se establece en el contenido de WebView con todas las etiquetas HTML eliminadas.
Una solución muy poco elegante, lo sé, pero bueno, funciona ….
No, el WebView
no es accesible desde el servicio TalkBack incorporado, al menos desde Android versión 4.0. En su lugar, los usuarios ciegos reciben instrucciones de usar algo como Mobile Accessibility for Android , que proporciona una interfaz de navegación hablada. Sugiero que su contenido esté disponible para otros procesos, permitiendo a los usuarios ciegos ver el contenido en su navegador de su elección. Hice esto iniciando una intención de ver el contenido:
public static void loadUrlInBrowser(Context c, Uri uri) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(uri, "text/html"); c.startActivity(i); }
Como alternativa, puede configurar la descripción de contenido de WebView. Tenga en cuenta que esto sólo parece funcionar en las versiones pre 4.0 de android. He encontrado que los dispositivos 4.0 mantener o decir WebView o nada en absoluto.
Sé cómo acceder al contenido de la vista web por Accessibility API, cuando AccessibilityNodeInfo.getText () es nulo o "null", llame a AccessibilityNodeInfo.getContentDescription ().
Código simple:
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 () puede obtener el contenido de la vista web.
disculpa mi pobre ingles.
- Uso de giroscopio Android en lugar de acelerómetro. Encontré un montón de fragmentos, pero no hay código completo
- No se puede depurar la aplicación android en Intellij: "Advertencia: la información de depuración puede no estar disponible."