Java PlaywrightのAPIリファレンス
Axe DevTools for Web Java Playwright統合におけるAxePlaywrightBuilderクラスのAPIリファレンス
このドキュメントでは、Playwright Java統合によって提供されるAxePlaywrightBuilderクラスのAPIリファレンスを提供します。
AxePlaywrightBuilderクラスのほとんどのメソッドはAxePlaywrightBuilderオブジェクトを返し、いくつかのメソッドを簡単にチェーンすることができます。メソッドチェーンの例については、以下のコードサンプルを参照してください。
コンストラクタ
| コンストラクタ | 説明 |
|---|---|
| AxePlaywrightBuilder(Page) | 標準のAxePlaywrightBuilderオブジェクトを作成するコンストラクタです。 |
| AxePlaywrightBuilder(Page, File) | AxePlaywrightBuilderオブジェクトを作成し、解析中に使用されるカスタムルールを含むJSONファイルを指定します。 |
| AxePlaywrightBuilder(Page, String) | カスタムルールを含むJSONStringを指定しながらAxePlaywrightBuilderオブジェクトを作成します。 |
AxePlaywrightBuilder(Page)
指定したPageオブジェクトのAxePlaywrightBuilderクラスの新しいインスタンスを初期化します。
public AxePlaywrightBuilder(Page page);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| page | com.microsoft.Playwright.Page |
アクセシビリティ解析に使用されるPageオブジェクト。 |
例
以下のコード例は、このコンストラクタの使用方法を示しています。また、そのPageオブジェクトを使用してPageオブジェクトおよびAxePlaywrightBuilderオブジェクトを作成する方法も示しています。
// Example Page
Page page = browser.newPage();
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page);AxePlaywrightBuilder(Page, File)
FileオブジェクトおよびPageオブジェクトが指定されたAxePlaywrightBuilderクラスの新しいインスタンスを初期化します。Fileにはカスタムルールを含むJSONファイルが含まれています。
public AxePlaywrightBuilder(Page page, File rules);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| page | com.microsoft.Playwright.Page |
必須のPageオブジェクト。 |
| rules | File |
カスタムのアクセシビリティルールを含むJSONファイルを表すFileオブジェクト。 |
例
次の例は、このコンストラクターの使用方法を示しています。
// Example Page
Page page = browser.newPage();
File customRuleset = new File("somePath/custom-ruleset.json")
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page, customRuleset);AxePlaywrightBuilder(Page, String)
指定されたPage オブジェクトと指定されたString オブジェクトを含む JSON 文字列で、カスタムルールを持つ新しい AxePlaywrightBuilder クラスのインスタンスを初期化します。
public AxePlaywrightBuilder(Page page, String rules);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| page | com.microsoft.Playwright.Page |
必須のPage オブジェクト |
| rules | String |
カスタムアクセシビリティルールのセットを表す JSON 文字列。 |
例
次のコード例は、このコンストラクターを示しています。
// Example Page
Page page = browser.newPage();
String customRuleset = "{...}"
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page, customRuleset);メソッド
| メソッド | 説明 |
|---|---|
| 解析 | Playwright ページを分析し、完了した分析からAxeResults オブジェクトを返します。 |
| 設定(ファイル) | axe-core を JSON ファイル経由で実行するカスタム設定を提供します。 |
| 設定(文字列) | axe-core を JSON 文字列経由で実行するカスタム設定を提供します。 |
| ルールの無効化 | 分析中に特定のルールが実行されないようにします。 |
| exclude(String) | 特定のHTMLコンテンツを分析時に除外するためのCSSセレクターを指定します。 |
| exclude(List<String>) | 特定のHTMLコンテンツを分析時に除外するためのCSS iframeセレクターを指定します。 |
| exclude(FromFrames) | 一つ以上のネストしたiframe内の要素を除外します。 |
| exclude(FromShadowDom) | 一つ以上のネストしたシャドウDOMツリーの中にある要素を除外します。 |
| exclude(Object) | 単一のオブジェクトとして供給されたセレクターを除外します。 |
| exclude(Object...) | CSSセレクター、フレームコンテキスト、シャドウDOMコンテキストを組み合わせたセレクターを除外します。 |
| include(String) | HTMLコンテンツを分析時に含むための単一のCSSセレクターを指定します。 |
| include(List<String>) | HTMLコンテンツを分析時に含むためのCSS iframeセレクターを指定します。 |
| include(FromFrames) | 一つ以上のネストしたiframe内の要素を含めます。 |
| include(FromShadowDom) | 一つ以上のネストしたシャドウDOMツリー内の要素を含めます。 |
| include(Object) | 単一のオブジェクトとして供給されたセレクターを含めます。 |
| include(Object...) | CSSセレクター、フレームコンテキスト、シャドウDOMコンテキストを組み合わせたセレクターを含めます。 |
| setLegacyMode | クロスドメインフレームや iframes で発生する可能性のあるアクセシビリティ問題を除外するためにレガシーモードを設定します。 |
| withAxeSource(File) | File オブジェクトを使用して axe-core のカスタムバージョンを提供します。 |
| withAxeSource(String) | String オブジェクトを使用して axe-core のカスタムバージョンを提供します。 |
| withOnlyBestPracticeRules | ベストプラクティスルールのみを使用してアクセシビリティをチェックします。 |
| withOnlyExperimentalRules | 実験的ルールのみを使用してアクセシビリティをチェックします。 |
| withRules | アクセシビリティルールを指定されたものに限定します。 |
| withTags | 確認するアクセシビリティルールを、指定されたタグのリストに限定します。 |
解析
Playwrightのページ(AxePlaywrightBuilderオブジェクトが作成されたときに指定された)を分析し、完了した分析からAxeResultsオブジェクトを返します。
AxeResults AxePlaywrightBuilder.analyze();戻り値
AxeResults
例
次のコード例は、analyzeメソッドの使用方法を示しています。
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page);
AxeResults axeResults = axePlaywrightBuilder.analyze();
/* Usage may include:
axeResults.getViolations() - returns only violation results
axeResults.getPasses() - returns only pass results
axeResults.getIncomplete() - returns only incomplete results
*/設定(ファイル)
カスタム設定をaxe-coreにJSONファイルを通して提供します。
public AxePlaywrightBuilder configure(File axeConfigure);設定ファイルの形式に関する詳細については、axe-coreの設定をご覧ください。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| ファイル | File |
JSON形式でaxe-coreの設定を表現するFileオブジェクト。 |
例
次の例は、設定にアクセスし、それをAxePlaywrightBuilderオブジェクトで使用する方法を示しています。
File myAxeConfigure = new File("./axe-configure.json");
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page)
.configure(myAxeConfigure);
設定(文字列)
カスタム設定をaxe-core(アクセシビリティの分析に使われる基盤技術)にJSON文字列で提供します。
public AxePlaywrightBuilder configure(String axeConfigure);設定ファイルの形式に関する詳細については、axe-coreの設定をご覧ください。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| axeConfig | String |
JSON形式でaxe-coreの設定を表現するStringオブジェクト。 |
例
次の例は、設定にアクセスし、それをAxePlaywrightBuilderオブジェクトで使用する方法を示しています。
String myAxeConfigure = "{..}"
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page)
.configure(myAxeConfigure);ルールの無効化
分析中に実行を無効にするルールを指定します。
public AxePlaywrightBuilder disableRules(List<String> rules);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| rules | List<String> | 分析中に無効化するルールを表す文字列のリスト。 |
戻り値
AxePlaywrightBuilder
例
次の例は、CollectionsクラスのsingletonListメソッドを使用して単一のルールのアクセシビリティチェックを無効にし、Listを使用して複数のルールを無効にする方法を示します。
// Single Rule
AxePlaywrightBuilder axePlaywrightBuilder1 = new AxePlaywrightBuilder(page)
.disableRules(Collections.singletonList("color-contrast"));
// Multiple Rules
AxePlaywrightBuilder axePlaywrightBuilder2 = new AxePlaywrightBuilder(page)
.disableRules(Arrays.asList("color-contrast", "image-alt"));exclude(String)
HTML要素を分析時に除外するための単一のCSSセレクターを指定します。ページの複数の無関係な部分をスキップするには、それぞれに対してexcludeを一度ずつ呼び出し、その都度単一のセレクターを渡します。
public AxePlaywrightBuilder exclude(String selector);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| セレクター | String |
アクセシビリティ分析に含めない要素を指定するCSSセレクター。 |
戻り値
AxePlaywrightBuilder
例
次の例は、以下の属性を持つ要素を解析から除外する方法を示します。
class="some-class"class="some-other-class"
new AxePlaywrightBuilder(page)
.exclude(".some-class")
.exclude(".some-other-class");exclude(List<String>)
HTML要素を分析時に除外するためのCSS iframeセレクターを指定します。
public AxePlaywrightBuilder exclude(List<String> excludeCSS);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| excludeCSS | List<String> |
CSS iframeセレクター。最後以外のセレクターがiframeの階層の1レベルに対応し、最後のセレクターが最内のiframeの内のスキップする要素に対応します。 |
戻り値
AxePlaywrightBuilder
例
次の例は、CSS iframeセレクターを使用して要素を除外する方法を示します。
// To exclude everything within html of parent-iframe
new AxePlaywrightBuilder(page)
.exclude(Arrays.asList("#parent-iframe", "#html"))exclude(String...)オーバーロードがないため、excludeに複数の文字列を渡すと、個別の除外ではなく単一のiframeセレクターが生成されます。次の呼び出しはexclude(Object...)に解決され、上の例と同じ意味を持ちます。
new AxePlaywrightBuilder(page)
.exclude("#parent-iframe", "#html")exclude(FromFrames)はより明確に同じことを表現し、新しいテストに推奨される形式です。
exclude(FromFrames)
明示的なFromFramesセレクターを使用して、一つ以上のネストしたiframe内の要素を除外します。
public AxePlaywrightBuilder exclude(FromFrames fromFrames);import com.deque.html.axecore.args.FromFrames;を使ってクラスをインポートします。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| fromFrames | FromFrames |
iframeの階層ごとに1つのCSSセレクターから構築され、最内のiframe内でスキップする要素に対応するセレクターが続きます。 |
戻り値
AxePlaywrightBuilder
例
次の例は#payment-frame iframe内のフォームをスキップします。
new AxePlaywrightBuilder(page)
.exclude(new FromFrames("#payment-frame", "form"))exclude(FromShadowDom)
明示的なFromShadowDomセレクターを使用して、一つ以上のネストしたシャドウDOMツリー内の要素を除外します。
public AxePlaywrightBuilder exclude(FromShadowDom fromShadowDom);import com.deque.html.axecore.args.FromShadowDom;を使ってクラスをインポートします。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| fromShadowDom | FromShadowDom |
シャドウホストごとに1つのCSSセレクターから構築され、最内のシャドウルート内でスキップする要素に対応するセレクターが続きます。 |
戻り値
AxePlaywrightBuilder
例
次の例は#searchシャドウルート内にあるフォームをスキップし、.app-headerにアタッチされています。
new AxePlaywrightBuilder(page)
.exclude(new FromShadowDom(".app-header", "form#search"))exclude(Object)
単一のオブジェクトとして供給されたセレクターを除外します。このオーバーロードは、引数の静的タイプが上述のタイプのいずれでもない場合、例えばObjectとして宣言された変数の場合にのみ選択されます。型付きオーバーロードを推奨します。
public AxePlaywrightBuilder exclude(Object selector);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| セレクター | Object |
CSSセレクタ文字列、文字列のリスト、FromFramesセレクタ、またはFromShadowDomセレクタ。 |
戻り値
AxePlaywrightBuilder
exclude(Object...)
通常のCSSセレクタとFromFramesまたはFromShadowDomセレクタを組み合わせたセレクタを、他のオーバーロードでは表現できないケースで除外します。
public AxePlaywrightBuilder exclude(Object... selector);このオーバーロードは、呼び出しが2つ以上の引数を渡すときに選択されます。単一のFromFramesまたはFromShadowDomを渡すと、代わりにexclude(FromFrames)またはexclude(FromShadowDom)が選択されます。
シャドウルート内に存在するiframeに到達するには、FromShadowDomセレクタをFromFramesセレクタの中にネストする必要があります。逆にするとエラーが発生します。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| selector | Object... |
CSSセレクタとセレクタオブジェクトの混合セットが、スキップする要素への単一のパスを形成します。 |
戻り値
AxePlaywrightBuilder
例
次の例では、#frameiframe内の#hostに接続されたシャドウルート内の.targetをスキップします。
new AxePlaywrightBuilder(page)
.exclude("#frame", new FromShadowDom("#host", ".target"))include(String)
分析中に含める単一のCSSセレクタを指定します。ページの複数の無関係な部分をテストするには、それぞれの部分ごとにincludeを1回呼び出し、毎回単一のセレクタを渡します。
public AxePlaywrightBuilder include(String selector);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| selector | String |
アクセシビリティ分析に含められる要素を指定するCSSセレクタ。 |
戻り値
AxePlaywrightBuilder
例
次の例は、2つの異なるクラスを解析に含める方法を示します。例では、メソッドチェーンを使用して複数のCSSクラスを指定する方法が示されています。
new AxePlaywrightBuilder(page)
.include(".some-class")
.include(".some-other-class");include(List<String>)
分析中に含めるCSS iframeセレクタを指定します。
public AxePlaywrightBuilder include(List<String> includeCSS);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| includeCSS | List<String> |
CSS iframeセレクタ。最後を除くすべてのセレクタはiframeネストの1レベルに一致し、最後のセレクタは最も内側のiframe内のテストする要素に一致します。 |
戻り値
AxePlaywrightBuilder
例
次の例は、CSS iframeセレクターを使用して要素を含める方法を示します。
// To include everything within html of parent-iframe
new AxePlaywrightBuilder(page)
.include(Arrays.asList("#parent-iframe", "#html"))include(String...)オーバーロードがないため、includeに複数の文字列を渡すと、個別のincludeではなく単一のiframeセレクタが生成されます。次の呼び出しはinclude(Object...)に解決され、上記の例と同じ意味になります。
new AxePlaywrightBuilder(page)
.include("#parent-iframe", "#html")include(FromFrames)はもっと明示的に同じことを表しており、新しいテストにはこの形式が推奨されます。
include(FromFrames)
明示的なFromFramesセレクタを使用して、1つ以上のネストされたiframe内の要素を含めます。
public AxePlaywrightBuilder include(FromFrames fromFrames);import com.deque.html.axecore.args.FromFrames;を使用してクラスをインポートします。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| fromFrames | FromFrames |
iframeネストの各レベルにつき1つのCSSセレクタで構成され、最も内側のiframe内でテストする要素のセレクタが続きます。 |
戻り値
AxePlaywrightBuilder
例
次の例では、#payment-frameiframe内のフォームをテストします。
new AxePlaywrightBuilder(page)
.include(new FromFrames("#payment-frame", "form"))include(FromShadowDom)
明示的なFromShadowDomセレクタを使用して、1つ以上のネストされたシャドウDOMツリー内の要素を含めます。
public AxePlaywrightBuilder include(FromShadowDom fromShadowDom);import com.deque.html.axecore.args.FromShadowDom;を使用してクラスをインポートします。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| fromShadowDom | FromShadowDom |
各シャドウホストにつき1つのCSSセレクタで構成され、最も内側のシャドウルート内でテストする要素のセレクタが続きます。 |
戻り値
AxePlaywrightBuilder
例
次の例では、.app-headerに接続されたシャドウルート内の#searchフォームをテストします。
new AxePlaywrightBuilder(page)
.include(new FromShadowDom(".app-header", "form#search"))include(Object)
単一のオブジェクトとして提供されるセレクタを含めます。このオーバーロードは、引数の静的型が上記の型のいずれでもない場合にのみ選択されます。例えばObjectとして宣言された変数などです。型指定されたオーバーロードを優先してください。
public AxePlaywrightBuilder include(Object selector);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| selector | Object |
CSSセレクタ文字列、文字列のリスト、FromFramesセレクタ、またはFromShadowDomセレクタ。 |
戻り値
AxePlaywrightBuilder
include(Object...)
通常のCSSセレクタとFromFramesまたはFromShadowDomセレクタを組み合わせたセレクタを、他のオーバーロードでは表現できないケースで含めます。
public AxePlaywrightBuilder include(Object... selector);このオーバーロードは、呼び出しが2つ以上の引数を渡すときに選択されます。単一のFromFramesまたはFromShadowDomを渡すと、代わりにinclude(FromFrames)またはinclude(FromShadowDom)が選択されます。
シャドウルート内に存在するiframeに到達するには、FromShadowDomセレクタをFromFramesセレクタの中にネストする必要があります。逆にするとエラーが発生します。
パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| selector | Object... |
CSSセレクタとセレクタオブジェクトの混合セットが、テストする要素への単一のパスを形成します。 |
戻り値
AxePlaywrightBuilder
例
次の例では、#frameiframe内の#hostに接続されたシャドウルート内の.targetをテストします。
new AxePlaywrightBuilder(page)
.include("#frame", new FromShadowDom("#host", ".target"))setLegacyMode
異なるドメインのフレームやiframeで発生する可能性があるアクセシビリティの問題を除外します。
public AxePlaywrightBuilder setLegacyMode(boolean legacyMode);このAPIは、次のバージョンのAxe DevToolsで削除される予定です。
戻り値
AxePlaywrightBuilder
例
次の例は、レガシーモードをオンにする方法を示します。
new AxePlaywrightBuilder(page)
.setLegacyMode(true);withAxeSource(File)
JavaのFileオブジェクトを使用してカスタムバージョンのaxe-coreを提供します。
public AxePlaywrightBuilder withAxeSource(File file);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| ファイル | File |
axe-coreを実装するJavaScriptを含むファイル。 |
戻り値
AxePlaywrightBuilder
例
次の例は、提供されたバージョンの代わりに異なるファイルをaxe-coreに使用する方法を示しています。これは特殊な場合にのみ行う必要があります。
File axeLegacySource = new File("somepath/axe-core@legacy.js");
new AxePlaywrightBuilder(page)
.withAxeSource(axeLegacySource);withAxeSource(String)
既に解析されたソースを使用してカスタムバージョンのaxe-coreを提供します。
public AxePlaywrightBuilder withAxeSource(String src);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| src | String |
Stringとして表現されるJavaScriptソースファイル。 |
戻り値
AxePlaywrightBuilder
例
次の例は、Stringにファイルを読み込み、それをwithAxeSourceのソースファイルとして使用する方法を示しています。
String source = IOUtils.toString(somepPath.toURI(), StandardCharsets.UTF_8);
new AxePlaywrightBuilder(page)
.withAxeSource(source);withOnlyBestPracticeRules
最良実践ルールセットのみを有効化してアクセシビリティ問題をチェックします。
public AxePlaywrightBuilder withOnlyBestPracticeRules();戻り値
AxePlaywrightBuilder
例
次の例は、最良実践ルールのみでアクセシビリティ分析を有効にする方法を示しています。
new AxePlaywrightBuilder(page)
.withOnlyBestPracticeRules();
withOnlyExperimentalRules
実験的ルールセットのみを有効化してアクセシビリティ問題をチェックします。
public AxePlaywrightBuilder withOnlyExperimentalRules();戻り値
AxePlaywrightBuilder
例
次の例は、実験的ルールのみでアクセシビリティ分析を有効にする方法を示しています。
new AxePlaywrightBuilder(page)
.withOnlyExperimentalRules();
withRules
アクセシビリティ分析中に実行されるルールを指定されたものに限定します。
public AxePlaywrightBuilder exclude(List<String> rules);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| rules | List<String> |
アクセシビリティ分析に使用されるルールのリスト。 |
戻り値
AxePlaywrightBuilder
例
次の例は、withRulesメソッドの2つの異なる使用方法を示しています。最初は1つのルールを含むListを作成し、カラーコントラストです。次に、カラーコントラストと代替テキストのルールを含むListを作成します。
// Single Rule
new AxePlaywrightBuilder(page)
.withRules(Collections.singletonList("color-contrast"));
// Multiple Rules
new AxePlaywrightBuilder(page)
.withRules(Arrays.asList("color-contrast", "image-alt"));withTags
指定されたタグに属するルールセットにアクセシビリティ解析を限定します。
public AxePlaywrightBuilder withTags(List<String> tags);パラメータ
| 名前 | 種類 | 説明 |
|---|---|---|
| タグ | List<String> |
アクセシビリティ解析に含めたいルールを含むタグのリスト。 |
戻り値
AxePlaywrightBuilder
例
この例では、アクセシビリティ解析を指定されたタグに属するルールに限定する方法を示しています。最初のコードスニペットは、wcag21aa仕様の一部であるルールに解析を限定する方法を示しています。2番目のスニペットは、wcag21aa仕様およびbest-practiceルールに解析を限定する方法を示しています。
// Single tag
new AxePlaywrightBuilder(page)
.withTags(Collections.singletonList("wcag21aa"));
// Multiple tags
new AxePlaywrightBuilder(page)
.withTags(Arrays.asList("wcag21aa", "best-practice"));