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

Identificeer automatisch toegankelijkheidsproblemen terwijl uw bestaande XCUITests met uw app interageren

Not for use with personal data

Overzicht

Door aansluiting op standaard XCUITest-gebaren, legt Auto Scan elke scherm vast waarmee uw testsuite interageert, zonder dat u individuele scanoproepen, imports of wijzigingen aan uw tests hoeft toe te voegen.

Hoe het werkt

  1. Wanneer de testbundel start, laadt Auto Scan axe_config.json en begint met het observeren van interacties
  2. Na elke ondersteunde interactie legt Auto Scan het huidige scherm vast
  3. Wanneer de testbundel eindigt, verwerkt Auto Scan uw resultaten, slaat een JSON-resultaat voor elk scherm samen met een samenvatting en een HTML-rapport op in AxeDevToolsMobileResults/, en uploadt optioneel de resultaten naar Developer Hub

Aan de slag

  1. Maak axe_config.json:
{
  "axeAutoScanMode": true,
  "axeAppBundleId": "com.example.myapp",
  "axeMobileApiKey": "<API_KEY>",
  "axeProjectId": "<PROJECT_ID>",
  "axeHtmlReportPath": "~/my-custom-report-folder"
}
  1. Voeg axe_config.json toe aan het UI-testdoel in Xcode (Project Navigator > Add Files > Vink het UI-testdoel aan)
  2. Voeg axe_config.json toe aan .gitignore
  3. Voer tests normaal uit

Voorbeeldcode

Het onderstaande codefragment is een standaard XCUITest, zonder Auto Scan-specifieke 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
    }
}

Resultaten interpreteren

Consolesamenvatting

Een consolesamenvatting vergelijkbaar met de volgende wordt afgedrukt wanneer de testsuite is voltooid:

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

Een schone run zal Axe Clean - 0 Issues Found 🎉 in de console tonen.

Uitvoerbestanden

Aan het einde van elke testrun genereert Auto Scan een zelfvoorzienend HTML-rapport dat screenshots, impactniveaus en gedetailleerde informatie over problemen bevat. Uitvoerbestanden worden opgeslagen in een door de gebruiker configureerbare uitvoermap die u kunt definiëren in axe_config.json. De axeHtmlReportPath accepteert een absoluut pad, of een met ~ voorvoegsel (bijv. ~/my-axe-reports). Als deze niet is ingesteld, is de standaard uitvoermap ~/AxeDevToolsMobileResults.

Bestand Formaat
AxeDevToolsMobile_<timestamp>.html Interactief HTML-rapport met issues per scherm, elementdetails, impactniveaus
AxeDevToolsSummary_<timestamp>.txt Tekstsamenvatting (zelfde als console-uitvoer)
axe-test-data/<APP-ID>-<SCREEN-TITLE>.json Individueel JSON-resultaat - 1 voor elke scan die is uitgevoerd

Auto Scan Ondersteuning

Regels

Auto Scan voert de volledige Axe-regelset uit met uitzondering van ScreenOrientation, SupportsDynamicType, en alle experimentele regels. Vind gedetailleerde informatie over wat we controleren in de Regeloverzicht voor iOS.

Developer Hub

Auto Scan uploadt uw resultaten automatisch naar Axe Developer Hub. Als u de resultaten alleen lokaal wilt opslaan, stel dan axeUploadResults in op false.

Configuratiereferentie

Eigenschappen

Eigenschap Type Vereist Details
axeAutoScanMode Booleaans Vereist Standaardwaarden zijn false. Moet ingesteld zijn op true om auto scan te activeren.
axeAppBundleId String Vereist Bundle-ID van de app die getest wordt
axeUploadResults Booleaans Optioneel Standaardwaarden zijn true. Stel in op false voor alleen lokale resultaten
axeMobileApiKey String Optioneel Een Axe DevTools Mobile API-sleutel van axe.deque.com is vereist als axeUploadResults=true
axeProjectId String Optioneel Een Project-ID van Developer Hub is vereist als axeUploadResults=true
axeServerUrl (Afgeschreven) String Optioneel Aangepaste backend-URL (bijv. axe.company.com), alleen voor on-premise/private cloud
axeAccountUrl String Optioneel Aangepaste backend-URL (bijv. axe.company.com), alleen voor on-premise/private cloud
axeHtmlReportPath String Optioneel Door de gebruiker configureerbare uitvoermap voor HTML-rapport en samenvatting. Standaard naar ~/AxeDevToolsMobileResults
axeOfflineLicenseKey String Optioneel Alleen vereist voor offline modus, wanneer axeUploadResults=false
note

Als u onze tools gebruikt en de voorkeur geeft aan offline resultaten, stelt u een waarde in voor de axeOfflineLicenseKey in plaats van axeMobileApiKey en axeProjectId.

Beste praktijken

Animaties uitschakelen

Krijg de meest accurate en uitgebreide resultaten van Automatische Scan door animatie uit te schakelen. Dit zorgt ervoor dat schermen volledig worden gerenderd wanneer ze vastgelegd worden.

De onderstaande onderdelen zijn vereist:

Test setup:

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

App-lanceringspad (AppDelegate of @main):

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

Het lanceringsargument geeft de vlag door aan het app-proces. De app-zijde controle voert het uit. Geen van beide werkt alleen.

Opmerking: UIView.setAnimationsEnabled(false) dekt geen SwiftUI-native animaties (withAnimation {}). SwiftUI-apps hebben mogelijk extra verwerking nodig.

Probleemoplossing

  • Geen resultaten? Controleer of axe_config.json is opgenomen in het UI-testdoel. Controleer Doel lidmaatschap in XCode's File Inspector.
  • Resultaten lokaal te zien, maar niet in Developer Hub? De upload naar Developer Hub mislukt als de grootte van een enkel resultaatbestand groter is dan 20MB, hoewel alle resultaten nog steeds lokaal worden opgeslagen en in het lokale HTML-rapport worden getoond.
  • Controleer logbestanden. Zoek naar AutoScan-berichten in de console.

Wat Nu?

U kunt uw resultaten bekijken in de Axe Developer Hub. Leer hoe u Axe DevTools Mobile integreert in je CI/CD-pijplijn. Gebruikt u een cloud-gebaseerd testplatform? U kunt Axe DevTools Mobile nog steeds gebruiken om naar toegankelijkheidskwesties te zoeken: Integreren met Cloudplatforms.

tip

Als u meer gedetailleerde controle in uw tests nodig heeft, zie Gerichte Tests met XCUITest.