Objective-Cサポート
手順に従ってaxeDevToolsXCUIフレームワークを取得しますに従ってください。このページで利用できるすべての機能は、Objective-Cで完全にサポートされています。XCUIフレームワークを使用するファイルにヘッダをインポートしてください。
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>利用可能な機能と対話するために、UITestsでsetUpメソッドを使用してAxeDevToolsオブジェクトを初期化します。axe.deque.comでAPIキーを生成してください。希望する場合、ユーザー名とパスワードで認証することもできます。
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}スキャンを実行する
アプリケーション内の画面や任意のXCUIElementでスキャンを実行するには、UITestsで新しいテストケースを作成し、AxeDevToolsオブジェクト内でrunメソッドを呼び出してください。
- (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
}スキャンをダッシュボードに送信
スキャンが完了したら、AxeDevToolsオブジェクトからpostResultメソッドを呼び出してダッシュボードに送信できます。
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];スキャンにタグを付けたくない場合、withTagsパラメータに空の配列を渡すことができます。スキャンにカスタム名を付けたい場合、withScanNameパラメータに渡してください。
完全な例
#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機能
ビューの除外
ログインしたら、特定のビューのルールを無視するためにAxeDevToolsオブジェクトを使用します。特定のクラスのすべてのビューを無視することも、特定のアクセシビリティ識別子を持つビューを無視することもできます。
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];ルールの除外
ログインしたら、AxeDevToolsオブジェクトを使用して、全スキャンのルールを無視します。
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];boolをtrueからfalseに変更することで、構成にルールを再追加することができます。
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];スキャンをローカルに保存
Axe DevTools Reporter CLIを利用して、CI/CDパイプライン内で一連のスキャンのエグゼクティブレポートを作成するために、結果をローカルに保存します。
スキャンは.jsonファイルとして保存されます。スキャンをローカルに保存することは、自動化テスト内でのみサポートされています。
パスとファイル名が指定されていない場合、結果は"(APPID)-(CURRENT_SCREEN_TITLE).json"という名前で保存され、**User**フォルダ内の"AxeDevToolsResults"というフォルダに保存されます。
ログインしたら、AxeDevToolsオブジェクトを使用して、スキャンをJSONファイルとして保存します。デフォルトのパスとファイル名を使用するには、パラメータに空の文字列を送信してください。
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];