Auto Scan

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

Erkennen Sie automatisch Barrierefreiheitsprobleme, während Ihre bestehenden XCUITests mit Ihrer App interagieren

Not for use with personal data

Überblick

Indem es sich in standardmäßige XCUITest-Gesten einklinkt, erfasst und scannt Auto Scan jeden Bildschirm, mit dem Ihre Testsuite interagiert, ohne dass individuelle Scanaufrufe, Importe oder Anpassungen an Ihren Tests erforderlich sind.

Wie es funktioniert

  1. Wenn das Testbündel startet, lädt Auto Scan axe_config.json und beginnt, Interaktionen zu beobachten
  2. Nach jeder unterstützten Interaktion erfasst Auto Scan den aktuellen Bildschirm
  3. Wenn das Testbündel endet, verarbeitet Auto Scan Ihre Ergebnisse, speichert ein JSON-Ergebnis für jeden Bildschirm - zusammen mit einer Zusammenfassung und einem HTML-Bericht - in AxeDevToolsMobileResults/, und lädt optional Ergebnisse in den Developer Hub hoch

Erste Schritte

  1. Erstellen axe_config.json:
{
  "axeAutoScanMode": true,
  "axeAppBundleId": "com.example.myapp",
  "axeMobileApiKey": "<API_KEY>",
  "axeProjectId": "<PROJECT_ID>",
  "axeHtmlReportPath": "~/my-custom-report-folder"
}
  1. Hinzufügen axe_config.json zum UI-Testziel-Bundle in Xcode (Projekt-Navigator > Dateien hinzufügen > UI-Testziel auswählen)
  2. Hinzufügen axe_config.json auf .gitignore
  3. Tests normal durchführen

Beispielcode

Der nachstehende Ausschnitt ist ein standardmäßiger XCUITest, ohne Auto Scan-spezifischen Code:

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
    }
}

Ergebnisse interpretieren

Konsolenzusammenfassung

Eine Konsolenzusammenfassung ähnlich der folgenden wird angezeigt, wenn die Testsuite endet:

----  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
----------------------------------------------------

Ein sauberer Lauf zeigt Axe Clean - 0 Issues Found 🎉 in der Konsole an.

Ausgabedateien

Am Ende jedes Testlaufs erzeugt Auto Scan einen eigenständigen HTML-Bericht, der Screenshots, Auswirkungen und detaillierte Informationen zu Problemen enthält. Ausgabedateien werden in einem benutzerkonfigurierbaren Ausgabeverzeichnis gespeichert, das Sie in axe_config.json. festlegen können axeHtmlReportPath akzeptiert einen absoluten Pfad oder einen ~-präfixierten Pfad (z. B. ~/my-axe-reports). Wenn er nicht eingestellt ist, ist das Standard-Ausgabeverzeichnis ~/AxeDevToolsMobileResults.

Datei Format
AxeDevToolsMobile_<timestamp>.html Interaktiver HTML-Bericht mit problembezogenen Bildschirminformationen, Elementdetails, Auswirkungen
AxeDevToolsSummary_<timestamp>.txt Textzusammenfassung (gleich wie Konsolenausgabe)
axe-test-data/<APP-ID>-<SCREEN-TITLE>.json Individuelles JSON-Ergebnis - 1 für jeden durchgeführten Scan

Auto Scan Unterstützung

Regeln

Auto Scan führt den vollständigen Axe-Regelsatz mit Ausnahme von ScreenOrientation, SupportsDynamicType, und allen experimentellen Regeln aus. Detaillierte Informationen darüber, was wir überprüfen, finden Sie in der Regelübersicht für iOS.

Developer Hub

Auto Scan lädt Ihre Ergebnisse automatisch in den Axe Developer Hub hoch. Wenn Sie die Ergebnisse nur lokal speichern möchten, setzen Sie axeUploadResults auf false.

Konfigurationsreferenz

Eigenschaften

Eigenschaft Typ Erforderlich Details
axeAutoScanMode Boolean Erforderlich Standardmäßig false. Muss auf true gesetzt werden, um den automatischen Scan zu aktivieren.
axeAppBundleId String Erforderlich Bundle-ID der zu testenden App
axeUploadResults Boolean Optional Standardmäßig true. Setzen Sie auf false für nur lokale Ergebnisse
axeMobileApiKey String Optional Ein Axe DevTools Mobile API-Schlüssel von axe.deque.com erforderlich ist, wenn axeUploadResults=true
axeProjectId String Optional Eine Projekt-ID aus dem Developer Hub erforderlich ist, wenn axeUploadResults=true
axeServerUrl (Veraltet) String Optional Benutzerdefinierte Backend-URL (z.B. axe.company.com), für vor Ort/Private Cloud nur
axeAccountUrl String Optional Benutzerdefinierte Backend-URL (z.B. axe.company.com), für vor Ort/Private Cloud nur
axeHtmlReportPath String Optional Benutzerdefinierbares Ausgabeverzeichnis für HTML-Bericht und Zusammenfassung. Standardmäßig ~/AxeDevToolsMobileResults
axeOfflineLicenseKey String Optional Nur erforderlich für Offline-Modus, wenn axeUploadResults=false
note

Wenn Sie unsere Tools verwenden und die Ergebnisse im Offline-Modus bevorzugen, müssen Sie einen Wert für das axeOfflineLicenseKey anstelle des axeMobileApiKey und axeProjectId.

Best Practices

Animationen deaktivieren

Erzielen Sie die genauesten und umfassendsten Ergebnisse mit Auto Scan, indem Sie Animationen deaktivieren. Dadurch wird sichergestellt, dass Bildschirme vollständig gerendert werden, wenn sie erfasst werden.

Beide untenstehenden Elemente sind erforderlich:

Testeinrichtung:

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

App-Startpfad (AppDelegate oder @main):

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

Das Startargument überträgt das Flag an den App-Prozess. Die Überprüfung auf App-Seite reagiert darauf. Keines funktioniert alleine.

Hinweis: UIView.setAnimationsEnabled(false) deckt keine SwiftUI-nativen Animationen ab (withAnimation {}). SwiftUI-Apps benötigen möglicherweise eine zusätzliche Handhabung.

Fehlerbehebung

  • Keine Ergebnisse? Verifizieren Sie, dass axe_config.json im UI-Test-Zielbundle enthalten ist. Überprüfen Sie Zielmitgliedschaft im Dateiinformationsfenster von XCode.
  • Ergebnisse lokal sichtbar, aber nicht im Developer Hub? Der Upload zum Developer Hub schlägt fehl, wenn die Größe einer Ergebnisdatei größer als 20MB ist, obwohl alle Ergebnisse lokal gespeichert und im lokalen HTML-Bericht angezeigt werden.
  • Protokolle überprüfen. Suchen Sie nach AutoScan Nachrichten in der Konsole.

Was kommt als nächstes?

Sie können Ihre Ergebnisse in Axe Developer Hubeinsehen. Erfahren Sie, wie Sie Axe DevTools Mobile in Ihre CI/CD-Pipeline integrieren. Verwenden Sie eine cloudbasierte Testplattform? Sie können trotzdem Axe DevTools Mobile nutzen, um nach Barrierefreiheitsproblemen zu suchen: Integrieren Sie mit Cloud-Plattformen.

tip

Wenn Sie eine detailliertere Kontrolle in Ihren Tests benötigen, sehen Sie Gezieltes Testen mit XCUITest.