Nota: a partir de NVDA 2019.3, Java Access Bridge va incluido en el propio lector de pantalla, por lo que los procedimientos descritos en esta entrada ya no son necesarios. Tampoco es obligatorio instalar Java para 32 bits ni limitarse a la versión 8.
En esta entrada vamos a hablar de la integración entre NVDA y las aplicaciones Java, y cómo administrar Java Access Bridge, la librería de accesibilidad ofrecida para este propósito.

¿Qué es Java Access Bridge?

Java Access Bridge es una librería de accesibilidad que permite que las tecnologías de asistencia, incluyendo lectores de pantalla, puedan comunicarse con las aplicaciones Java que disponen de interfaz gráfica hecha con el motor de interfaces Swing. Esta librería no es necesaria para aplicaciones que utilizan la línea de órdenes (consola), y aplicaciones que usan otros motores gráficos con controles nativos del sistema (motor SWT, Eclipse).

Java Access Bridge debe habilitarse en el sistema para que los lectores de pantalla puedan acceder a las aplicaciones Java mencionadas anteriormente. Si no está habilitado, estas aplicaciones se mostrarán inaccesibles. Algunos programas que lo necesitan para ser compatibles con tecnologías de asistencia son:

  • Open Office y Libre Office, aunque en sus últimas versiones ya están eliminando este requisito
  • Android Studio
  • IBM SPSS
  • Entorno de desarrollo para Arduino
  • JDownloader, el popular gestor de descargas
  • Aplicaciones Java integradas en el navegador
  • El propio panel de control de Java
  • Autofirma
  • Y muchos otros programas que no se mencionan aquí

Nota: el hecho de que Java Access Bridge esté activado no implica necesariamente que todas las aplicaciones Java sean accesibles. Es responsabilidad del desarrollador programar los controles de forma adecuada. En la mayoría de controles estándar, basta con etiquetarlos de forma correcta.

Instalación

Hasta hace un tiempo, instalar Java Access Bridge siempre ha sido una operación complicada, en la que se veían involucradas una descarga con archivos extra, la línea de órdenes y la copia de archivos a los lugares adecuados. Con la llegada de Java 7 y Windows 7, el procedimiento se ha simplificado muchísimo, y es el que documentamos a continuación.

Descarga del entorno de ejecución de Java (JRE)

El entorno de ejecución de Java es lo primero que debemos obtener. Sin él, ningún programa basado en Java funcionará. Se puede descargar de dos sitios oficiales distintos: la web de java.com, y la página de descargas de Oracle. Otras instalaciones silentes, como la realizada por el portal ninite.com, no son válidas. Visita una u otra dependiendo de lo que necesites descargar. Si tienes un sistema de 64 bits, es muy importante que descargues el entorno de 32 bits para que funcione con NVDA. Lo ideal es instalar ambos entornos: el de 32 bits para activar las funciones de accesibilidad e integrar complementos en los navegadores web de 32 bits, y el de 64 bits para garantizar un rendimiento máximo y el funcionamiento con otros lectores de pantalla, como Jaws for Windows. Una vez descargados, instálalos en el orden que prefieras.

Activación de Java Access Bridge

Para activar Java Access Bridge, debes ir al centro de accesibilidad en el panel de control. En la vista por categorías, se encuentra bajo Accesibilidad. Si tienes Windows 8 o posterior, no uses la aplicación de configuración. Java Access Bridge sólo está disponible en el panel de control.

Una vez en el centro de accesibilidad, pulsa un enlace llamado «Facilitar uso del equipo».

Busca la casilla «Activar Java Access Bridge» y márcala. A continuación, pulsa aceptar y cierra el centro de accesibilidad.

Para acabar, comprueba que todo funciona. En el panel de control, busca la opción Java. Cambia la vista a Iconos grandes o iconos pequeños, en la vista por categoría te puede costar más encontrarlo.

Si al abrir el panel de control de Java NVDA detecta la pestaña General, ¡enhorabuena, ya has terminado! De no ser así, reinicia NVDA y prueba de nuevo.

Consideraciones al actualizar el entorno de ejecución de Java

