Referencia de la API
La referencia de API para el paquete @axe-core/watcher
Esta guía de referencia describe las API proporcionadas por el paquete (también conocido como @axe-core/watcher axe Watcher *o simplemente * Watcher ).
AxeConfiguration Interfaz
La propiedad axe (un parámetro pasado a las funciones de configuración) es el medio habitual para cambiar su AxeConfiguration para que axe Watcher configure las pruebas de accesibilidad. Las siguientes propiedades están contenidas en AxeConfiguration:
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
clave API |
string |
Sí | El secreto de la clave API de su proyecto. |
autoAnalyze |
boolean |
no | Si el Watcher ejecutará un análisis de accesibilidad en su página automáticamente. El valor predeterminado es true. |
buildID |
string |
no | El valor predeterminado es null, que se recomienda para ejecuciones de pruebas de un solo proceso (no paralelizadas). Para las ejecuciones de pruebas en paralelo, todos los trabajadores deben tener la misma cadena buildID no nula. |
configurationOverrides |
ConfigurationOverrides |
no | Permite anular la global configuration settings . |
excludeUrlPatterns |
string[] |
no | Excluye del escaneo las URL que coinciden con los patrones de minimatch especificados. |
runContext |
axe.ElementContext |
no | Pasado al axe-core. |
runOptions |
RunOptions |
no | Pasado al axe-core. |
serverURL |
string |
no | El servidor Developer Hub para enviar resultados. Es poco probable que necesites cambiar este valor. |
ID de sesión |
string |
no | Obsoleto. ID de sesión de esta instancia. Es poco probable que necesites cambiar este valor. Consulte buildId en su lugar. |
tiempo de espera |
Tiempos de espera |
no | Un objeto Timeouts que representa los milisegundos hasta que los métodos del Controller especificado agotan el tiempo de espera y fallan. |
apiKey
El apiKey valor es la única propiedad que debe establecerse en su AxeConfiguration. Puede obtener su valor desde la Página de Proyectos. Consulte Administración de proyectos para obtener más información.
autoAnalyze
Establezca este valor en false para evitar que las páginas se analicen automáticamente. Para obtener más información sobre el modo manual, consulte Controlar Cuándo Se Realiza el Análisis de Página.
buildID
La propiedad opcional buildID , cuando no está establecida null, permite que los ejecutores de pruebas paralelos generen resultados que aparecen como una única ejecución de prueba en axe Developer Hub. En el caso de ejecuciones de pruebas paralelas, cada ejecutor de pruebas debe compartir la misma buildID cadena no nula, lo que hace que cada ejecución de prueba concatene sus resultados con los resultados existentes para el buildID mismo SHA de confirmación de Git. Sin embargo, cuando buildID es null, varias ejecuciones de pruebas sobrescriben los resultados existentes que tienen el mismo SHA de confirmación de Git.
Generalmente, puede obtener un valor utilizable de su proveedor de integración continua. buildID Por ejemplo, puede utilizar estos valores:
-
github.run_idDisponible dentro de los flujos de trabajo de GitHub. Consulte contexto de GitHub en la documentación de GitHub para obtener más información.
-
CIRCLE_PIPELINE_IDCon CircleCI, el valor anterior está disponible en el entorno de su proceso. Consulte Variables de entorno integradas en la documentación de CircleCI para obtener más información.
Otras variables de entorno de integración continua que puedes utilizar para:
buildID
configurationOverrides
(Opcional) Anula los valores establecidos en la configuración global. Consulte la interfaz ConfigurationOverrides para obtener más información.
excludeUrlPatterns
(Opcional) Evita que se analice cualquier URL que coincida con cualquiera de los patrones minimatch en la matriz excludeUrlPatterns .
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}Debes comenzar tu patrón con http:// o https:// o asterisco y barra (*/) para que coincida con las URL. Ve la tabla a continuación para ver ejemplos.
Ejemplos
| URL | Patrón | ¿Coincidencias? |
|---|---|---|
https://example.com/index.html |
example.com |
Falso |
https://example.com/index.html |
https://*mple.com/index.html |
Verdadero |
https://example.com/index.html |
https://example.com |
Falso |
https://example.com/index.html |
https://*.example.com |
Falso |
https://example.com/index.html |
https://*.example.com/** |
Falso |
https://example.com/index.html |
https://*example.com/** |
Verdadero |
https://example.com/index.html |
https://** |
Verdadero |
https://example.com/index.html |
https://* |
Falso |
https://example.com/index.html |
** |
Verdadero |
https://example.com/index.html |
*example.com/index.html |
Falso |
https://example.com/index.html |
*example.com/** |
Falso |
https://example.com/index.html |
*/example.com/** |
Verdadero |
https://example.com/index.html |
htt*/** |
Verdadero |
https://example.com/index.html |
h*/example.com/** |
Verdadero |
https://test.example.com/index.html |
https://*example.com/** |
Verdadero |
https://test.example.com/index.html |
https://*.example.com/** |
Verdadero |
runContext
(Opcional) Le permite elegir qué elementos se incluyen y excluyen del análisis de accesibilidad de su página.
Cuando usa runContext para seleccionar elementos que se incluirán en su análisis (a través de un único selector CSS, una matriz de selectores CSS o usando la propiedad include ), axe Developer Hub analiza solo los elementos seleccionados por los selectores CSS. Por lo tanto, si no se selecciona ningún elemento (debido a un error ortográfico en un selector de clase CSS, por ejemplo), no se analizará nada y, lo que es más importante, no se capturará ningún estado de página.
El valor de runContext puede ser:
-
Un único selector CSS para los elementos que se incluirán en el análisis:
axe: { runContext: '.main' } -
Una matriz de selectores CSS para los elementos que se incluirán en el análisis:
axe: { runContext: [ '.main', '.text-block' ] } -
Un objeto de contexto que contiene
includeyexcludepropiedades (como se muestra en el ejemplo anterior). Puede especificarincludeoexcludeo ambos.includeoexcludecada uno puede ser un único selector CSS o una matriz de selectores CSS:axe: { runContext: { include: '.main', exclude: '.ad-section' } }
Hay más detalles disponibles en la documentación de contexto de axe-core.
runOptions
(Opcional) El objeto runOptions permite el siguiente subconjunto de propiedades del tipo axe-core Options :
-
ancestry: El valor predeterminado esfalse. Sitrue, los selectores CSS devueltos incluyen los elementos ancestros de los elementos devueltos.importantSi su página usa clases o identificadores dinámicos (clases o identificadores de elementos que cambian cada vez que se vuelve a cargar la página), debe especificar
ancestrycomotruepara que axe Developer Hub pueda detectar y rastrear correctamente si los problemas de accesibilidad son duplicados porque, de manera predeterminada, axe Developer Hub espera que las clases y los identificadores de elementos permanezcan iguales entre ejecuciones de pruebas.Cuando
ancestryestrue, axe Developer Hub utiliza la posición del elemento dentro del árbol DOM para localizar el mismo elemento entre ejecuciones de prueba.A continuación se muestra un ejemplo de un selector para un elemento iframe con un ID de main-iframe:
ancestryfalse**<iframe id="main-iframe" ...>iframe#main-iframeSi
ancestryestrue, el selector incluiría la ruta completa desde el elemento raíz y no hay identificadores ni clases especificados:html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe -
runOnly: Esto le permite limitar qué reglas se ejecutan especificando nombres o etiquetas. ConsulterunOnlya continuación para obtener más información. -
rules: Habilite o deshabilite reglas usando la propiedadenabled. Consulte lasreglasa continuación para obtener más información.
A continuación se muestra un ejemplo de runOptions:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: 'wcag2a'
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}runOnly
El uso de runOnly se considera un uso avanzado y, si lo usas runOnly, recibirás una advertencia.
No puedes usar ambos runOptions.runOnly y configurationOverrides. De lo contrario, recibirás un error.
El valor (parte del objeto [runOptions] runOnly ) puede ser uno de los siguientes:(#runoptions)
-
Una cadena que representa el ID de la regla que desea utilizar para el análisis de accesibilidad:
axe: { runOptions: { runOnly: 'ruleId' } } -
Una matriz de cadenas que representan los identificadores de las reglas que desea utilizar:
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } } -
Un objeto con
typepropiedadesvalues. El valor es una cadena que puede ser reglas, una regla, una etiqueta o etiquetas.type** ** ** ** La propiedad puede ser una cadena o una matriz de cadenas que representan la regla o las etiquetas que desea utilizar para el análisis de accesibilidad.valuesEl siguiente ejemplo muestra el uso del objetorunOnlypara limitar las pruebas de accesibilidad a las reglas etiquetadas como wcag2a:axe: { runOptions: { runOnly: { type: 'tag', values: 'wcag2a' } } }
- Para obtener más ejemplos de uso (con axe-core), consulte [Ejemplos de parámetros de opciones].
runOnly(https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter-examples) - Para obtener más información sobre los valores de etiquetas disponibles, consulte Etiquetas axe-core.
- Para obtener información sobre las reglas, los identificadores de reglas y las etiquetas, consulte Descripciones de reglas.
rules
El valor rules (en el objeto runOptions ) le permite habilitar (enabled: true) o deshabilitar (enabled: false) reglas específicas durante el análisis, como se muestra a continuación:
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}sessionId
La propiedad sessionId está obsoleta y no debe utilizarse. Consulte buildID arriba.
timeout
El objeto timeout (de tipo Timeouts) en AxeConfiguration establece los valores de tiempo de espera en milisegundos para los respectivos métodos del controlador (o comandos personalizados para Cypress). (Consulte Clases de controlador para obtener información sobre las clases de controlador y Comandos personalizados de Cypress para obtener información sobre los comandos personalizados de Cypress). Cuando expira un tiempo de espera, la prueba falla con un mensaje que indica que se excedió el tiempo de espera. Puede aumentar el tiempo de espera para evitar el error.
Estos valores de tiempo de espera son independientes del marco de prueba que esté utilizando y es posible que también deba aumentar los valores de tiempo de espera para ese marco.
Este ejemplo establece el tiempo de espera en 8 segundos, 15 segundos, 10 segundos y 10 segundos. analyze flush start stop (Los valores predeterminados se muestran en la tabla en Interfaz Timeouts.)
axe: {
timeout: {
analyze: 8000
flush: 15000,
start: 10000,
stop: 10000,
}
}Clases de controlador
Funciones de configuración
Las funciones de configuración proporcionadas por Watcher te permiten modificar tu configuración para el marco de prueba especificado, así como adaptar la forma en que quieres ejecutar Watcher para satisfacer tus necesidades. Consulte Interfaz de configuración de Axe para obtener más información.
| Framework de pruebas | Función de configuración |
|---|---|
| Cypress | cypressConfig |
| Playwright | playwrightConfig |
| Test de Playwright | playwrightTest |
| Puppeteer | puppeteerConfig |
| WebdriverIO | wdioConfig |
| Ejecutor de pruebas de WebdriverIO | wdioTestRunner |
| WebDriverJS | webdriverConfig |
cypressConfig
Crea una configuración para Cypress.
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptionscypressConfig Parámetros
-
config:Cypress.ConfigOptions & ConfigurationTipo de intersección de
Cypress.ConfigOptionsyConfiguración.
Devuelve: Cypress.ConfigOptions
playwrightConfig
Crea una configuración para Playwright.
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptionsplaywrightConfig Parámetros
-
opts:Configuration & LaunchOptionsTipo de intersección de
LaunchOptionsyConfiguración.
Devuelve: LaunchOptions
playwrightTest
Crea una configuración para Playwright Test.
playwrightTest(options: Options): ReturnValueplaywrightTest Parámetros
-
options:OptionsOptionses un tipo de intersección deConfiguraciónyLaunchOptions.
Devuelve: ReturnValue
puppeteerConfig
Crea una configuración para Puppeteer.
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): OptionspuppeteerConfig Parámetros
-
opts:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptionsTipo de intersección de
LaunchOptions,BrowserLaunchArgumentOptions,BrowserConnectOptionsyConfiguración.
Devuelve: Options
wdioConfig
Crea una configuración de WebdriverIO.
wdioConfig({ axe, ...options}: Options): RemoteOptionswdioConfig Parámetros
-
arg:OptionsOptionses un tipo de intersección deRemoteOptionsyConfiguración.
Devoluciones: RemoteOptions
wdioTestRunner
Crea una configuración de WebdriverIO Testrunner.
wdioTestRunner(...params: unknown[]): Options.TestrunnerwdioTestRunner Parámetros
-
params:desconocido[]El valor de
paramses uno de los siguientes:- Una matriz que contiene un valor, que es un tipo de intersección de
Options.TestrunneryConfiguration. - Una matriz donde el primer valor de la matriz es un
AxeConfigurationy el segundo valor es unOptions.Testrunner.
- Una matriz que contiene un valor, que es un tipo de intersección de
Devoluciones: Options.Testrunner
webdriverConfig
Crea una configuración de Selenium WebDriver.
webdriverConfig(arg: WebDriverArgs): OptionswebdriverConfig Parámetros
-
arg:WebDriverArgsUna
Configuraciónampliada para incluir un elemento Selenium WebDriverOptions.
Devoluciones: Options
Configuration Interfaz
Configuration La interfaz se utiliza con las [funciones de configuración] y contiene una propiedad:(#configuration-functions)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
axe |
AxeConfiguration |
Sí | El AxeConfiguration que se pasará a la función de configuración de su marco de prueba. |
Todas las funciones de configuración usan esta axe propiedad para permitirle configurar Watcher y realizar sus pruebas de accesibilidad. Consulte la siguiente sección, AxeConfiguration Interface, para obtener más información.
ConfigurationOverrides Interfaz
La interfaz le permite anular la configuración global de su organización para ejecuciones de pruebas individuales. ConfigurationOverrides Esta propiedad debe utilizarse de acuerdo con los permisos establecidos en la configuración global de su empresa.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Estándar de accesibilidad |
string |
no | El estándar de accesibilidad a seguir |
axeCoreVersion |
string |
no | Indica qué versión de axe-core se debe utilizar. |
Mejores Prácticas |
boolean |
no | Especifica si se deben seguir las reglas de mejores prácticas. |
Reglas experimentales |
boolean |
no | Si se deben seguir las reglas experimentales |
accessibilityStandard
Establece el estándar de accesibilidad contra el cual se realizará la prueba. Opciones disponibles:
- 'Todos' - Prueba contra todos los estándares disponibles
- 'WCAG 2.2 AAA'
- 'WCAG 2.2 AA'
- 'WCAG 2.2 A'
- 'WCAG 2.1 AAA'
- 'WCAG 2.1 AA'
- 'WCAG 2.1 A'
- 'WCAG 2.0 AAA'
- 'WCAG 2.0 AA'
- 'WCAG 2.0 A'
- 'Trusted Tester v5'
- 'EN 301 549'
Su organización debe permitir la anulación de esta configuración en la configuración global, y el estándar seleccionado debe estar entre las opciones permitidas.
axeCoreVersion
Especifica qué versión de axe-core utilizar para las pruebas. Las opciones disponibles incluyen:
- 'latest' - Última versión compatible actualmente incluida con axe Watcher
- Versiones específicas de 4.4.0 y posteriores (por ejemplo, '4.10.2', '4.9.1', etc.)
Su organización debe permitir anular esta configuración en la configuración global, y la versión seleccionada debe estar entre las opciones permitidas.
bestPractices
Habilita o deshabilita reglas de mejores prácticas para la ejecución de pruebas. Las mejores prácticas mejoran la accesibilidad pero no forman parte de estándares formales. Su organización debe permitir la anulación de esta configuración para que tenga efecto.
experimentalRules
Habilita o deshabilita reglas experimentales para la ejecución de pruebas. Las reglas experimentales aún están en desarrollo y pueden producir falsos positivos. Su organización debe permitir la anulación de esta configuración en la configuración global para que tenga efecto.
Controller Clases
Las siguientes clases extienden la clase abstracta Controller para permitirle controlar manualmente el análisis de accesibilidad de las páginas de su sitio web.
| Frameworks de Pruebas | Nombre |
|---|---|
| Playwright y Playwright Test | PlaywrightController |
| Puppeteer | PuppeteerController |
| WebdriverIO y WebdriverIO Testrunner | Controlador Wdio |
| WebDriverJS | Controlador Webdriver |
Para Cypress, los métodos de las clases *Controller se implementan como comandos personalizados. Consulte Comandos personalizados de controlador para Cypress para obtener más información.
Controller
abstract class ControllerLa clase abstracta contiene los métodos para controlar el análisis de páginas. Controller Cada una de las clases concretas extiende esta clase, por lo que los siguientes métodos están disponibles en todas las clases concretas.
analyze
analyze(): Promise<void>Analiza la página actual en busca de errores de accesibilidad. Debe llamar a este método después de haber configurado una página web para su análisis (por ejemplo, valores ingresados en un formulario) y haber desactivado el análisis automático utilizando el método stop o configurando autoAnalyze en false.
analyze Devuelve
Promise<void>
analyze Comando equivalente de Cypress
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>Envía todos los resultados del análisis de accesibilidad al Centro de desarrolladores de Axe. Se debe llamar al final de la ejecución de la prueba para garantizar que los resultados se hayan enviado a los servidores de Deque's axe Developer Hub.
flush Devoluciones
Promise<void>
flush Comando equivalente de Cypress
cy.axeWatcherFlush()
start
start(): Promise<void>Reanuda el análisis automático de páginas web. Llama a este método cuando quieras reanudar el análisis automático de páginas web en busca de errores de accesibilidad.
start Devoluciones
Promise<void>
start Comando equivalente de Cypress
cy.axeWatcherStart()
stop
stop(): Promise<void>Detiene el análisis automático de páginas web. Después de llamar al método stop , puede realizar cualquier configuración adicional que su página web pueda requerir y luego llamar al método analyze para verificar si hay errores de accesibilidad en la página.
stop Devuelve
Promise<void>
stop Comando equivalente de Cypress
cy.axeWatcherStop()
PlaywrightController
La clase le permite controlar manualmente el análisis de accesibilidad para ejecuciones de pruebas con Playwright y Playwright Test. PlaywrightController Puede iniciar y detener el análisis automático de accesibilidad y analizar páginas que requieran configuración adicional.
Para obtener más información sobre Playwright, consulte la Documentación de Playwright.
Constructor
new PlaywrightController(driver: Page): PlaywrightControllerParámetros
driver:Page
El valor es un objeto Playwright [Page] driver .(https://playwright.dev/docs/api/class-page)
Devoluciones PlaywrightController
Consulte Controller para conocer los métodos implementados en la clase base abstracta.
PuppeteerController
La clase permite el control manual de sus ejecuciones de pruebas con Puppeteer. PuppeteerController El control manual le permite proporcionar configuración adicional requerida por páginas web más complejas.
Para obtener más información sobre Puppeteer, consulte Puppeteer.
Constructor
new PuppeteerController(driver: Page): PuppeteerControllerParámetros
driver:Página
El valor es un objeto Puppeteer [Page] driver .(https://pptr.dev/api/puppeteer.page)
Returns PuppeteerController
Consulte Controller para conocer los métodos implementados en la clase base abstracta.
WdioController
Le permite controlar manualmente las ejecuciones de pruebas de WebdriverIO y WebdriverIO Testrunner. WdioController Para las páginas que requieren instalación o configuración adicional, puede detener las pruebas automáticas y analizar manualmente cada página que requiera dicha configuración.
Constructor
new WdioController(driver: Browser): WdioControllerParámetros
driver:Browser
Returns WdioController
Consulte Controller para conocer los métodos implementados en la clase base abstracta.
WebdriverController
Constructor
new WebdriverController(driver: WebDriver): WebdriverControllerParámetros
driver:WebDriver
El valor es un objeto Selenium [WebDriver]. driver (https://www.selenium.dev/documentation/webdriver/)
Devuelve WebdriverController
Consulte Controller para conocer los métodos implementados en la clase base abstracta.
Comandos personalizados de Cypress
En la plataforma de automatización del navegador Cypress, los métodos de las clases *Controller se implementan como comandos personalizados. Consulte Comandos personalizados en el sitio de documentación de Cypress para obtener más información sobre la implementación y el uso de comandos personalizados.
Se implementan los siguientes comandos personalizados. Cada comando personalizado devuelve Chainable<void> para permitir el encadenamiento con otros comandos de Cypress.
| Método del controlador | Comando personalizado equivalente de Cypress |
|---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
A partir de Watcher 3.9.0, los cuatro comandos personalizados de Cypress axeAnalyze(), axeFlush(), axeStart() y axeStop() han quedado obsoletos y no deben utilizarse.
Si está utilizando el paquete @axe-devtools/cypress con Watcher, deberá actualizar al menos a la versión 3.9.0 de Watcher porque los comandos personalizados obsoletos entran en conflicto con los comandos personalizados en @axe-devtools/cypress.
Ejemplo de comando Cypress
El siguiente ejemplo muestra cómo importar los comandos Cypress de axe Developer Hub desde el paquete @axe-core/watcher y luego llamar al comando axeWatcherFlush al final de cada prueba (colocándolo dentro de afterEach()):
// Import the axe-watcher commands.
require('@axe-core/watcher/dist/cypressCommands')
// Flush axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})Interfaz de tiempos de espera
El objeto timeout (de tipo Timeouts) en la interfaz AxeConfiguration permite a los usuarios cambiar los valores de tiempo de espera (en milisegundos) para las respectivas funciones del controlador o los comandos personalizados de Cypress.
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}| Nombre | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
| analizar | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador analyze o el comando personalizado axeWatcherAnalyze (en Cypress). |
| vaciar | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador flush o el comando personalizado axeWatcherFlush (en Cypress). |
| comenzar | número | no | 2000 | Establece el tiempo de espera en milisegundos para la función del controlador start o el comando personalizado axeWatcherStart (en Cypress). |
| detener | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador stop o el comando personalizado axeWatcherStop (en Cypress). |
