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 bundle de test commence, Analyse Automatique 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 bundle de test se termine, Analyse Automatique 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 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. Ajouter axe_config.json au bundle cible des tests UI dans Xcode (Project Navigator > Add Files > Check the UI test target)
  2. Ajouter 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
----------------------------------------------------

Un passage réussi affichera Axe Clean - 0 Issues Found 🎉 dans la console.

Fichiers de sortie

À la fin de chaque 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 laissé 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

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

Developer Hub

Analyse Automatique télécharge automatiquement vos résultats sur Axe Developer Hub. Si vous souhaitez uniquement enregistrer les résultats localement, définissez axeUploadResults à false.

Référence de configuration

Propriétés

Propriété Type Requis Détails
axeAutoScanMode Booléen Requis Par défaut à 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 à true. Définir sur false pour les résultats locaux uniquement
axeMobileApiKey Chaîne Optionnel Une clé API Axe DevTools Mobile de axe.deque.com est requis 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 exemple axe.company.com), pour sur site/nuage privé uniquement
axeAccountUrl Chaîne Optionnel URL backend personnalisée (par exemple axe.company.com), pour sur site/nuage privé uniquement
axeHtmlReportPath Chaîne Optionnel Répertoire de sortie configurable par l'utilisateur pour le rapport HTML et le résumé. Par défaut à ~/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 devez 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 du test UI. Vérifiez le 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 Developer Hub échoue si la taille d'un fichier de résultat dépasse 20 Mo, bien que tous les résultats soient toujours enregistrés localement et affichés dans le rapport HTML local.
  • Vérifiez les journaux. Cherchez les AutoScan messages dans la console.

Quelle est la suite ?

Vous pouvez consulter vos résultats dans Axe Developer Hub. Apprenez comment intégrer Axe DevTools Mobile dans votre pipeline CI/CD. Utilisez-vous 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.