Prise en charge d'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 n'importe quel fichier dans lequel vous prévoyez d'utiliser le framework XCUI :
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
Utilisez la setUp
méthode dans vos UITests pour initialiser AxeDevTools
un 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 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 loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
Exécuter une analyse
Pour exécuter une analyse sur un écran de votre application ou sur n'importe quel XCUIElement de votre application, créez un nouveau cas de test dans vos UITests 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 que vous avez l'analyse, 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 baliser votre scan, vous pouvez passer un tableau vide au paramètre withTags
. Si vous souhaitez donner à l'analyse un nom d'analyse personnalisé, vous pouvez le transmettre 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];
}
@end
Fonctionnalités
Ignorer les vues
Une fois connecté, utilisez l'objet pour ignorer les règles pour des vues spécifiques. AxeDevTools
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];
Ignorance des règles
Une fois connecté, utilisez l'objet pour ignorer toutes les règles pour une analyse complète : AxeDevTools
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];
Vous pouvez également rajouter des règles à la configuration en modifiant le paramètre bool
de la valeur true
à la valeur false
:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];
Enregistrer les analyses localement
Enregistrez les résultats localement pour utiliser axe DevTools Reporter CLI pour 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 les tests automatisés.
Si le chemin et le nom du 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 pour enregistrer votre analyse sous forme de fichier JSON. AxeDevTools
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];