Tipo de control List

En este tema se proporciona información sobre la compatibilidad de Microsoft Automatización de la interfaz de usuario con el tipo de control List.

El tipo de control List proporciona una manera de organizar un grupo plano o grupos de elementos y permite al usuario seleccionar uno o varios de esos elementos. El tipo de control List tiene una restricción flexible sobre los tipos de elementos secundarios que puede contener. Esto permite que los proveedores de Automatización de la interfaz de usuario admitan un elemento conocido para los contenedores de selección.

En las secciones siguientes se definen la estructura de árbol Automatización de la interfaz de usuario necesaria, las propiedades, los patrones de control y los eventos para el tipo de control List. Los requisitos de Automatización de la interfaz de usuario se aplican a todos los controles de lista en los que el marco o la plataforma de la interfaz de usuario se integra Automatización de la interfaz de usuario compatibilidad con los tipos de control y los patrones de control.

En este tema se incluyen las siguientes secciones.

Estructura de árbol típica

En la tabla siguiente se muestra un control típico y una vista de contenido del árbol de Automatización de la interfaz de usuario que pertenece a los controles de lista y se describe lo que se puede contener en cada vista. Para más información sobre el árbol de UI Automation, vea Información general del árbol de UI Automation.

Vista de control Vista de contenido
Contiene los elementos que corresponden a los controles. Quita la información redundante del árbol para que las tecnologías de asistencia funcionen con el conjunto de información más pequeño que sea significativo para el usuario final.
  • List
    • DataItem (0 o más)
    • Elemento de lista (0 o más)
    • Group (0 o más)
    • ScrollBar (0, 1 o 2)
  • List
    • DataItem (0 o más)
    • Elemento de lista (0 o más)
    • Group (0 o más)

La vista de control de un control que implementa el tipo de control List (por ejemplo, un control de lista) consta de:

  • Cero o más elementos dentro del control de lista (los elementos se pueden basar en los tipos de control ListItem o DataItem )
  • Cero o más controles de grupo dentro de un control de lista
  • Cero, uno o dos controles de barra de desplazamiento

La vista de contenido de un control que implementa el tipo de control List (por ejemplo, un control de lista) consta de:

  • Cero o más elementos dentro del control de lista (los elementos se pueden basar en los tipos de control ListItem o DataItem )
  • Cero o más grupos dentro del control de lista

Un control de lista no debe disponer de elementos que tengan una relación jerárquica que no sea estar agrupados. Si los elementos tienen elementos secundarios en el árbol de Automatización de la interfaz de usuario, el contenedor de lista debe basarse en el tipo de control Árbol.

Los elementos seleccionables dentro del control de lista estarán disponibles en los descendientes del árbol de automatización de la interfaz de usuario del control de lista. Todos los elementos dentro del control de lista deben pertenecer al mismo grupo de selección. Los elementos seleccionables de la lista deben exponerse como tipos de control ListItem (en lugar de DataItem).

Propiedades pertinentes

En la tabla siguiente se enumeran las propiedades Automatización de la interfaz de usuario cuyo valor o definición es especialmente relevante para el tipo de control List. Para obtener más información sobre las propiedades de Automatización de la interfaz de usuario, vea Recuperar propiedades de Automatización de la interfaz de usuario Elements.

