Microsoft Active Accessibility ( MSAA ) es una interfaz de programación de aplicaciones (API) para la accesibilidad de la interfaz de usuario. MSAA se introdujo como un complemento de plataforma para Microsoft Windows 95 en 1997. MSAA está diseñada para ayudar a los productos de tecnología de asistencia (TA) a interactuar con los elementos de la interfaz de usuario (UI) estándar y personalizados de una aplicación (o del sistema operativo), así como para acceder, identificar y manipular los elementos de la UI de una aplicación. Los productos de TA funcionan con aplicaciones habilitadas para MSAA para proporcionar un mejor acceso a las personas con dificultades, deficiencias o discapacidades físicas o cognitivas. Algunos ejemplos de productos de TA son los lectores de pantalla para usuarios con visión limitada, los teclados en pantalla para usuarios con acceso físico limitado o los narradores para usuarios con audición limitada. MSAA también se puede utilizar para herramientas de pruebas automatizadas y aplicaciones de capacitación basadas en computadora.
La especificación actual y más reciente de MSAA se encuentra en la Especificación de Promesas de la Comunidad de Automatización de la Interfaz de Usuario de Microsoft .
Historia
La accesibilidad activa se conocía inicialmente como accesibilidad OLE [ 1 ] y este origen se refleja en la denominación de sus componentes binarios, como oleacc.dllel archivo de cabecera oleacc.hque contiene definiciones y declaraciones. Como parte de la campaña de Microsoft para la marca ActiveX en marzo de 1996, la accesibilidad OLE pasó a llamarse accesibilidad ActiveX (a veces denominada AXA) y se presentó como tal en la Conferencia de Desarrolladores Profesionales de Microsoft en San Francisco, en marzo de 1996. Posteriormente, la marca ActiveX se reservó para tecnologías específicas de Internet, y la accesibilidad ActiveX pasó a llamarse accesibilidad activa y, frecuentemente, se abreviaba como MSAA.
MSAA se lanzó originalmente en abril de 1997 como parte del Kit de desarrollo de software (SDK) de accesibilidad activa de Microsoft, versión 1.0. El SDK incluía documentación, bibliotecas de programación, código fuente de ejemplo y un Kit de redistribución (RDK) para que los proveedores de tecnología accesible lo incluyeran en sus productos. El RDK incluía componentes actualizados del sistema operativo para Microsoft Windows 95. Desde Windows 98 y Windows NT 4.0 Service Pack 4, MSAA se ha integrado en todas las versiones de la plataforma Windows y ha recibido actualizaciones y parches periódicos a lo largo del tiempo.
Históricamente, la exposición programática para aplicaciones de tecnología de asistencia en Windows se ha proporcionado a través de MSAA. Sin embargo, las aplicaciones más recientes ahora utilizan Microsoft UI Automation (UIA), que se introdujo en Windows Vista y .NET Framework 3.0 .
Historial de versiones
Se han publicado las siguientes versiones de Accesibilidad Activa: [ 2 ]
Motivación y objetivos
El factor que motivó el desarrollo de MSAA fue permitir un mecanismo de comunicación disponible y sin interrupciones entre el sistema operativo o las aplicaciones subyacentes y los productos de tecnología de asistencia.
El objetivo programático de MSAA es permitir que los controles de Windows muestren información básica, como el nombre, la ubicación en la pantalla o el tipo de control, e información de estado, como la visibilidad, si está habilitado o seleccionado.
Descripción general técnica
MSAA se basa en el Modelo de Objetos Componentes (COM). COM define un mecanismo para que las aplicaciones y los sistemas operativos se comuniquen.
La figura 1 muestra una arquitectura de alto nivel de MSAA.
En MSAA, las aplicaciones (por ejemplo, los procesadores de texto) se denominan servidores porque proporcionan información sobre sus interfaces de usuario (UI). Las herramientas de accesibilidad (por ejemplo, los lectores de pantalla) se denominan clientes en MSAA porque consumen e interactúan con la información de la interfaz de usuario de una aplicación.
El componente del sistema del marco MSAA, Oleacc.dll, facilita la comunicación entre las herramientas de accesibilidad (clientes) y las aplicaciones (servidores). El límite de código indica los límites programáticos entre las aplicaciones que proporcionan información de accesibilidad de la interfaz de usuario y las herramientas de accesibilidad que interactúan con la interfaz de usuario en nombre de los usuarios. El límite también puede ser un límite de proceso cuando los clientes MSAA tienen su propio proceso.

