Accesibilidad y WebView de Android

¿Está habilitada la accesibilidad para Android WebView? ¿Alguien puede decir cómo hacer que un WebView sea accesible?

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.

  • Webview no admite la caja flexible en Android Jellybean
  • android - obtener texto fuera de la vista web
  • ¿WebView saveState () preserva variables / entorno de JavaScript?
  • No se puede cargar el archivo HTML local en Android WebView
  • WebView causando TypeError no capturado al cargar www.google.com
  • ¿Cómo puedo cambiar CONTENT-TYPE de WebView # PostUrl ()?
  • Enlaces internos básicos no funcionan en la aplicación de nido de abeja?
  • Webview no desplazamiento después de agregar setOnTouchListener
  • Cómo enviar texto a través de formularios mediante JSoup
  • Android WebView dentro de ScrollView solo desplaza scrollview
  • ERROR / Web Console: Uncaught TypeError: No se puede llamar al método 'getItem' de null en http://m.youtube.com/:844
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.