De vez en cuando, Java nos avisará de que hay una nueva versión. En estos casos siempre se recomienda actualizar, ya que seguramente habrá algún fallo de seguridad solucionado o mejoras en el rendimiento y la estabilidad. Sin embargo, si usas NVDA, ¡cuidado! Hay algo que debes hacer antes.

Cuando NVDA se inicia, busca la librería Java Access Bridge en el sistema y la carga. El problema es que la mantiene siempre cargada, aunque ninguna aplicación Java esté abierta. El instalador de Java no tiene esto en cuenta. Al actualizar, ve que no puede sobreescribir el archivo dll de la librería, programa su actualización para el siguiente reinicio… y siempre sale algo mal porque NVDA interfiere, haciendo que la dll desaparezca y nos quedemos sin soporte para aplicaciones Java irremediablemente.

Al actualizar el entorno Java para 64 bits no hay ningún problema (salvo que debes hacerlo a mano). Sin embargo, cuando actualices el entorno de 32 bits, toma las siguientes precauciones:

Haz copia de seguridad de la librería

Navega al directorio C:\windows\system32 en sistemas de 32 bits, o a C:\windows\SysWOW64 en sistemas de 64 bits. Busca el archivo windowsAccessBridge-32.dll, y cópialo a cualquier parte de tu disco duro. Si algo sale mal, puedes restaurarlo después y continuar con tus tareas como siempre.

Haz que NVDA libere la librería antes de actualizar Java

Mucha gente podría tomar la sabia decisión de cerrar NVDA para actualizar Java. Por desgracia, si es el único lector de pantalla que tenemos, esa no es una opción válida. Hay que desactivar aquellas partes de NVDA que van a causar problemas, y activarlas más adelante. El hecho de que NVDA sea tan modular, permite hacerlo con facilidad.

Para desactivar el soporte para Java Access Bridge, haz lo siguiente:

  • Pulsa NVDA+ctrl+z para abrir la consola Python de NVDA. También puedes abrirla desde el submenú herramientas del menú de NVDA.
  • Escribe las siguientes líneas:

    import JABHandler
    JABHandler.terminate()

  • Actualiza el entorno de Java para 32 bits con normalidad.
  • Reactiva el soporte para Java Access Bridge. Puedes hacerlo reiniciando NVDA directamente, o escribiendo las siguientes líneas en la consola:

    reload(JABHandler)
    JABHandler.initialize()

¿Qué pasa con Java 9?

Actualmente, mientras escribimos esta entrada, la versión recomendada de Java es la 8. Sin embargo, ya se ha liberado el entorno de ejecución de Java 9, con muchísimas ventajas y mejoras. Por desgracia, sólo es compatible con sistemas de 64 bits. No hay ningún entorno de Java 9 para 32 bits, por lo que NVDA no funciona con Java Access Bridge. Habrá que esperar a que NVAccess y Oracle pongan soluciones a este contratiempo. Mientras tanto, no queda más remedio que continuar en Java 8.

¿Tienes dudas o quieres aportar algo nuevo no documentado en esta guía? No lo pienses dos veces, escribe un comentario más abajo. ¡Estaremos encantados de actualizar esta entrada con nueva información!

Autor: José Manuel Delicado Alcolea

Ingeniero de software y máster en Ingeniería Informática por la Universidad Rey Juan Carlos. Me encanta todo lo relacionado con la informática, la accesibilidad y las nuevas tecnologías. Trabajo como consultor de accesibilidad.

2 opiniones en “NVDA con Java Access Bridge: instalación y cosas a tener en cuenta”

    1. Hola.
      ¿Tienes varias versiones de Java en tu sistema? Por ejemplo, java 8 update 140 y update 151, o Java 7. Es importante en esos casos desinstalar todo, empezar de 0 e instalar sólo los 2 entornos más recientes.
      En cuanto a JDownloader, asegúrate de que el instalador que te descargas viene sin JRE para que use el del sistema. Cualquier entorno integrado en un software, aunque no debería ocurrir, puede dar problemas. Si puedes descargar un zip en vez del instalador, mejor. También puedes probar a bajar la versión para Linux. Java es multiplataforma, de tal forma que el archivo jDownloader.jar debería ejecutarse en todas partes.
      Si vas a desinstalar Java, utiliza la consola Python para descargar la librería, igual que si fueras a actualizar.
      Un saludo.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.