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 het interacties te observeren
  2. Na elke ondersteunde interactie legt Auto Scan het huidige scherm vast
  3. Wanneer de testbundel voltooid is, verwerkt Auto Scan uw resultaten, slaat een JSON-resultaat voor elk scherm op - samen met een samenvatting en een HTML-rapport - naar AxeDevToolsMobileResults/, en uploadt optioneel resultaten naar Developer Hub

Aan de slag

  1. Maak axe_config.json:
{
  "axeAutoScanMode": true,
  "axeAppBundleId": "com.example.myapp",
  "axeMobileApiKey": "<API_KEY>",
  "axeProjectId": "<PROJECT_ID>"
}
  1. Voeg toe axe_config.json aan de UI-testdoelbundel in Xcode (Project Navigator > Voeg bestanden toe > Vink de UI-testdoel aan)
  2. Voeg toe axe_config.json 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

Auto Scan genereert enkele verschillende bestanden aan het einde van elke testuitvoering, inclusief een zelfvoorzienend HTML-rapport dat schermafbeeldingen, weergave-hiërarchiegegevens en gedetailleerde probleeminformatie bevat. Alle bestanden worden opgeslagen in de AxeDevToolsResults directory.

Bestand Formaat
AxeDevToolsSummary_<epoch>.txt Tekstsamenvatting (zelfde als console-uitvoer)
AxeDevToolsReport_<epoch>.html Interactief HTML-rapport met per-scherm issues, elementdetails, impactniveaus, weergave-hiërarchie
<bundleId-screenTitle>.json Individueel JSON-resultaat - 1 voor elke scan die is uitgevoerd

Auto Scan Ondersteuning

Regels

Auto Scan draait de volledige Axe-regelset 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 automatisch uw resultaten naar Axe Developer Hub. Als u resultaten alleen lokaal wilt opslaan, stel axeUploadResults in op false.

Configuratiereferentie

Eigenschappen

Eigenschap Type Vereist Details
axeAutoScanMode Booleaans Vereist Standaard ingesteld op false. Moet ingesteld worden op true om automatische scan in te schakelen.
axeAppBundleId String Vereist Bundle-ID van de app die getest wordt
axeUploadResults Booleaans Optioneel Standaard ingesteld op true. Instellen 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 String Optioneel Aangepaste backend-URL, alleen voor on-premises/private cloud
axeOfflineLicenseKey String Optioneel Alleen vereist voor offline modus, wanneer axeUploadResults=false
note

Als je onze tools gebruikt en de voorkeur geeft aan resultaten in offline modus, stel je 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 behandeling nodig.

Probleemoplossing

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

Wat Nu?

Je kunt je resultaten bekijken in Axe Developer Hub. Leer hoe je Axe DevTools Mobile integreert in je CI/CD-pijplijn. Gebruik je een cloudgebaseerd testplatform? Je kunt Axe DevTools Mobile nog steeds gebruiken om te zoeken naar toegankelijkheidsproblemen: Integreren met Cloudplatforms.

tip

Als je meer gedetailleerde controle over je tests wilt hebben, zie dan Gerichte Tests met XCUITest.