Analyse Automatique

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

Identifiez automatiquement les problèmes d'accessibilité à mesure que vos XCUITests existants interagissent avec votre application

Not for use with personal data

Aperçu

En s'intégrant aux gestes standard de XCUITest, Analyse Automatique capture et scanne chaque écran avec lequel votre suite de tests interagit, sans besoin d'ajouter des appels de scan individuels, d'importations ou de modifications à vos tests.

Comment cela fonctionne

  1. Lorsque le test bundle démarre, Auto Scan charge axe_config.json et commence à observer les interactions
  2. Après chaque interaction prise en charge, Analyse Automatique capture l'écran actuel
  3. Lorsque le test bundle se termine, Auto Scan traite vos résultats, enregistre un résultat JSON pour chaque écran - ainsi qu'un résumé et un rapport HTML - dans AxeDevToolsMobileResults/, et télécharge éventuellement les résultats sur le Developer Hub

Commencer

  1. Créer axe_config.json :
{
  "axeAutoScanMode": true,
  "axeAppBundleId": "com.example.myapp",
  "axeMobileApiKey": "<API_KEY>",
  "axeProjectId": "<PROJECT_ID>",
  "axeHtmlReportPath": "~/my-custom-report-folder"
}
  1. Ajoutez axe_config.json au bundle cible de test UI dans Xcode (Project Navigator > Add Files > Cochez l'objectif de test UI)
  2. Ajoutez axe_config.json à .gitignore
  3. Exécuter les tests normalement

Exemple de code

L'extrait ci-dessous est un XCUITest standard, sans code spécifique à Analyse Automatique :

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

Interprétation des résultats

Résumé console

Un résumé console semblable à ce qui suit est imprimé lorsque la suite de tests se termine :

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

Une exécution propre affichera Axe Clean - 0 Issues Found 🎉 dans la console.

Fichiers de sortie

À la fin de chaque exécution de test, Auto Scan génère un rapport HTML autonome qui inclut des captures d'écran, des niveaux d'impact et des informations détaillées sur les problèmes. Les fichiers de sortie sont enregistrés dans un répertoire de sortie configurable par l'utilisateur que vous pouvez définir dans axe_config.json. Le axeHtmlReportPath accepte un chemin absolu, ou un chemin préfixé par ~ (par exemple ~/my-axe-reports). Si non défini, le répertoire de sortie par défaut est ~/AxeDevToolsMobileResults.

Fichier Format
AxeDevToolsMobile_<timestamp>.html Rapport HTML interactif avec problèmes par écran, détails des éléments, niveaux d'impact
AxeDevToolsSummary_<timestamp>.txt Résumé textuel (identique à la sortie console)
axe-test-data/<APP-ID>-<SCREEN-TITLE>.json Résultat JSON individuel - 1 pour chaque analyse effectuée

Support Analyse Automatique

Règles

Auto Scan exécute l'ensemble complet de règles Axe à l'exception de ScreenOrientation, SupportsDynamicType, et toutes les règles expérimentales. Trouvez des informations détaillées sur ce que nous vérifions dans le Aperçu des Règles pour iOS.

Developer Hub

Auto Scan télécharge automatiquement vos résultats sur Axe Developer Hub. Si vous souhaitez seulement enregistrer les résultats localement, définissez axeUploadResults sur false.

Référence de configuration

Propriétés

Propriété Type Requis Détails
axeAutoScanMode Booléen Requis Par défaut sur false. Doit être défini sur true pour activer l'analyse automatique.
axeAppBundleId Chaîne Requis ID du bundle de l'application testée
axeUploadResults Booléen Optionnel Par défaut sur true. Définissez sur false pour des résultats locaux uniquement
axeMobileApiKey Chaîne Optionnel Une clé API Axe DevTools Mobile de axe.deque.com est requise si axeUploadResults=true
axeProjectId Chaîne Optionnel Un ID de projet de Developer Hub est requis si axeUploadResults=true
axeServerUrl (Obsolète) Chaîne Optionnel URL backend personnalisée (par ex. axe.company.com), pour sur site/nuage privé seulement
axeAccountUrl Chaîne Optionnel URL backend personnalisée (par ex. axe.company.com), pour sur site/nuage privé seulement
axeHtmlReportPath Chaîne Optionnel Répertoire de sortie configurable par l'utilisateur pour le rapport HTML et le résumé. Par défaut sur ~/AxeDevToolsMobileResults
axeOfflineLicenseKey Chaîne Optionnel Requis uniquement pour mode hors ligne, lorsque axeUploadResults=false
note

Si vous utilisez nos outils et préférez obtenir les résultats en mode hors ligne, vous devrez définir une valeur pour le axeOfflineLicenseKey au lieu de axeMobileApiKey et axeProjectId.

Bonnes pratiques

Désactiver les animations

Obtenez des résultats précis et complets avec Auto Scan en désactivant les animations. Cela garantit que les écrans sont entièrement rendus lors de la capture.

Les deux éléments ci-dessous sont requis :

Configuration du test :

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

Chemin de lancement de l'application (AppDelegate ou @main) :

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

L'argument de lancement transmet le drapeau au processus de l'application. La vérification côté application agit en conséquence. Aucun ne fonctionne seul.

Remarque : UIView.setAnimationsEnabled(false) ne couvre pas les animations natives de SwiftUI (withAnimation {}). Les applications SwiftUI peuvent nécessiter un traitement supplémentaire.

Dépannage

  • Pas de résultats ? Vérifiez que axe_config.json est inclus dans le bundle cible de test UI. Vérifiez Statut de l'objectif dans l'inspecteur de fichiers de XCode.
  • Voir des résultats localement, mais pas dans Developer Hub ? Le téléchargement vers le Developer Hub échoue si la taille d'un fichier de résultat dépasse 20 Mo, mais tous les résultats sont toujours enregistrés localement et affichés dans le rapport HTML local.
  • Vérifiez les journaux. Cherchez des messages AutoScan dans la console.

Quelle est la suite ?

Vous pouvez consulter vos résultats dans Axe Developer Hub. Découvrez comment intégrer Axe DevTools Mobile dans votre pipeline CI/CD. Vous utilisez une plateforme de test cloud ? Vous pouvez toujours utiliser Axe DevTools Mobile pour rechercher des problèmes d'accessibilité : Intégration avec les plateformes cloud.

tip

Si vous avez besoin d'un contrôle plus granulaire dans vos tests, consultez Test ciblé avec XCUITest.