Controlla le tue scansioni

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

La modalità manuale di Watcher ti permette di scegliere quando o quali pagine del tuo sito vengono analizzate per problemi di accessibilità

Not for use with personal data

Per impostazione predefinita, in quella che è conosciuta come modalità automatica, axe Watcher determina automaticamente quando analizzare una pagina web (sia se visitata dalla tua suite di test sia in base a cambiamenti rilevati nel DOM della pagina). A volte, questa analisi automatica risulta in un comportamento che non è compatibile con gli obiettivi della tua organizzazione: analizzare troppe pagine (pagine di cui non ti importa o che appartengono ad altri dipartimenti della tua organizzazione). Puoi disattivare la modalità automatica, il che ti permetterà di determinare quando (o se) analizzare una pagina web (nota come modalità manuale).

Scenari

Scansione di parti di un sito web

Puoi usare la modalità manuale per scansionare solo una parte di un sito web. Per esempio, se il tuo team si occupa delle funzionalità del carrello sul tuo sito ma la tua suite di test deve visitare le pagine del catalogo (che non sono gestite dal tuo team) per aggiungere prodotti al carrello, probabilmente vorrai evitare di testare l'accessibilità delle pagine del catalogo. Una volta raggiunta la pagina del carrello nella tua suite di test, puoi riabilitare l'analisi automatica. Poi, quando i test sul carrello sono completi, puoi disabilitare nuovamente l'analisi automatica.

Prossimi Passi

Caricamento di Contenuto Dinamico

Puoi usare la modalità manuale per evitare di testare pagine con sequenze di caricamento complesse. Se la pagina che vuoi testare carica dinamicamente molte risorse in background, puoi disabilitare la modalità automatica fino a quando non è completamente caricata. Questo limiterà i problemi di accessibilità a quelli che esistono solo una volta che la pagina è completamente caricata. Impedirà anche controlli di accessibilità durante le animazioni di caricamento o altre interfacce di caricamento.

Prossimi Passi

Catturare Stati Specifici della Pagina

Se vuoi assicurarti che uno specifico stato della pagina venga scansionato, puoi attivare manualmente un'analisi di accessibilità dopo aver configurato la tua pagina.

Prossimi Passi

Limitare la Portata di una Grande Suite di Test

Disabilitando l'analisi automatica, puoi utilizzare una suite di test più grande e completa ma limitare i tuoi test di accessibilità solo a una parte di essa. In questo caso, non hai bisogno di suddividere la tua suite di test più grande in suite di test più piccole e testare l'accessibilità solo nelle suite che ti interessano.

Prossimi Passi

Come Usare la Modalità Manuale

Puoi disabilitare l'analisi automatica nella tua configurazione (vedi Disabilita Analisi Automatica nella Configurazione sotto).

L'analisi delle pagine è controllata da tre metodi sull'oggetto Controller o dai comandi equivalenti in Cypress.

  1. analyze() (in Cypress: cy.axeWatcherAnalyze()) per eseguire un'analisi della pagina corrente.
  2. start() (in Cypress: cy.axeWatcherStart()) per abilitare l'analisi automatica dell'accessibilità.
  3. stop() (in Cypress: cy.axeWatcherStop()) per disabilitare l'analisi automatica dell'accessibilità.

Ottenere un Oggetto Controller

(JavaScript/TypeScript) Per informazioni su come ottenere un Controller oggetto, vedere il passo quattro della pagina delle istruzioni del vostro framework di test:

JavaScript:

TypeScript:

(Java) Per Java, vedere il passo tre della pagina delle istruzioni del framework di test. Il passo quattro mostra come fare il cast dell' wrappedDriver per chiamare il suo flush() metodo:

Cypress

(JavaScript/TypeScript) Per Cypress, è possibile utilizzare l'oggetto globale cy con questi comandi equivalenti:

Metodo del Controller Comando Cypress
analyse() axeWatcherAnalyze()
flush() axeWatcherFlush()
start() axeWatcherStart()
stop() axeWatcherStop()

Test di Playwright

