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 si avvia, Auto Scan 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, Auto Scan elabora i tuoi risultati, salva un risultato JSON per ogni schermo - insieme a un riepilogo e un report HTML - in AxeDevToolsMobileResults/ e opzionalmente 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 target del test UI nel pacchetto in Xcode (Project Navigator > Add Files > Check the UI test target)
  2. Aggiungi axe_config.json a .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
----------------------------------------------------

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

File di output

Alla fine di ciascuna esecuzione del test, Auto Scan genera un report HTML autonomo che include screenshot, 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

Auto Scan esegue l'intero set di regole Axe ad eccezione di ScreenOrientation, SupportsDynamicType e tutte le regole sperimentali. Trova informazioni dettagliate su cosa verifichiamo nel Panoramica delle Regole per iOS.

Developer Hub

Auto Scan carica automaticamente i tuoi risultati su Axe Developer Hub. Se vuoi salvare i risultati solo localmente, imposta axeUploadResults a false.

Riferimento di Configurazione

Proprietà

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

Se stai usando i nostri strumenti e preferisci ottenere risultati in modalità offline, imposterai un valore per axeOfflineLicenseKey al posto 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 che axe_config.json sia incluso nel target del 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 un qualsiasi file di risultati supera i 20MB, anche se tutti i risultati vengono comunque salvati localmente e visualizzati nel report HTML locale.
  • Controlla i log. Cerca messaggi AutoScan nella console.

E adesso?

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

tip

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