Scansione Automatica

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

Identifica automaticamente i problemi di accessibilità mentre i tuoi test XCUITest interagiscono con la tua app

Not for use with personal data

Panoramica

Sfruttando i gesti standard di XCUITest, Scansione Automatica cattura e analizza ogni schermo con cui la tua suite di test interagisce, senza la necessità di aggiungere chiamate di scansione individuali, importazioni o modifiche ai tuoi test.

Come funziona

  1. Quando il pacchetto di test inizia, Scansione Automatica carica axe_config.json e inizia a osservare le interazioni
  2. Dopo ogni interazione supportata, Scansione Automatica cattura lo schermo corrente
  3. Quando il pacchetto di test termina, Scansione Automatica elabora i tuoi risultati, salva un risultato JSON per ogni schermo - insieme a un sommario e un report HTML - in AxeDevToolsMobileResults/, e facoltativamente carica i risultati su Developer Hub

Guida per l'inizio

  1. Crea axe_config.json:
{
  "axeAutoScanMode": true,
  "axeAppBundleId": "com.example.myapp",
  "axeMobileApiKey": "<API_KEY>",
  "axeProjectId": "<PROJECT_ID>",
  "axeHtmlReportPath": "~/my-custom-report-folder"
}
  1. Aggiungi axe_config.json al pacchetto target di test UI in Xcode (Navigatore Progetto > Aggiungi File > Seleziona il target di test UI)
  2. Aggiungi axe_config.json su .gitignore
  3. Esegui i test normalmente

Codice d'Esempio

Il codice di seguito è un XCUITest standard, senza codice specifico per Scansione Automatica:

import XCTest

class MyAppUITests: XCTestCase {
    let app = XCUIApplication()

    override func setUpWithError() throws {
        app.launch()  // triggers initial capture
    }

    func testSettings() throws {
        app.buttons["Settings"].tap()  // triggers capture
    }
}

Interpretazione dei Risultati

Riepilogo Console

Un riepilogo della console simile al seguente viene stampato quando la suite di test termina:

----  Axe DevTools Mobile Accessibility Summary ----
Scan 1:
  Screen: HomeScreen
  Issues: 3
  Issues by rule:
    - ColorContrast: 2
    - TouchTargetSize: 1

Scan 2:
  Screen: SettingsScreen
  Issues: 0

Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------

Una esecuzione pulita mostrerà Axe Clean - 0 Issues Found 🎉 nella console.

File di output

Al termine di ogni esecuzione del test, Auto Scan genera un report HTML autonomo che include schermate, livelli di impatto e informazioni dettagliate sui problemi. I file di output vengono salvati in una directory di output configurabile dall'utente che puoi definire in axe_config.json. Il axeHtmlReportPath accetta un percorso assoluto o un percorso con prefisso ~- (es. ~/my-axe-reports). Se lasciato non impostato, la directory di output predefinita è ~/AxeDevToolsMobileResults.

File Formato
AxeDevToolsMobile_<timestamp>.html Report HTML interattivo con problemi per schermata, dettagli degli elementi, livelli di impatto
AxeDevToolsSummary_<timestamp>.txt Riepilogo testuale (stesso dell'output della console)
axe-test-data/<APP-ID>-<SCREEN-TITLE>.json Risultato JSON individuale - 1 per ogni scansione effettuata

Supporto Scansione Automatica

Regole

Scansione Automatica esegue l'intero set di regole Axe con l'eccezione di ScreenOrientation, SupportsDynamicType, e tutte le regole sperimentali. Trova informazioni dettagliate su ciò che verifichiamo nel Panoramica delle Regole per iOS.

Developer Hub

Scansione Automatica carica automaticamente i tuoi risultati su Axe Developer Hub. Se vuoi solo salvare i risultati localmente, imposta axeUploadResults su false.

Riferimento di Configurazione

Proprietà

Proprietà Tipo Richiesto Dettagli
axeAutoScanMode Booleano Richiesto Predefinito a false. Deve essere impostato su true per abilitare la scansione automatica.
axeAppBundleId Stringa Richiesto ID bundle dell'app in test
axeUploadResults Booleano Opzionale Predefinito a true. Imposta su false per risultati solo locali
axeMobileApiKey Stringa Opzionale Una chiave API per Axe DevTools Mobile da axe.deque.com è richiesto se axeUploadResults=true
axeProjectId Stringa Opzionale Un ID progetto da Developer Hub è richiesto se axeUploadResults=true
axeServerUrl (Deprecato) Stringa Opzionale URL backend personalizzato (ad es. axe.company.com), per on-prem/nuvola privata solo
axeAccountUrl Stringa Opzionale URL backend personalizzato (ad es. axe.company.com), per on-prem/nuvola privata solo
axeHtmlReportPath Stringa Opzionale Directory di output configurabile dall'utente per report HTML e sommario. Predefinito a ~/AxeDevToolsMobileResults
axeOfflineLicenseKey Stringa Opzionale Richiesto solo per modo offline, quando axeUploadResults=false
note

Se stai utilizzando i nostri strumenti e preferisci ottenere risultati in modalità offline, imposterai un valore per il axeOfflineLicenseKey invece di axeMobileApiKey e axeProjectId.

Migliori Pratiche

Disabilita Animazioni

Ottieni i risultati più accurati e completi da Auto Scan disabilitando le animazioni. Questo assicurerà che gli schermi siano completamente renderizzati quando catturati.

Entrambi i pezzi sottostanti sono richiesti:

Configurazione del test:

override func setUpWithError() throws {
    let app = XCUIApplication()
    app.launchArguments.append("-DisableAnimations")
    app.launch()
}

Percorso di lancio dell'app (AppDelegate o @main):

if ProcessInfo.processInfo.arguments.contains("-DisableAnimations") {
    UIView.setAnimationsEnabled(false)
}

L'argomento di lancio passa il flag al processo dell'app. Il controllo lato app agisce su di esso. Nessuno dei due funziona da solo.

Nota: UIView.setAnimationsEnabled(false) non copre le animazioni native di SwiftUI (withAnimation {}). Le app SwiftUI potrebbero richiedere una gestione aggiuntiva.

Risoluzione dei Problemi

  • Nessun risultato? Verifica axe_config.json sia incluso nel bundle del target di test UI. Controlla Membership del Target nell'Ispettore File di XCode.
  • Vedi risultati localmente, ma non in Developer Hub? Il caricamento su Developer Hub fallisce se la dimensione di qualsiasi file di risultato è maggiore di 20MB, anche se tutti i risultati sono comunque salvati localmente e mostrati nel report HTML locale.
  • Controlla i log. Cerca AutoScan messaggi nella console.

E adesso?

Puoi visualizzare i tuoi risultati in Axe Developer Hub. Scopri come integrare Axe DevTools Mobile nella tua pipeline CI/CD. Usando una piattaforma di test basata su cloud? Puoi comunque utilizzare Axe DevTools Mobile per cercare problemi di accessibilità: Integrazione con Piattaforme Cloud.

tip

Se hai bisogno di un controllo più dettagliato nei tuoi test, vedi Test Mirati con XCUITest.