Cómo funciona la accesibilidad en GNOME

El Kit de herramientas de accesibilidad (ATK) describe un grupo de interfaces que necesita ser implementado por los componentes IGU para hacerlos accesibles. Los interfaces son conjuntos de herramientas independientes; las implementaciones se pueden escribir para cualquier conjunto de widgets, como GTK, Motif o Qt.

La implementación para los widgets GTK está en un módulo llamado GAIL («GNOME Accessibility Implementation Library», Biblioteca de implementación de accesibilidad de GNOME), cargada dinámicamente, en tiempo de ejecución, por una aplicación GTK. Una vez cargadas, dichas partes de su aplicación que usan widgets estándar GTK tendrán un nivel básico de accesibilidad, sin tener que modificar nada de su aplicación. Si no se carga GAIL, los widgets GTK tendrán una implementación de accesibilidad predeterminada que esencialmente no devuelve ninguna información, aunque nominalmente se ajusta la API de ATK. Las aplicaciones que usan controladores Bonobo, particularmente aquellas fuera del proceso, también cargan códigos para el soporte de accesibilidad desde el módulo libgail-gnome. Que las aplicaciones del escritorio GNOME carguen automáticamente estas bibliotecas de soporte para la accesibilidad depende del valor de una clave de gconf, «/desktop/gnome/interface/accessibility»; un valor booleano cierto activa el soporte para las tecnologías de asistencia y las aplicaciones que llaman a gnome_program_init que cargará automáticamente librerías de accesibilidad en tiempo de carga. Las «aplicaciones GTK puras» por ejemplo, aquellas que usan gtk+ pero no enlazan libgnome, dependen del valor de la variable de entorno GTK_MODULES, las cual debe establecerse a «gail:atk-bridge» para activar el soporte de las tecnologías de asistencia.

La mayoría de las tecnologías de asistencia que funcionan en otros escritorios históricamente han encontrado necesario mantener un modelo complejo fuera de la pantalla de las aplicaciones del escritorio, basada en fisgonear los eventos del S.O., uso de S.O. no soportados y características de la aplicación y API y otras técnicas altamente no portables. Esto ha hecho que el apoyo tecnológico de la ayuda sea un poco frágil y la aplicación específica del S.O., incluso específicos de la aplicación de versiones. Por el contrario, en el escritorio GNOME, toda la información requerida por las TA lo proporcionan las aplicaciones en ejecución, a través del marco de accesibilidad de GNOME, un conjunto de herramientas independientes de la interfaz de proveedor de servicios (SPI). El SPI proporciona medios de TA basados en UNIX, tales como lectores de pantalla y magnificadores de pantalla, para obtener información sobre la accesibilidad de la ejecución de aplicaciones a través de una API consistente y estable, y en muchos casos puede eliminar la necesidad de un modelo fuera de la pantalla. El soporte de accesibilidad para las solicitudes está «incluída» en los kits de herramientas de aplicaciones a través del conjunto del API de herramientas adecuadas (por ejemplo, ATK para la mayoría de las aplicaciones nativas de C y el API de accesibilidad de Java para las aplicaciones Java), y exportados al interfaz común «AT-SPI» a través del correspondiente «bridge» (vea el diagrama abajo).

Figura 1-1Arquitectura de accesibilidad de GNOME

El soporte integrado de accesibilidad de GNOME significa que las aplicaciones creadas utilizando los widgets obtienen soporte para ñas tecnologías de asistencia de forma predeterminada, siempre que los widgets no se utilicen de forma inusual utilizan y entre en conflicto con este soporte integrado.

Un widget de GTK+/GNOME es accesible si su uso sigue las directrices de accesibilidad general en otras partes de este documento, e implementa los interfaces de ATK apropiadamente para su rol en el interfaz del usuario. La implementaciones de ATK se proporcionan para el kit de herramientas de los widgets de GNOME llamado «stock» (ej. GTK+ no obsoleto y los widgets de GNOME), y en muchos casos los widgets nuevos que derivan tribialmente desde los widgets de GTK+ y GNOME existentes que también heredarán el soporte adecuado de accesibilidad.

Aunque el soporte integrado de accesibilidad de GNOME proporciona una funcionalidad significativa, sin cambios de código específicos de accesibilidad en la parte de la aplicación, a menudo las aplicaciones puede mejorar sus descripciones predeterminadas que proporcionan algunos de los «widgets», y adaptarlas para algunos de los widgets específicos de su aplicación, a través de llamadas directas a los métodos de ATK en la aplicación. Por ejemplo, en la mayoría de los casos las solicitudes deben añadir o cambiar las descripciones textuales de los widgets con la llamada de función apropiada de ATK, de forma que una tecnología de asistencia puede describir su finalidad o del estado para el usuario. Para obtener más información consulte las Instrucciones de programación para soporte de accesibilidad.

Si su aplicación usa widgets personalizados, puede que tenga que hacer algún trabajo para exponer las propiedades de los widgets para las tecnologías de asistencia. Para obtener más información, consulte Creación de componentes personalizados accesibles y Ejemplos de uso de la API de accesibilidad.

Para obtener información en mayor profundidad acerca de GTK/GTK+, consulte el Manual de referencia de GTK+, la sección de GTK de la Guía de ATK, la organización para GNOME del Tutorial de GTK+ 2.0 y las P+F de GTK+.