Objective-Cサポート

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

手順に従って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];

booltrueから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];