¿Está habilitada la accesibilidad para Android WebView? ¿Alguien puede decir cómo hacer que un WebView sea accesible?Accesibilidad y Android WebView
Respuesta
La vista web accesibilidad de Android se activa a través de JavaScript inyección en nido de abeja y por encima (como pointed out by alanv). El usuario debe habilitarlo:
- activa el modo de accesibilidad, incluyendo 'Exploración táctil' en 4.0+.
- Activando 'Accesibilidad web mejorada' o, en dispositivos más antiguos, 'Inyectar scripts web'.
Esto funciona mediante la inyección de javascript en cada página cargada a través de etiquetas <script>
. Tenga en cuenta que deberá tener cuidado, ya que no todo el contenido funcionará bien con este javascript, y la inyección fallará en algunos casos extremos.
Puede extender la clase WebView para implementar métodos de API de accesibilidad.
http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views
No, el WebView
no es accesible desde el servicio integrado de TalkBack, al menos a partir de la versión Android 4.0. En cambio, los usuarios ciegos son instructed to use algo así como Mobile Accessibility for Android, que proporciona una interfaz de navegación hablada. Sugeriría que su contenido esté disponible para otros procesos, permitiendo a los usuarios ciegos ver el contenido en el navegador que prefieran. Hice esto al iniciar la 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, se puede establecer la descripción del contenido de la vista Web. Tenga en cuenta que esto solo parece funcionar en versiones anteriores a 4.0 de Android. Descubrí que los dispositivos 4.0 mantienen say WebView o nada en absoluto.
También encontré este problema en los dispositivos 4.0. Terminé colocando un TextView en la parte superior de WebView, haciendo que el fondo y el texto de TextView sean transparentes. El contenido de texto de TextView se establece en el contenido de WebView con todas las etiquetas HTML eliminadas.
Una solución más poco elegante, lo sé, pero bueno funciona ....
Sé cómo acceder al contenido de la vista web mediante la API de accesibilidad, cuando AccessibilityNodeInfo.getText() es nulo o "nulo", 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 página we.
lo siento por mi inglés pobre.
- 1. Android. WebView y loadData
- 2. WebView y cookies en Android
- 3. ANDROID: compartir sesión entre Webview y httpclient
- 4. Javascript y accesibilidad
- 5. Pragmatismo y accesibilidad
- 6. Android: PhoneGap vs Webview
- 7. Android WebView Protocol Handler
- 8. Android WebView removeCookie
- 9. Android WebView Javascript getSelection
- 10. Android WebView onReceivedError()
- 11. Android WebView rendimiento
- 12. Android Webview POST
- 13. Android webView saveState
- 14. Android WebView TimeOut
- 15. Android: WebView ActionBar (Honeycomb)?
- 16. Android Webview navegación privada
- 17. Android webview & localStorage
- 18. Servicio de accesibilidad de Android detectar notificación
- 19. Html Audio en Android Webview
- 20. Android WebView 302 Redirect - Honeycomb
- 21. Android singleTap/OnClick en WebView
- 22. Android WebView no carga jQuery
- 23. Android WebView contacto evento enlace
- 24. Android: Muestra imágenes en Webview
- 25. Android WebView desplácese hacia abajo
- 26. Android WebView canGoBack siempre verdadero
- 27. Menú contextual en Android WebView
- 28. android webview contenido no seleccionable
- 29. WebView con un android IFRAME
- 30. Android WebView color de fondo
WebView es accesible desde el teclado en Honeycomb y superior habilitando Configuraciones> Accesibilidad> Inyectar scripts web. En Jelly Bean y superior, WebView es accesible por teclado (y táctil explorable cuando JS está habilitado) al habilitar Configuración> Accesibilidad> Mejorar accesibilidad web. – alanv