Objective-C Unterstützung
Folgen Sie dem Schritten, um das axeDevToolsXCUI-Framework zu erhalten. Alle auf dieser Seite verfügbaren Funktionen werden in Objective-C vollständig unterstützt. Importieren Sie den Header in jede Datei, in der Sie das XCUI-Framework verwenden möchten:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Verwenden Sie die setUp-Methode in Ihren UITests, um ein AxeDevTools-Objekt zu initialisieren, das mit den verfügbaren Funktionen interagieren kann. Generieren Sie einen API-Schlüssel bei axe.deque.com. Wenn Sie möchten, können Sie sich stattdessen mit einem Benutzernamen und Passwort authentifizieren.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Einen Scan durchführen
Um einen Scan auf einem Bildschirm in Ihrer Anwendung oder auf jedem XCUIElement in Ihrer Anwendung durchzuführen, erstellen Sie einen neuen Testfall in Ihren UITests und rufen Sie die run-Methode innerhalb Ihres AxeDevTools-Objekts auf:
- (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
}Scan an das Dashboard senden
Sobald Sie den Scan haben, können Sie ihn an das Dashboard senden, indem Sie die postResult-Methode aus dem AxeDevTools-Objekt aufrufen:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Wenn Sie Ihren Scan nicht taggen möchten, können Sie ein leeres Array an den withTags-Parameter übergeben. Wenn Sie dem Scan einen benutzerdefinierten Namen geben möchten, können Sie ihn an den withScanName-Parameter übergeben.
Vollständiges Beispiel
#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];
}
@endFunktionen
Ansichten ignorieren
Sobald Sie eingeloggt sind, verwenden Sie das AxeDevTools-Objekt, um Regeln für bestimmte Ansichten zu ignorieren. Sie können alle Ansichten einer bestimmten Klasse ignorieren oder eine Ansicht mit einer bestimmten Zugänglichkeitskennung ignorieren:
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];Regeln ignorieren
Sobald Sie eingeloggt sind, verwenden Sie das AxeDevTools-Objekt, um alle Regeln für einen gesamten Scan zu ignorieren:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Sie können auch Regeln wieder zur Konfiguration hinzufügen, indem Sie das bool von true auf false ändern:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Scans lokal speichern
Speichern Sie die Ergebnisse lokal, um den Axe DevTools Reporter CLI zu nutzen, um einen Executive-Bericht aus einer Reihe von Scans in Ihrer CI/CD-Pipeline zu erstellen.
Ein Scan wird als .json-Datei gespeichert. Das lokale Speichern von Scans wird nur innerhalb automatisierter Tests unterstützt.
Wenn Pfad und Dateiname nicht angegeben sind, werden die Ergebnisse "(APPID)-(CURRENT_SCREEN_TITLE).json" benannt und in einem Ordner namens "AxeDevToolsResults" innerhalb Ihres Benutzer-Ordners gespeichert.
Nach dem Einloggen verwenden Sie das AxeDevTools-Objekt, um Ihren Scan als JSON-Datei zu speichern. Um den Standardpfad und Dateinamen zu verwenden, senden Sie leere Zeichenfolgen an die Parameter:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];