La interfaz de usuario se representa como una jerarquía de objetos accesibles; los cambios y las acciones se representan como eventos de Windows (WinEvents).
Objetos accesibles
El objeto accesible es la interfaz central de MSAA y está representado por una interfaz COM IAccessible y un identificador ChildId entero . Permite a las aplicaciones exponer una estructura de árbol que representa la estructura de la interfaz de usuario. Cada elemento de este árbol expone un conjunto de propiedades y métodos que permiten manipular el elemento correspondiente de la interfaz de usuario. Los clientes de MSAA pueden acceder a la información programática de la interfaz de usuario mediante una API estándar.
Roles, nombres, valores, estados
MSAA comunica información enviando pequeños fragmentos de información sobre los elementos de un programa al objeto de tecnología de asistencia (TA). Las cuatro piezas de información críticas en las que se basa el TA para ayudar a los usuarios a interactuar con las aplicaciones son el rol, el nombre, el valor y el estado de un elemento:
- Rol : Transmite a los usuarios a través de AT qué tipo de objeto es un control, como un botón o una tabla. El método IAccessible para esto es get_accRole .
- Nombre : Proporciona una etiqueta para un elemento, como Siguiente en un botón que lleva a los usuarios a la página siguiente, o Nombre para un cuadro de edición. El método IAccessible para esto es get_accName .
- Valor : Proporciona el valor del objeto especificado, como el valor de una barra deslizante o la información de un cuadro de texto editable. No todos los objetos tienen un valor. El método IAccessible para esto es get_accValue .
- Estado : Identifica la condición actual del control, como por ejemplo, si está marcado en el caso de una casilla de verificación. El estado indica si un control se puede seleccionar, enfocar o modificar de otra manera. El método IAccessible para esto es get_accState .
Microsoft proporciona una lista completa de controles y sus funciones. [ 3 ]
Role
La información sobre los roles se basa en el tipo de control de interfaz de usuario con el que el desarrollador desea interactuar. Por ejemplo, si un desarrollador está implementando un botón que se puede pulsar, seleccionará "Botón" como el rol a implementar. La siguiente tabla muestra una lista de ejemplos de roles MSAA y sus descripciones correspondientes.
Nombre
El desarrollador asigna los nombres de los elementos de una aplicación mediante código. Muchos objetos, como iconos, menús, casillas de verificación, cuadros combinados y otros controles, tienen etiquetas que se muestran a los usuarios. Cualquier etiqueta que se muestre a los usuarios en un control (por ejemplo, un botón) se utiliza como nombre predeterminado del objeto. Asegúrese de que el nombre del objeto sea comprensible para el usuario y describa el control correctamente. La propiedad Nombre no debe incluir información sobre el rol o el tipo del control, como botón o lista, ya que esto podría generar un conflicto con el texto de la propiedad Rol (obtenida mediante la función GetRoleText de la API MSAA).
Valor
El valor se utiliza cuando un desarrollador desea obtener información de objetos en forma de cadena de texto. Este valor puede devolverse para objetos que contengan porcentajes, números enteros, información textual o visual. Por ejemplo, los valores de las propiedades devueltas por objetos accesibles mediante barras de desplazamiento y trackbars pueden indicar porcentajes en cadenas de texto.
No todos los objetos tienen un valor asignado.
Estado
La propiedad Estado describe el estado de un objeto en un momento dado. Microsoft Active Accessibility proporciona constantes de estado de objeto , definidas en oleacc.h, que se combinan para identificar el estado de un objeto. Si se devuelven valores de estado predefinidos, los clientes utilizan GetStateText para recuperar una cadena localizada que describe el estado. Todos los objetos admiten la propiedad Estado.
Desafíos y limitaciones
Microsoft diseñó el modelo de objetos de Accesibilidad Activa durante y después del lanzamiento de Windows 95. El modelo se basa en roles, cada uno de los cuales representa un tipo de elemento de la interfaz de usuario. Estos roles se limitan a los elementos de la interfaz de usuario de uso común en ese momento. Por ejemplo, no existe un modelo de objetos de texto que ayude a las tecnologías de asistencia a gestionar los botones divididos que combinan varios elementos de la interfaz de usuario en uno solo. MSAA no intenta representar texto con formato, como texto de marcado o documentos de texto enriquecido . Si bien MSAA aún conserva la propiedad Value, solo puede contener texto simple sin formato. En aquel momento, se consideró que el Modelo de Objetos de Texto de Microsoft (MS-TOM) sería más apropiado para expresar los atributos del texto con formato. Sin embargo, la complejidad de MS-TOM y su limitada adopción inicial fuera de Microsoft dificultaron el acceso al texto enriquecido.
Otra limitación radica en la navegación del modelo de objetos. MSAA representa la interfaz de usuario como una jerarquía de objetos accesibles, de forma similar al Administrador de ventanas de Windows. Los clientes navegan entre objetos accesibles mediante el método IAccessible::accNavigate. Sin embargo, los servidores implementan accNavigate de maneras impredecibles y, a menudo, no lo implementan en absoluto. Los clientes, no obstante, deben ser capaces de manejar todos los enfoques para cualquier servidor MSAA. Esta ambigüedad implica trabajo adicional para los desarrolladores de clientes, y la complejidad puede contribuir a problemas dependiendo de las implementaciones del servidor.
Al ser una interfaz binaria basada en COM, IAccessible es inmutable y no se puede modificar sin crear otra interfaz. Por lo tanto, no es posible exponer nuevos roles, comportamientos ni propiedades a través del modelo de objetos basado en IAccessible existente. Si bien se concibió como un subconjunto común de información sobre los elementos básicos de la interfaz de usuario, resultó difícil extenderla para incluir información sobre nuevos métodos de interacción.
Disponibilidad
MSAA estuvo disponible inicialmente como un complemento para Windows 95. Se ha integrado en todas las versiones posteriores de Windows.
Tecnología relacionada
Automatización de la interfaz de usuario de Microsoft (UIA) : El sucesor de MSAA fue la Automatización de la interfaz de usuario (UIA). Sin embargo, dado que aún existen aplicaciones basadas en MSAA, se utilizan puentes para permitir la comunicación entre la Automatización de la interfaz de usuario y las aplicaciones MSAA. Para que la información pueda compartirse entre las dos API, se desarrollaron un proxy de MSAA a Automatización de la interfaz de usuario y un puente de Automatización de la interfaz de usuario a MSAA. El primero es un componente que consume información de MSAA y la pone a disposición a través de la API del cliente de Automatización de la interfaz de usuario. El segundo permite que las aplicaciones cliente que utilizan MSAA accedan a las aplicaciones que implementan la Automatización de la interfaz de usuario.
Aplicaciones de Internet Enriquecidas Accesibles (WAI-ARIA): Existe una correspondencia general entre los atributos ARIA y las propiedades MSAA. [ 4 ]
IAccessible2 : MSAA proporciona la base de IAccessible2. IAccessible2 aprovecha el trabajo realizado en MSAA y añade funcionalidades adicionales.
API de automatización de Windows : A partir de Windows 7, Microsoft está integrando sus tecnologías de accesibilidad en un marco denominado API de automatización de Windows. MSAA formará parte de este marco.
Implementaciones de Microsoft Active Accessibility
La accesibilidad activa está disponible para desarrolladores en todas las versiones de Windows desde Windows 95. Desde su introducción original, MSAA se ha utilizado para añadir compatibilidad con el acceso programático a la interfaz de usuario en numerosas aplicaciones empresariales y de consumo, como Microsoft Internet Explorer , Mozilla Firefox , Microsoft Office , etc. Además de las ayudas de accesibilidad como lectores de pantalla, magnificadores de pantalla y dispositivos de comunicación aumentativa y alternativa (CAA), esta tecnología se ha utilizado en software de automatización de pruebas , como QuickTest Pro, Functional Tester y SilkTest.
Se pueden encontrar más implementaciones de MSAA en aplicaciones y productos de tecnología de asistencia buscando en los sitios de accesibilidad de Microsoft o en el sitio web de información sobre tecnología de asistencia. [ 5 ] [ 6 ] [ 7 ]
Referencias
- ↑ Lista de correo NFB-RD, febrero de 1996. Archivada el 3 de marzo de 2016 en Wayback Machine , "ACCESIBILIDAD OLAE [sic]"
- ↑ Plataformas compatibles: Accesibilidad activa - MSDN
- ↑ Microsoft Developer Network (MSDN): https://msdn.microsoft.com/en-us/library/bb773173(VS.85).aspx Controles de Windows .
- ↑ Microsoft Developer Network (MSDN): Especificación de automatización de la interfaz de usuario
- ↑ Microsoft: Accesibilidad en los productos de Microsoft .
- ↑ Microsoft: Historia del compromiso de Microsoft con la accesibilidad .
- ↑ Trace Center: Enlaces de información sobre tecnología de asistencia Enlace obsoleto archivado el 23/07/2012 en archive.today .
Enlaces externos
- API de accesibilidad
- Administración de Windows
- API de Windows