Objective-Cサポート
次の 手順に従ってaxeDevToolsXCUIフレームワークを取得します。このページで利用可能なすべての機能はObjective-Cで完全にサポートされています。XCUIフレームワークを使用する予定のファイルにはヘッダーをインポートしてください:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>UITestsで setUp メソッドを利用して、利用可能な機能と対話する AxeDevTools オブジェクトを初期化します。APIキーを axe.deque.comで生成してください。希望する場合は、ユーザー名とパスワードで認証することもできます。
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startSessionWithApiKey:@"API_KEY"
url:@""
projectId:@""
error:&error];
}スキャンを実行する
アプリケーション内の画面またはアプリケーション内の任意のXCUIElementでスキャンを実行するには、UITests内で新しいテストケースを作成し、 run メソッドを 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
}スキャンをダッシュボードに送信
スキャンを取得したら、それをダッシュボードに送信するために postResult メソッドを AxeDevTools オブジェクトから呼び出します:
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" という名前が付けられ、 "AxeDevToolsResults" というフォルダーに保存されます。 **User** フォルダー内に
ログインしたら、 AxeDevTools オブジェクトを使用して、スキャンをJSONファイルとして保存します。デフォルトのパスとファイル名を使用するには、パラメータに空の文字列を送信してください:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];