Automatización de la interfaz de usuario y la accesibilidad activa de Microsoft en comparación
La API de Automatización de Windows consta de dos tecnologías: Accesibilidad activa de Microsoft y Automatización de la interfaz de usuario de Microsoft. Accesibilidad activa de Microsoft es la tecnología de accesibilidad heredada que se introdujo como complemento de plataforma para Windows 95, mientras que la automatización de la interfaz de usuario es una tecnología más reciente y capaz que supera las limitaciones inherentes a la accesibilidad activa de Microsoft.
En este tema se resumen las principales diferencias entre La automatización de la interfaz de usuario y la accesibilidad activa de Microsoft. Incluye las secciones siguientes:
- principios básicos de diseño
- propiedades y patrones de control
- roles de MSAA y patrones de control de automatización de la interfaz de usuario
- de navegación del modelo de objetos
- de extensibilidad del modelo de objetos
- transición de MSAA
- elegir microsoft Active Accessibility, UI Automation o IAccessibleEx
- temas relacionados
Principios básicos de diseño
Aunque La automatización de la interfaz de usuario y la accesibilidad activa de Microsoft son dos tecnologías diferentes, los principios de diseño básicos son similares. El propósito de ambas tecnologías es exponer información enriquecida sobre los elementos de la interfaz de usuario usados en las aplicaciones de Windows. Los desarrolladores de herramientas de accesibilidad pueden usar esta información para crear software que haga que las aplicaciones que se ejecutan en Windows sean más accesibles para las personas con discapacidades visuales, auditivas o de movimiento.
Tanto la accesibilidad activa de Microsoft como la automatización de la interfaz de usuario exponen el modelo de objetos de interfaz de usuario como un árbol jerárquico, que se basa en el escritorio. La accesibilidad activa de Microsoft representa elementos individuales de la interfaz de usuario como objetos accesiblesy automatización de la interfaz de usuario los representa como elementos de automatización . Ambos hacen referencia a la herramienta de accesibilidad o al programa de automatización de software como cliente. Sin embargo, La accesibilidad activa de Microsoft hace referencia a la aplicación o al control que ofrece la interfaz de usuario para la accesibilidad como servidor, mientras que automatización de la interfaz de usuario hace referencia a esto como el proveedor de .
Propiedades y patrones de control
La accesibilidad activa de Microsoft ofrece una única interfaz de modelo de objetos componentes (COM) con un conjunto fijo y pequeño de propiedades. La automatización de la interfaz de usuario ofrece un conjunto más completo de propiedades, así como un conjunto de interfaces extendidas denominadas patrones de control para manipular objetos accesibles de maneras en las que no puede la accesibilidad activa de Microsoft.
Para obtener más información, consulte ui Automation Properties Overview and UI Automation Control Patterns Overview.
Roles de MSAA y patrones de control de automatización de la interfaz de usuario
Microsoft diseñó el modelo de objetos de accesibilidad activa de Microsoft al mismo tiempo que Windows 95 se lanzó. El modelo se basa en "roles" definidos hace una década y no se pueden admitir nuevos comportamientos de interfaz de usuario ni combinar dos o más roles juntos. No hay ningún modelo de objetos de texto, por ejemplo, para ayudar a las tecnologías de asistencia a tratar contenido web complejo. La automatización de la interfaz de usuario supera estas limitaciones mediante la introducción de patrones de control que permiten que los objetos admitan más de un rol y la automatización de la interfaz de usuario patrón de control text ofrece un modelo de objetos de texto completo.
Navegación del modelo de objetos
Otra limitación de accesibilidad activa de Microsoft implica navegar por el modelo de objetos. La accesibilidad activa de Microsoft representa la interfaz de usuario como una jerarquía de objetos accesibles. Los clientes navegan desde un objeto accesible a otro mediante interfaces y métodos disponibles desde el objeto accesible. Los servidores pueden exponer los elementos secundarios de un objeto accesible con propiedades de la interfazIAccessible deo con la interfaz COM IEnumVARIANT estándar. Sin embargo, los clientes deben poder tratar ambos enfoques para cualquier servidor. Esta ambigüedad significa trabajo adicional para los implementadores de cliente y modelos de objetos accesibles rotos para los implementadores de servidor.
La automatización de la interfaz de usuario representa la interfaz de usuario como un árbol jerárquico de elementos de automatización y proporciona una única interfaz para navegar por el árbol. Los clientes pueden personalizar la vista de los elementos del árbol mediante el ámbito y el filtrado.
Extensibilidad del modelo de objetos
Las propiedades y funciones de accesibilidad activa de Microsoft no se pueden extender sin interrumpir ni cambiar la especificación de la interfaz COM de IAccessible. El resultado es que el nuevo comportamiento de control no se puede exponer a través del modelo de objetos; tiende a ser estático.
Con la automatización de la interfaz de usuario, a medida que se crean nuevos elementos de interfaz de usuario, los desarrolladores de aplicaciones pueden introducir propiedades personalizadas, patrones de control y eventos para describir los nuevos elementos. Para obtener más información, vea propiedades personalizadas, eventos y patrones de control.
Transición desde MSAA
El marco de la API de Automatización de Windows proporciona compatibilidad para la transición de los servidores de accesibilidad activa de Microsoft a los proveedores de automatización de la interfaz de usuario. La interfazIAccessibleEx permite agregar compatibilidad con propiedades y patrones de control específicos de automatización de la interfaz de usuario que se van a agregar a los servidores de accesibilidad activos de Microsoft heredados sin necesidad de volver a escribir toda la implementación. La interfaz IAccessibleEx también permite a los clientes de accesibilidad activa de Microsoft acceder directamente a las interfaces del proveedor de automatización de la interfaz de usuario, en lugar de a través de interfaces de cliente de automatización de la interfaz de usuario. Para obtener más información, vea la interfaz IAccessibleEx.
Elección de Microsoft Active Accessibility, UI Automation o IAccessibleEx
Esta sección le ayuda a determinar qué solución de API de Windows Automation se va a usar para implementar un producto de tecnología de asistencia o para que la aplicación sea accesible para los productos de tecnología de asistencia.
Nuevas aplicaciones y controles
Si va a desarrollar una nueva aplicación o control, Microsoft recomienda usar automatización de la interfaz de usuario. Aunque la accesibilidad activa de Microsoft puede ser más fácil de implementar a corto plazo, las limitaciones inherentes a esta tecnología, como su modelo de objetos envejecido y la incapacidad de admitir nuevos comportamientos de interfaz de usuario o roles de combinación, hace que sea más difícil y costoso a largo plazo. Estas limitaciones se vuelven especialmente evidentes al introducir nuevos controles.
El modelo de objetos de automatización de la interfaz de usuario es más fácil de usar y es más flexible que el de accesibilidad activa de Microsoft. Los elementos de automatización de la interfaz de usuario reflejan la evolución de las interfaces de usuario y los desarrolladores pueden definir patrones de control, propiedades y eventos de automatización de la interfaz de usuario personalizados.
La accesibilidad activa de Microsoft tiende a ejecutarse lentamente para los clientes que se ejecutan fuera de proceso. Para mejorar el rendimiento, los desarrolladores de programas de herramientas de accesibilidad suelen elegir enlazar y ejecutar sus programas en el proceso de aplicación de destino: un enfoque extremadamente difícil y arriesgado. La automatización de la interfaz de usuario es mucho más fácil de implementar para los clientes fuera de proceso y ofrece un rendimiento y una confiabilidad mucho mejores.
Implementaciones existentes de accesibilidad activa de Microsoft
Si va a actualizar una aplicación o control existente que se basa en la accesibilidad activa de Microsoft, considere la posibilidad de agregar compatibilidad con la automatización de la interfaz de usuario mediante la implementación de la interfazIAccessibleEx de. En primer lugar, asegúrese de que la aplicación o el control cumplen los siguientes requisitos:
- La jerarquía de objetos accesibles del servidor de accesibilidad activa de Microsoft de línea de base debe estar bien organizada y libre de errores. IAccessibleEx no puede corregir problemas con las jerarquías de objetos accesibles existentes.
- La implementación de IAccessibleEx debe cumplir con la especificación de accesibilidad activa de Microsoft y la especificación de automatización de la interfaz de usuario. Microsoft proporciona un conjunto de herramientas para validar el cumplimiento de ambas especificaciones. Para obtener más información, vea Testing for accessibility.
Si no se cumple alguno de estos requisitos, considere la posibilidad de implementar automatización de la interfaz de usuario de forma nativa. Puede mantener las implementaciones heredadas del servidor de accesibilidad activa de Microsoft para la compatibilidad con versiones anteriores si es necesario. Desde la perspectiva del cliente de automatización de la interfaz de usuario, no hay ninguna diferencia entre los proveedores de automatización de la interfaz de usuario y los servidores de accesibilidad activa de Microsoft que implementan IAccessibleEx correctamente.
Para obtener más información, vea la interfaz IAccessibleEx.
Temas relacionados