Etiqueta AccControl
La etiqueta AccControl
utiliza la interfaz IAccessible de Microsoft Active Accessibility (MSAA). La etiqueta AccControl tiene:
Una propiedad
Name
para definir el nombre accesible para usuarios (fácil de usar) para un control.Una etiqueta
<Path>
para definir una ruta de búsqueda para el control en el árbolIAccessibility
de la aplicación. La etiqueta<Path>
contiene la etiqueta FindWindow y la etiqueta Next.
El siguiente ejemplo de XML muestra una definición de control con la etiqueta AccControl
.
<AccControl name="Control Name">
<Path>
<FindWindow>
<CaptionStartsWith>Customer App</CaptionStartsWith>
</FindWindow>
<Next/>
<Next match="2">Customer Name:</Next>
</Path>
</AccControl>
Nota
Algunos elementos de la etiqueta Path
tienen un atributo <match>
que puede usar para agregar un contador a la descripción de la búsqueda. Los dos siguientes ejemplos devuelven el mismo resultado de la búsqueda, pero el primer ejemplo implementa la etiqueta <match>
:
Ejemplo 1
<Caption match="2">Test Application</Caption>
Ejemplo 2
<Caption>Test Application</Caption>
<Caption>Test Application</Caption>
Si <match>
no se especifica, el valor predeterminado es 0.
El método Cadena) en una etiqueta AccControl
se asigna siempre al método get_accValue
en el nodo IAccessible
del asunto, a menos que el nodo contenga role="radio button"
o role="check box"
. En estos casos, el método Cade na) devuelve True
o False
, dependiendo de si está seleccionado el estado del nodo.
El método Cadena) en una etiqueta AccControl
se asigna siempre al método set_accValue
en el nodo IAccessible
del asunto, con la excepción de los nodos que tengan role="radio button"
o role="check box"
. En el caso de un botón de radio, se eleva una excepción UnsupportedControlOperation
porque a un botón de radio no se puede asignar un valor True
o False
.
El siguiente ejemplo muestra el código XML RELAX NG para la etiqueta <Path>
.
# RELAX NG XML grammar for Path
# https://relaxng.org/compact-tutorial-20030326.html
#
grammar
{
start = Path
Path = element Path
{
FindWindow* & element Next
{ attribute match { xsd:integer }?,
attribute offset { xsd:integer }?,text? }*
}
}