# NonVisual Desktop Access

NonVisual Desktop Access (NVDA) es un lector de pantalla portátil gratuito, de código abierto para Microsoft Windows. El proyecto fue iniciado por Michael Curran en 2006.
NVDA está programado en Python. Actualmente funciona exclusivamente con APIs de accesibilidad como UI Automation, Microsoft Active Accessibility, IAccessible2 y Java Access Bridge, en lugar de utilizar controladores de video especializados para "interceptar" e interpretar información visual. Está licenciado bajo la GNU General Public License versión 2.

## Historia

Preocupado por el alto costo de los lectores de pantalla comerciales, en abril de 2006, Michael Curran comenzó a escribir un lector de pantalla basado en Python con Microsoft SAPI como su motor de voz. Proporcionó soporte para Microsoft Windows 2000 en adelante, y proporcionó capacidades de lectura de pantalla como soporte básico para algún software de terceros y navegación web. A fines de 2006, Curran nombró su proyecto Nonvisual Desktop Access (NVDA) y lanzó la versión 0.5 al año siguiente. A lo largo de 2008 y 2009, aparecieron varias versiones de 0.6, con navegación web mejorada, soporte para más programas, salida de pantalla braille y soporte mejorado para más idiomas. Para gestionar el desarrollo continuo de NVDA, Curran, junto con James Teh, fundó el acceso NV en 2007.
Las características y popularidad de NVDA continuaron creciendo. El año 2009 fue compatible con las versiones de Windows de 64 bits, así como una mayor estabilidad del programa en 2010. La reestructuración de códigos importantes para admitir módulos de terceros, junto con el soporte básico para Windows 8, estuvo disponible en 2011. A lo largo de 2012, NVDA obtuvo un soporte mejorado Windows 8, la capacidad de realizar actualizaciones automáticas, incluyó el administrador de complementos para administrar complementos de terceros, obtuvo un soporte mejorado para ingresar texto del este asiático e introdujo soporte de pantalla táctil, el primero de su tipo para lectores de pantalla de terceros para Windows. NVDA obtuvo soporte para Microsoft PowerPoint en 2013 y se actualizó en 2014 para admitir PowerPoint 2013; NVDA también agregó soporte WAI-ARIA mejorado ese mismo año. También en 2013, NV Access introdujo un método reestructurado para revisar el texto de la pantalla e introdujo una instalación para administrar perfiles para aplicaciones, así como mejorar el acceso a Microsoft Office y otras suites de oficina en 2014.
La accesibilidad de las fórmulas matemáticas puede ser un problema para las personas ciegas y con discapacidad visual. En 2015, NVDA obtuvo soporte para MathML a través de MathPlayer, junto con soporte mejorado para Mintty, el cliente de escritorio para Skype y gráficos en Microsoft Excel, y la capacidad de reducir el audio de fondo se introdujo en 2016. También en 2015, NVDA se convirtió en uno de los primeros lectores de pantalla en admitir Windows 10 y agregó soporte para Microsoft Edge en una capacidad experimental.
En 2019, NVDA se convirtió en el lector de pantalla más popular en uso en todo el mundo. En 2013, Michael Curran y James Teh presentaron una charla sobre NVDA en TEDx Brisbane. NVDA está cambiando la vida de las personas ciegas y con discapacidad visual en todo el mundo. Es especialmente popular en los países en desarrollo, ya que su descarga y uso gratuitos lo hacen accesible para muchas personas ciegas y con discapacidad visual que de otro modo no tendrían acceso a Internet.
NVDA se puede utilizar con software basado en esteganografía para proporcionar una descripción textual de las imágenes.

## Características y compatibilidad con API de accesibilidad

