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.

The implementation for the GTK widgets is done via the GtkAccessible class. It is the base class for accessible implementations for GtkWidget subclasses. It is a thin wrapper around AtkObject, which adds facilities for associating a widget with its accessible object. Those parts of your application that use standard GTK widgets will have a basic level of accessibility, without you having to modify your application at all.

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).

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.

For additional, in-depth information regarding GTK/GTK+, see the GTK+ Reference Manual, the outdated GTK+ 2.0 Tutorial and the official GTK+ FAQ.