Propiedad de automatización de interfaz de usuario Valor Notas
UIA_AutomationIdPropertyId Vea las notas. El valor de esta propiedad debe ser único entre todos los elementos del mismo nivel en la vista sin procesar del árbol de Automatización de la interfaz de usuario.
UIA_BoundingRectanglePropertyId Vea las notas. El rectángulo exterior que contiene el control completo.
UIA_ClickablePointPropertyId Vea las notas. Si el control de lista tiene un punto en el que se puede hacer clic (un punto que se puede hacer clic para que la lista tome el foco), ese punto debe exponerse a través de esta propiedad. Si el valor de la propiedad UIA_IsOffscreenPropertyId es TRUE, si se intenta recuperar esta propiedad, se producirá el error UIA_E_NOCLICKABLEPOINT .
UIA_ControlTypePropertyId Lista
UIA_HelpTextPropertyId Vea las notas. El texto de ayuda para los controles de lista debe explicar por qué se solicita al usuario que realice una selección de una lista de opciones. Por ejemplo, "Seleccione un elemento de esta lista para establecer la resolución de pantalla del monitor".
UIA_IsContentElementPropertyId TRUE El control de lista siempre se incluye en la vista de contenido del árbol de Automatización de la interfaz de usuario.
UIA_IsControlElementPropertyId TRUE El control de lista siempre se incluye en la vista de control del árbol de Automatización de la interfaz de usuario.
UIA_IsKeyboardFocusablePropertyId Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
UIA_LabeledByPropertyId Vea las notas. Si hay una etiqueta de texto estático, esta propiedad debe exponer una referencia a ese control.
UIA_LocalizedControlTypePropertyId Vea las notas. Cadena localizada correspondiente al tipo de control List . El valor predeterminado es "list" para en-US o inglés (Estados Unidos).
UIA_NamePropertyId Vea las notas. El valor de la propiedad Name de un control de lista debe transmitir la categoría de opciones entre las que se pide al usuario que seleccione. Esta propiedad suele recibir su nombre de una etiqueta de texto estático. Si no hay una etiqueta de texto estático, el desarrollador de aplicaciones debe exponer un valor para la propiedad Name .
La única vez que esta propiedad no es necesaria para los controles de lista es si el control se utiliza dentro del subárbol de otro control.

Patrones y propiedades de control necesarios

En la tabla siguiente se enumeran los patrones de control Automatización de la interfaz de usuario que todos los controles de lista deben admitir. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Patrón de control/Propiedad de patrón Soporte técnico/valor Notas
IGridProvider Depende Implemente el patrón de control Grid cuando la navegación de cuadrícula deba estar disponible en un elemento por elemento.
IMultipleViewProvider Depende Implemente el patrón de control MultipleView si el control puede admitir varias vistas de los elementos del contenedor.
IScrollProvider Depende Implemente el patrón de control Scroll si los elementos del contenedor se pueden desplazar.
ISelectionProvider Depende Si un control admite el tipo de control List que admite la selección, el control debe implementar el patrón de control Selection cuando se mantiene un estado de selección entre los elementos contenidos en el control. Si los elementos del control no se pueden seleccionar, se puede usar el tipo de control Grupo .
CanSelectMultiple Depende Los controles List pueden ser contenedores de selección única o múltiple.
IsSelectionRequired Depende Los controles List no siempre requieren que se seleccione un elemento.
ITableProvider Nunca El patrón de control Table nunca se admite para el tipo de control List . Si el control necesita admitir este patrón de control, el control debe basarse en el tipo de control DataGrid .

Eventos necesarios

En la tabla siguiente se enumeran los eventos de Automatización de la interfaz de usuario que enumeran los controles necesarios para admitir. Para más información sobre los eventos, vea UI Automation Events Overview.

Evento de Automatización de la interfaz de usuario Notas
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId evento de cambio de propiedad.
UIA_IsEnabledPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsEnabled , debe admitir este evento.
UIA_IsOffscreenPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsOffscreen , debe admitir este evento.
UIA_LayoutInvalidatedEventId Si se puede cambiar el diseño de los elementos secundarios, el control debe admitir este evento.
UIA_MultipleViewCurrentViewPropertyId evento de cambio de propiedad. Si el control admite el patrón de control MultipleView , debe admitir este evento.
UIA_ScrollHorizontallyScrollablePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_ScrollHorizontalScrollPercentPropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_ScrollHorizontalViewSizePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_ScrollVerticalScrollPercentPropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_ScrollVerticallyScrollablePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_ScrollVerticalViewSizePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Scroll , debe admitir este evento.
UIA_Selection_InvalidatedEventId Si el control admite el patrón de control Selection , debe admitir este evento.
UIA_StructureChangedEventId

Conceptual

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation