Support Objective-C
Suivez le étapes pour obtenir le framework axeDevToolsXCUI. Toutes les fonctionnalités disponibles sur cette page sont entièrement prises en charge en Objective-C. Importez l'en-tête dans n'importe quel fichier où vous prévoyez d'utiliser le cadre XCUI :
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Utilisez la méthode setUp dans vos tests d'interface utilisateur pour initialiser un objet AxeDevTools afin d'interagir avec les fonctionnalités disponibles. Générez une clé API à axe.deque.com. Si vous préférez, vous pouvez plutôt vous authentifier avec un nom d'utilisateur et un mot de passe.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Lancer un Scan
Pour exécuter une analyse sur un écran de votre application ou sur tout élément XCUI de votre application, créez un nouveau cas de test au sein de vos tests d'interface utilisateur et appelez la méthode run dans votre objet AxeDevTools :
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0); // This allows you to assert if there are accessibility failures
}Envoyer le Scan au Tableau de Bord
Une fois l'analyse effectuée, vous pouvez l'envoyer au tableau de bord en appelant la méthode postResult depuis l'objet AxeDevTools :
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Si vous ne souhaitez pas taguer votre analyse, vous pouvez passer un tableau vide au paramètre withTags. Si vous souhaitez donner à l'analyse un nom personnalisé, vous pouvez l'entrer dans le paramètre withScanName.
Exemple Complet
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
#import <XCTest/XCTest.h>
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0);
[axeDevTools postResult:result
withTags:@[@"Build 10.6.1"]
withScanName:@""
error:&error];
}
@endFonctionnalités
Ignorer des Vues
Une fois connecté, utilisez l'objet AxeDevTools pour ignorer les règles pour des vues spécifiques. Vous pouvez ignorer toutes les vues d'une classe spécifique ou ignorer une vue avec un identifiant d'accessibilité spécifique :
NSDictionary* ignoreRules = @{ @"UILabel": @[@"InScrollView"], // ignore InScrollView for all UILabels
@"LoginScreen.Button": @[@"TouchTargetSize"] // ignore TouchTargetSize for the view with this accessibility id
};
[[axeDevTools configuration] ignoreWithRulesFor: ignoreRules];Ignorer des Règles
Une fois connecté, utilisez l'objet AxeDevTools pour ignorer toutes les règles pour une analyse complète :
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Vous pouvez également réajouter des règles à la configuration en changeant le bool de true à false :
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Enregistrer les Scans Localement
Enregistrez les résultats localement pour utiliser le Axe DevTools Reporter CLI et créer un rapport exécutif à partir d'un ensemble d'analyses dans votre pipeline CI/CD.
Une analyse sera enregistrée sous forme de fichier .json. L'enregistrement des analyses localement n'est pris en charge que dans le cadre des tests automatisés.
Si le chemin et le nom de fichier ne sont pas spécifiés, les résultats seront nommés "(APPID)-(CURRENT_SCREEN_TITLE).json" et seront enregistrés dans un dossier appelé "AxeDevToolsResults" dans votre dossier Utilisateur.
Une fois connecté, utilisez l'objet AxeDevTools pour enregistrer votre analyse sous forme de fichier JSON. Pour utiliser le chemin et le nom de fichier par défaut, envoyez des chaînes vides aux paramètres :
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];