NVDA usa eSpeak como su sintetizador de voz integrado. También es compatible con el sintetizador de plataforma Microsoft Speech, ETI Eloquence y también es compatible con los sintetizadores SAPI. La salida a pantallas braille se admite oficialmente desde la versión 0.6p3 en adelante.
Además de la funcionalidad general de Windows, NVDA funciona con software como aplicaciones de Microsoft Office, WordPad, Notepad, Windows Media Player, navegadores web como Mozilla Firefox, Google Chrome, Internet Explorer y Microsoft Edge. Es compatible con la mayoría de los clientes de correo electrónico como Outlook, Mozilla Thunderbird y Outlook Express. NVDA también funciona con la mayoría de las funciones de Microsoft Word, Microsoft PowerPoint y Microsoft Excel. Las suites de oficina gratuitas LibreOffice y OpenOffice.org son compatibles con el paquete Java Access Bridge.
Desde principios de 2009, NVDA admite el estándar WAIARIA para aplicaciones de Internet enriquecidas accesibles, para facilitar una mejor accesibilidad de las aplicaciones web para usuarios ciegos.
En 2019, la encuesta de usuarios de lectores de pantalla realizada por WebAIM descubrió que NVDA era el lector de pantalla más popular en todo el mundo, desplazando a JAWS por primera vez; El 40,6% de los participantes de la encuesta lo utilizó como lector de pantalla principal, mientras que el 72,4% de los participantes lo utilizó con frecuencia. Los lectores de pantalla se pueden usar para probar la accesibilidad de software y sitios web. NVDA es el principal lector de pantalla elegido por los profesionales de accesibilidad.

## Características técnicas

NVDA está organizado en varios subsistemas, que incluyen el bucle central, el administrador de complementos, los módulos de la aplicación, el controlador de eventos y los controladores de entrada y salida, junto con módulos para admitir API de accesibilidad como Microsoft Active Accessibility. NvDA también presenta varias interfaces gráficas de usuario propias con tecnología de wxPython, como varios diálogos de preferencias y diálogos de configuración y administración de actualizaciones.
NVDA utiliza objetos para representar elementos en una aplicación, como barras de menú, barras de estado y varias ventanas de primer plano. NVDA recopila diversa información sobre un objeto, como su nombre, valor y coordenadas de pantalla, a través de las API de accesibilidad expuestas por un objeto, como a través de UIA (User Interface Automation). La información recopilada se pasa a través de varios subsistemas, como el controlador de voz y se presenta al usuario en voz, braille y en la ventana en pantalla. NVDA también proporciona instalaciones para manejar eventos como pulsaciones de teclas, cambios de nombre y cuando una aplicación gana o pierde el foco.
NVDA proporciona facilidades para examinar la jerarquía de objetos de una aplicación e implementar formas de mejorar la accesibilidad de un programa. Proporciona comandos dedicados para moverse a través de la jerarquía de objetos dentro de una aplicación, así como una consola interactiva de Python para realizar la manipulación del foco, monitorear objetos para eventos y probar código para mejorar la accesibilidad de una aplicación que se empaquetará en un módulo de aplicación.

## Modelo de desarrollo

De 2006 a 2013, el código fuente de NVDA se administró a través de Bazaar, con NV Access cambiando a Git en 2013, citando el progreso del desarrollo con Bazaar. Los desarrolladores también aprovecharon la oportunidad para modificar el cronograma de lanzamientos a intervalos regulares para evitar retrasos en las publicaciones oficiales y hacer que el marco de tiempo de lanzamiento sea predecible.
Además de los lanzamientos oficiales, las compilaciones de instantáneas nocturnas también están disponibles para pruebas. Similar al proceso de publicación del núcleo Linux, las instantáneas de NVDA están disponibles en las ramas beta y alfa, con ramas temáticas especiales creadas de vez en cuando. NV Access describe la rama beta como una oportunidad para que los usuarios obtengan acceso temprano a nuevas funciones, la rama alfa como código de última generación para una posible inclusión en la próxima versión, y ramas temáticas para desarrollar una función principal o prepararse para el lanzamiento oficial (rc rama). Algunos desarrolladores de terceros también mantienen sucursales específicas, incluidas las versiones específicas de NVDA de idioma o para ofrecer una vista previa pública de una característica en desarrollo activo.
Los principales desarrolladores actuales son Michael "Mick" Curran y Reef Turner con contribuciones de código y traducción de usuarios y otros desarrolladores de todo el mundo.