Supporto Objective-C
Segui i passi per ottenere il framework axeDevToolsXCUI. Tutte le funzionalità disponibili su questa pagina sono pienamente supportate in Objective-C. Importa l'header in qualsiasi file in cui intendi utilizzare il framework XCUI:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Utilizza il metodo setUp nei tuoi UITests per inizializzare un oggetto AxeDevTools con cui interagire con le funzionalità disponibili. Genera una chiave API su axe.deque.com. Se preferisci, puoi invece autenticarti con un nome utente e una password.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Eseguire una Scansione
Per eseguire una scansione su uno schermo della tua applicazione o su qualsiasi XCUIElement nella tua applicazione, crea un nuovo caso di test nei tuoi UITests e chiama il metodo run all'interno del tuo oggetto 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
}Inviare la Scansione al Dashboard
Una volta ottenuta la scansione, puoi inviarla al Dashboard chiamando il metodo postResult dall'oggetto AxeDevTools :
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Se non vuoi taggare la tua scansione, puoi passare un array vuoto al parametro withTags . Se desideri assegnare un nome personalizzato alla scansione, puoi passarlo al parametro withScanName .
Esempio Completo
#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];
}
@endFunzionalità
Ignorare le Visualizzazioni
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools per ignorare le regole per visualizzazioni specifiche. Puoi ignorare tutte le visualizzazioni di una classe specifica, o ignorare una visualizzazione con un Identificatore di Accessibilità specifico:
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];Ignorare le Regole
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools per ignorare qualsiasi regola per un'intera scansione:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Puoi anche ri-aggiungere regole alla configurazione modificando il parametro bool da true a false:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Salvare Scansioni Localmente
Salva i risultati localmente per utilizzare il axe DevTools Reporter CLI per creare un report esecutivo a partire da un insieme di scansioni all'interno della tua pipeline CI/CD.
Una scansione verrà salvata come file .json . Salvare le scansioni localmente è supportato solo nei test automatizzati.
Se il percorso e il nome del file non sono specificati, i risultati verranno denominati "(APPID)-(CURRENT_SCREEN_TITLE).json" e verranno salvati in una cartella chiamata "AxeDevToolsResults" all'interno del tuo Utente cartella.
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools per salvare la tua scansione come file JSON. Per utilizzare il percorso e il nome del file predefiniti, invia stringhe vuote ai parametri:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];