(JavaScript/TypeScript) Per il test di Playwright, l' Controller oggetto (PlaywrightController) può essere ottenuto da page, che contiene un axeWatcher oggetto. È possibile utilizzare l' axeWatcher oggetto per invocare i Controller metodi (l'esempio sotto è in TypeScript):

import { test, expect } from './fixtures'

test('example test', async ({ page }) => {
  await page.goto('https://example.com')
  await page.axeWatcher.analyze()
})

Disabilitare l'Analisi Automatica nella Configurazione

È possibile disabilitare il test automatico dell'accessibilità

(JavaScript/TypeScript) Ad esempio, imposti autoAnalyze su false nella tua configurazione (la riga è evidenziata nel campione di JavaScript di Cypress qui sotto):

const { defineConfig } = require('cypress');
const { cypressConfig } = require('@axe-core/watcher/cypress/config');

const API_KEY = process.env.API_KEY
const PROJECT_ID = process.env.PROJECT_ID

module.exports = defineConfig(  
  cypressConfig({
    axe: {
      apiKey: API_KEY,      projectId: PROJECT_ID,
      autoAnalyze: false
    },
    // Your existing Cypress configuration code here
  })
);

Disabilitare l'Analisi Automatica tramite una Chiamata

Con Cypress, puoi usare il comando axeWatcherStop() :

cy.axeWatcherStop()

(JavaScript/TypeScript) Le altre integrazioni di test usano il metodo stop() sul tuo oggetto Controller:

await controller.stop()

(Java) Nella integrazione Java Watcher, usi il metodo AxeWatcherController.stop() .

Vedi Ottenere un Oggetto Controller per ulteriori informazioni su come ottenere un oggetto controller per il tuo framework di test.

Analizzare Manualmente le Pagine

Dopo aver disabilitato l'analisi automatica, puoi aggiungere chiamate a (JavaScript/TypeScript) axeWatcherAnalyze() (per Cypress) o analyze() (con le altre integrazioni di test). (Java) Per Java, usi il metodo AxeWatcherController.analyze()](wa-java-watchercontroller#analyze).

Ad esempio, per Cypress:

describe('My Login Application', () => {
  it('should login with valid credentials', () => {
    cy.visit('https://the-internet.herokuapp.com/login')
      // Analyze the page.
      .axeWatcherAnalyze()      .get('#username')
      .type('tomsmith')
      .get('#password')
      .type('SuperSecretPassword!')
      .get('button[type="submit"]')
      .click()
      .wait(1000)
      // Analyze the page.
      .axeWatcherAnalyze()      // Restart automatic axe analysis.
      .axeWatcherStart()
      .get('#flash')
      .should('exist')
  })
})

Vedi Ottenere un Oggetto Controller per ulteriori informazioni su come ottenere un oggetto controller per il tuo framework di test.

Abilitare l'Analisi Automatica

Con Cypress, puoi usare il comando axeWatcherStart :

cy.axeWatcherStart()

Le altre integrazioni di test usano il metodo start sul tuo oggetto Controller:

await controller.start()

Vedi Ottenere un Oggetto Controller per ulteriori informazioni su come ottenere un oggetto controller per il tuo framework di test.

Eseguire Watcher Solo su Esecuzioni di Test Specifiche

I test end-to-end possono essere costosi in termini di tempo o di costi di cloud computing. Potresti non voler che Watcher analizzi le pagine a ogni commit o ogni esecuzione di test, ma solo quando desideri esplicitamente una scansione dell'accessibilità. Puoi gestire l'analisi tramite una variabile d'ambiente passando il valore della variabile a autoAnalyze. Questo ti offre due distinti comandi di test: uno senza analisi, e uno con analisi.

(JavaScript/TypeScript) Ad esempio, in una configurazione Cypress:

const { defineConfig } = require('cypress')
const { cypressConfig } = require('@axe-core/watcher/cypress/config')

const API_KEY = process.env.API_KEY
const PROJECT_ID = process.env.PROJECT_ID
const ACCESSIBILITY_TESTING = process.env.ACCESSIBILITY_TESTING === 'true'

module.exports = defineConfig(
  cypressConfig({
    axe: {
      apiKey: API_KEY,
      projectId: PROJECT_ID,
      autoAnalyze: ACCESSIBILITY_TESTING
    },
    // Your existing Cypress configuration code here
  })
)

Aggiungi due script al tuo package.json, uno con la variabile impostata, uno senza:

{
  "scripts": {
    "test:e2e": "cypress run",
    "test:e2e:accessibility": "ACCESSIBILITY_TESTING=true cypress run"
  }
}

Su Windows, usa cross-env per impostare variabili d'ambiente in modo cross-platform. Puoi scegliere qualsiasi nome per la variabile d'ambiente; ACCESSIBILITY_TESTING è solo un esempio.

Lo stesso approccio si applica ad altri framework di test JavaScript e TypeScript: leggi la variabile nel tuo file di configurazione e passa il suo valore booleano a autoAnalyze. (Java) Gli utenti Java possono passare il valore a setAutoAnalyze().

note

Questo approccio controlla se Watcher analizza le pagine, non se Watcher è inizializzato. Alcune configurazioni di Watcher avvengono comunque nel tuo ambiente di test indipendentemente dal valore della variabile d'ambiente.

Vedi Anche