Support Objective-C
Suivez les é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 tout fichier où vous prévoyez d'utiliser le framework XCUI :
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Utilisez la setUp méthode dans vos UITests pour initialiser un AxeDevTools objet afin d'interagir avec les fonctionnalités disponibles. Générez une clé API sur axe.deque.com. Si vous préférez, vous pouvez également 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 lancer un scan sur un écran de votre application ou sur tout XCUIElement dans votre application, créez un nouveau cas de test dans vos UITests et appelez la run méthode dans votre AxeDevTools objet :
- (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 que vous avez le scan, vous pouvez l'envoyer au Tableau de Bord en appelant la postResult méthode depuis l' AxeDevTools objet :
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Si vous ne souhaitez pas étiqueter votre scan, vous pouvez passer un tableau vide au paramètre withTags . Si vous souhaitez donner un nom personnalisé au scan, vous pouvez le passer au 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' AxeDevTools objet 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' AxeDevTools objet pour ignorer toutes les règles pour un scan complet :
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Vous pouvez également ré-ajouter des règles à la configuration en modifiant 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 pour construire un rapport exécutif basé sur un ensemble de scans dans votre pipeline CI/CD.
Un scan sera enregistré comme un fichier .json . L'enregistrement des scans localement n'est pris en charge que dans les 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 Utilisateur répertoire.
Une fois connecté, utilisez l' AxeDevTools objet pour enregistrer votre scan 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];