Supporto Objective-C
Segui i passaggi per ottenere il framework axeDevToolsXCUI. Tutte le funzionalità disponibili in questa pagina sono pienamente supportate in Objective-C. Importa l'intestazione in qualsiasi file in cui intendi utilizzare il framework XCUI:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
Utilizza il metodo setUp
nei test UI per inizializzare un AxeDevTools
oggetto per interagire con le funzionalità disponibili. Genera una chiave API su axe.deque.com. Se preferisci, puoi anche autenticarti con un nome utente e una password.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
Esegui una scansione
Per eseguire una scansione su una schermata nella tua applicazione o su qualsiasi XCUIElement nella tua applicazione, crea un nuovo caso di test all'interno dei tuoi UITests e chiama il run
metodo all'interno del tuo AxeDevTools
oggetto:
- (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
}
Invia scansione alla dashboard
Una volta ottenuta la scansione, puoi inviarla alla Dashboard chiamando il postResult
metodo dall' AxeDevTools
oggetto:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];
Se non si desidera contrassegnare la scansione, è possibile passare un array vuoto al withTags
parametro. Se si desidera assegnare un nome personalizzato alla scansione, è possibile passarlo nel withScanName
parametro.
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];
}
@end
Caratteristiche
Ignorare le viste
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools
per ignorare le regole per viste specifiche. È possibile ignorare tutte le visualizzazioni di una classe specifica oppure ignorare una visualizzazione con uno specifico identificatore di accessibilità:
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 Regole
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools
per ignorare tutte le regole per un'intera scansione:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];
Puoi anche aggiungere di nuovo le regole alla configurazione modificando bool
da true
a false
:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];
Salva le scansioni localmente
Salva i risultati localmente per utilizzare axe DevTools Reporter CLI per creare un report esecutivo da un set di scansioni all'interno della pipeline CI/CD.
Una scansione verrà salvata come .json
file. Il salvataggio delle scansioni in locale è supportato solo nei test automatizzati.
Se il percorso e il nome del file non vengono specificati, i risultati verranno denominati "(APPID)-(CURRENT_SCREEN_TITLE).json"
e salvati in una cartella denominata "AxeDevToolsResults"
all'interno della cartella Utente .
Una volta effettuato l'accesso, utilizza l'oggetto AxeDevTools
per salvare la scansione come file JSON. Per utilizzare il percorso e il nome file predefiniti, inviare stringhe vuote ai parametri:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];