WatcherのJavaScriptおよびTypeScriptバージョンのAPIリファレンス
@axe-core/watcherパッケージのAPIリファレンス
このリファレンスガイドでは、JavaScriptおよびTypeScript向けに提供されている@axe-core/watcherパッケージ(Axe Watcherまたは単にWatcherと呼ばれる)のAPIについて説明します。
AxeConfigurationインターフェイス
axeプロパティ(設定関数に渡されるパラメータ)は、アクセシビリティテストを設定するAxe Watcher向けの通常のAxeConfiguration変更手段です。以下のプロパティがAxeConfigurationに含まれています:
| 名前 | タイプ | 必須 | 説明 | |
|---|---|---|---|---|
allowedOrigins |
string[] |
無し | クロスオリジンの<iframe>要素のコンテンツを分析するために、分析すべきオリジンを列挙します。同一オリジンのフレームは常に分析されます。ワイルドカードはサポートされていません。デフォルトでは設定されておらず、クロスオリジンのフレームは分析されません。 |
|
apiKey |
string(UUIDを含む) |
はい | あなたの個人APIキーの秘密。 | |
autoAnalyze |
boolean |
無し | ウォッチャーがページのアクセシビリティ分析を自動的に実行するかどうか。デフォルト値はtrueです。 |
|
buildID |
string |
無し | デフォルト値はnullであり、単一プロセス(非並列)テスト実行に推奨されます。並列実行のテストの場合、すべてのワーカーが同じ非ヌルbuildID文字列を持つべきです。 |
|
configurationOverrides |
ConfigurationOverrides |
無し | の上書きを許可します。を上書きすることができます。 | |
elementInternals |
boolean |
無し | カスタム要素の ElementInternals サポートを有効にします。trueの場合、Watcher はElementInternals APIを使用して設定されたARIAロールとプロパティを収集し、attachInternals()を使用するカスタム要素のあるページでの誤検出を減少させます。axe-core バージョン4.12.0以降が必要です。デフォルト値はfalseです。 |
|
excludeUrlPatterns |
string[] |
無し | 指定されたminimatchパターンに一致するURLをスキャン対象から除外します。 | |
git |
`boolean | GitConfig` | 無し | Gitメタデータ収集を制御します。デフォルトはtrue(自動検出)です。無効にするにはfalseを設定するか、GitConfigオブジェクトを提供して明示的なメタデータを指定します。 |
projectId |
string(UUIDを含む) |
はい | Watcherテスト実行の結果を受け取るためのプロジェクトID。 | |
runContext |
axe.ElementContext |
無し | axe-coreに渡されます。 | |
runOptions |
RunOptions |
無し | axe-coreに渡されます。 | |
serverURL |
string |
無し | 結果を送信するAxe Developer Hubサーバーを設定します。組織が地域インスタンス、プライベートクラウド、またはオンプレミス展開を使用している場合に設定してください。デフォルトはhttps://axe.deque.comです。 |
|
sessionId |
string |
無し | 非推奨。このインスタンスのセッションIDです。この値を変更する必要があることはめったにありません。代わりにbuildIdを参照してください。 |
|
testingTypes |
string[] |
無し | Cypressを使用して、コンポーネントまたはエンドツーエンドテスト(または両方)を指定するため | |
timeout |
Timeouts |
無し | Timeoutsオブジェクトは、指定されたコントローラーメソッドがタイムアウトして失敗するまでのミリ秒を表します。 |
allowedOrigins
(オプション)Axe Watcherが分析するクロスオリジンの<iframe>コンテンツのオリジンを列挙します。Watcher 4.6.0以降が必要です。
デフォルトでは、同一オリジンのフレームのみが分析され、クロスオリジンのフレーム内のアクセシビリティ問題は結果から完全に除外されます。名前を指定したオリジンのためにallowedOriginsを設定します:
axe: {
allowedOrigins: [ 'https://pay.example.com', 'https://docs.example.com' ]
}自分のアプリケーションのオリジンは常に許可されているため含めないでください。カバーしたい埋め込みオリジンのみを列挙してください。
各エントリは、元オリジンのみでなければなりません:スキーム(httpまたはhttps)、ホスト、そしてオプションのポート。ワイルドカードはサポートされていません。Watcherは、設定が読み込まれるときにエラーをスローして、使用できないエントリを拒否します。それによって実行が続行されて何も分析されないという事態を避けます。
allowedOriginsが空でない配列に設定されている場合、デフォルトのanalyzeとflushタイムアウトは5000msではなく10000msになります。明示的に設定した値は依然として優先されます。空の配列は、オプションが設定されていない場合と同様に動作します。
Watcherは、このオプションを設定したかどうかにかかわらず、スキップされたクロスオリジンのフレームをデバッグ出力に報告するため、何も設定する前に結果から欠落している埋め込みを確認できます。
クロスオリジンiframeを分析を参照して、信頼すべきオリジンやWatcherが受け入れるエントリーの書き方、カバレッジ診断の読み方、分析時間への影響、コンテンツ内でのやり取り後に許可されたフレームが自動的に再分析されない理由について理解してください。
apiKey
(必須)apiKey値は、apiKeyとprojectIdという2つのプロパティのうちの1つであり、AxeConfigurationに設定する必要があります。その値はAPIキー管理ページから取得できます。
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY
}autoAnalyze
(オプション)ページが自動的に分析されないように、この値をfalseに設定します。手動モードの詳細については、スキャンの管理を参照してください。
axe: {
autoAnalyze: false
}buildID
(オプション)buildID プロパティがnullではない場合、並列テストランナーがAxe Developer Hubで単一のテストランとして表示される結果を生成できるようになります。並列テストの実行では、各テストランナーは同じ非ヌルのbuildID文字列を共有し、これによって各テストの実行結果が同じbuildIDとGit commit SHAに対する既存の結果と連結されます。ただし、buildIDがnullである場合、複数のテストは同じGit commit SHAを持つ既存の結果を既存の結果をします。
さまざまな継続的インテグレーションプロバイダーで並列でのテスト実行を使用する方法の詳細については、buildIDを参照してください。
axe: {
buildID: process.env.CI_BUILD_ID
}configurationOverrides
(オプション)グローバル設定で設定された値を上書きします。詳細は構成オーバーライドインターフェースを参照してください。
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA',
bestPractices: true
}
}elementInternals
ElementInternalsサポートはaxe-coreで実験的であり、変更される可能性があります。現在の制限事項と開発状況については、axe-core ElementInternals ドキュメントを参照してください。
(オプション)trueの場合、Watcher はElementInternals APIを使用してattachInternals()を使用するカスタム要素からARIAロールとプロパティを収集します。これにより、インタラクティブコンポーネント用のカスタム要素を使用するページでの誤検出が減少します。axe-core バージョン4.12.0以降が必要です。
axe: {
elementInternals: true
}excludeUrlPatterns
(オプション)excludeUrlPatterns配列内のminimatchパターンのいずれかと一致するURLが分析されないようにします。
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}分析から除外するURLでは、一致を確認するためのURLと例のパターンの表を見つけることができます。
git
(オプション)Watcherが現在のテスト実行のGitメタデータを収集する方法を制御します。次の3つの値のいずれかを受け入れます:
true(デフォルト): Watcherは、ローカルGitバイナリを使用してGit情報(ブランチ、コミットSHA、著者、その他のフィールド)を自動的に収集します。false: すべてのGitメタデータ収集を無効にします。Gitがない環境で実行する場合や、Gitデータの収集が不要な場合に使用してください。プロジェクトがすでにGitに固定されている場合、これによりGitなしのセッションを作成するのではなく、実行が拒否されるようになります。詳細は実行が拒否されましたを参照してください。GitConfigオブジェクト: 明示的なGitメタデータを提供し、自動検出を完全にスキップします。省略したフィールドはすべてnullにデフォルトされます。テストが被テストリポジトリと別のリポジトリで実行されている場合や、CI環境でGitの自動検出が信頼できない場合に使用します。
詳細についてはGitメタデータの提供を参照してください。
GitConfigオブジェクトには以下のフィールドがあります:
| フィールド | タイプ | Gitful | 説明 |
|---|---|---|---|
branch |
string |
はい | 現在のブランチ名 |
commitAuthor |
string |
無し | 著者の表示名。省略された場合、Axe Developer Hubでは著者が利用不可として表示されます。 |
commitEmail |
string |
無し | 著者のメールアドレス。 |
commitMessage |
string |
無し | 完全なコミットメッセージ。省略された場合、Axe Developer Hubではコミットメッセージが利用不可として表示されます。 |
commitSha |
string |
はい | フルまたは省略されたコミットハッシュ |
defaultBranch |
string |
無し | デフォルトブランチ名(例: main)。このフィールドがないと、Axe Developer Hubはどのブランチがデフォルトかを識別できないため、デフォルトブランチとの比較ができません。 |
isDirty |
boolean |
無し | 未コミットの変更が存在する場合はtrue。省略時のデフォルトはfalseです。 |
tag |
string |
無し | 現在のタグ(例: v1.2.3) |
url |
string |
はい | リポジトリのリモートURL |
branch、commitSha、およびurlはgitfulフィールドです。プロジェクトがまだデータの形状にロックされていない場合、3つすべてが含まれていないセッションはGitlessとして記録され、以降プロジェクトはGitlessにロックされます。一度プロジェクトがGitにロックされると、3つのうちどれかが欠けているセッションは吸収時に拒否されます:結果は保存されません。拒否メッセージとその解決方法については実行が拒否されました:データの形状またはリポジトリがプロジェクトに一致していませんを参照してください。残りのフィールドはオプションです。
CI環境変数を使用した明示的なGitメタデータの供給例:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_PROJECT_ID,
git: {
commitSha: process.env.GIT_COMMIT,
branch: process.env.GIT_BRANCH,
url: process.env.GIT_URL,
commitAuthor: process.env.GIT_AUTHOR_NAME,
commitEmail: process.env.GIT_AUTHOR_EMAIL,
commitMessage: process.env.GIT_COMMIT_MESSAGE,
defaultBranch: 'main'
}
}projectId
(必須)Watcherのアクセシビリティ結果を受け取るプロジェクトIDを指定します。プロジェクトIDは、新しいプロジェクトを作成する際の指示に表示されます。また、Axe Developer Hubプロジェクトページで確認することもできます。
axe: {
projectId: process.env.AXE_PROJECT_ID
}runContext
(オプション)ページのアクセシビリティ分析に含める要素と除外する要素を選択できます。
runContextを使用して分析に含める要素を選択すると(単一のCSSセレクタ、CSSセレクタの配列、またはincludeプロパティを使用)、Axe Developer Hubは選択された要素のみをを分析します。したがって、CSSクラスセレクタのスペルミスなどで要素が選択されなかった場合、何も分析されず、さらに重要なことにページ状態もキャプチャされません。
runContextの値は次のようになります:
-
分析に含める要素の単一のCSSセレクター:
axe: { runContext: '.main' } -
分析に含める要素のCSSセレクターの配列:
axe: { runContext: [ '.main', '.text-block' ] } -
includeおよびexcludeプロパティを含むコンテキストオブジェクト(上記の例のように)。includeまたはexclude、またはその両方を指定できます。各include、またはexcludeは単一のCSSセレクタまたはCSSセレクタの配列であり得ます:axe: { runContext: { include: '.main', exclude: '.ad-section' } }
詳細はaxe-coreコンテキストドキュメントで入手できます。
runOptions
(オプション)runOptionsオブジェクトは、axe-core Optionsタイプのプロパティのサブセットを次のとおり許可します:
-
ancestry: デフォルトはfalseです。trueの場合、CSSセレクタに返された要素の祖先要素も含まれます。importantページが動的なIDまたはクラスを使用する場合(ページが再読み込みされるたびに変更される要素IDまたはクラス)、アクセシビリティの問題が重複しているかどうかを追跡できますかを正しく検出して追跡するように、
ancestryをtrueとして指定する必要があります。というのも、デフォルトではAxe Developer Hubはテスト実行間で要素のIDとクラスが同じままであると想定しているからです。ancestryがtrueの場合、Axe Developer Hubは代わりにDOMツリー内の要素の位置を使用して、テスト実行間で同じ要素を特定します。次の例は、
ancestryがfalseの場合のセレクタを示しています。iframe要素のIDがmain-iframeの場合(<iframe id="main-iframe" ...>):iframe#main-iframeancestryがtrueの場合、セレクタにはルート要素からの全パスが含まれ、IDやクラスは指定されません:html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe -
runOnly: これは、実行するルールを名前またはタグを指定することで制限できるようにします。詳細については、以下のrunOnlyを参照してください。 -
rules:enabledプロパティを使用してルールを有効化または無効化します。詳細については、以下のrulesを参照してください。
次の例はrunOptionsの例を示しています:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: [ 'wcag2a' ]
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}runOnly
runOnlyを使用することは高度な使用法とみなされ、runOnly(またはrules)を使用すると、。します。
runOptions.runOnlyとconfigurationOverridesの両方を使用することはできません。さもなくば、エラーを受け取りますを受け取ります。
runOnly 値(runOptions オブジェクトの一部)は、次のいずれかになります:
-
アクセシビリティ分析に使用したいルールのルールIDを表す文字列:
axe: { runOptions: { runOnly: 'ruleId' } } -
使用したいルールのルールIDを表す文字列の配列:
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } } -
typeとvaluesプロパティを持つオブジェクト。type値は文字列で、rule、rules、tag、またはtagsになることがあります。valuesプロパティは、アクセシビリティ分析に使用したいルールまたはタグを表す文字列の配列でなければなりません。以下の例は、runOnlyオブジェクトを使用して、wcag2aとしてタグ付けされたルールにアクセシビリティテストを制限する方法を示しています:axe: { runOptions: { runOnly: { type: 'tag', values: [ 'wcag2a' ] } } }
runOnlyの使用例については、オプションパラメータの例 を参照してください (axe-core と一緒に)。- 利用可能なタグ値についての詳細は、axe-coreのタグ を参照してください。
- ルール、ルールID、およびタグに関する情報は、ルールの説明 を参照してください。
rules
rules 値(runOptions オブジェクト上)は、分析中に特定のルールを有効にする(enabled: true)または無効にする(enabled: false)ことを可能にします。以下のように:
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}serverURL
(オプション)アクセシビリティ結果を送信するAxe Developer HubサーバーのURL。デフォルトは https://axe.deque.com です。
axe.deque.com でプロジェクトを作成した場合、この値を設定する必要はありません。ただし、組織が地域インスタンス、プライベートクラウド、またはAxe Developer Hubのオンプレミス展開を使用している場合は、serverURL にそのインスタンスの基本URLを設定してください:
axe: {
apiKey: process.env.ACCESSIBILITY_API_KEY,
projectId: process.env.PROJECT_ID,
serverURL: process.env.SERVER_URL // e.g., 'https://axe-eu.deque.com'
}sessionId
(オプション)sessionId プロパティは廃止されており、使用すべきではありません。上記の buildID を参照してください。
testingTypes
(オプション)testingTypes プロパティは、Cypressで使用するためのコンポーネントまたはe2e(エンドツーエンド)テスト(または両方)を指定するための文字列の配列です。
axe: {
testingTypes: ['e2e', 'component']
}timeout
(オプション)AxeConfiguration の中の Timeouts 型の timeout オブジェクトは、各コントローラーメソッド(またはCypress用のカスタムコマンド)のタイムアウト値をミリ秒単位で設定します。(コントローラークラスについての情報はコントローラークラス、Cypressカスタムコマンドについての情報はCypressカスタムコメント を参照してください。)タイムアウトが過ぎると、テストはタイムアウトが超過したことを示すメッセージで失敗します。このエラーを避けるためにタイムアウトを増やすことができます。
これらのタイムアウト値は使用しているテストフレームワークとは無関係であり、そのフレームワークに対してもタイムアウト値を増加させる必要があるかもしれません。
この例では、analyze のタイムアウトを8秒、flush を15秒、start を10秒、stop を10秒に設定しています。(デフォルト値は Timeouts インターフェイス の下のテーブルに示されています。)
axe: {
timeout: {
analyze: 8000,
flush: 15000,
start: 10000,
stop: 10000,
}
}設定関数
Watcherによって提供される設定機能を使用すると、指定されたテストフレームワークのためのセットアップの変更や、ニーズに合わせたWatcherの実行方法の調整が可能です。詳細については、AxeConfigurationインターフェース を参照してください。
| テストフレームワーク | 設定関数 |
|---|---|
| **Cypress** | cypressConfig |
| Playwright | playwrightConfig |
| Playwright Test | playwrightTest |
| Puppeteer | puppeteerConfig |
| WebdriverIO | wdioConfig |
| WebdriverIO Testrunner | wdioTestRunner |
| WebDriverJS | webdriverConfig |
cypressConfig
Cypressの設定を作成します。
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptionscypressConfigパラメーター
-
config:Cypress.ConfigOptions & ConfigurationCypress.ConfigOptionsとConfigurationの交差型。
戻り値: Cypress.ConfigOptions
cypressConfig例
import { defineConfig } from 'cypress'
import { cypressConfig } from '@axe-core/watcher/cypress/config'
export default defineConfig(
cypressConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightConfig
Playwrightの設定を作成します。
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptionsplaywrightConfigパラメーター
-
opts:Configuration & LaunchOptionsLaunchOptionsとConfigurationの交差型。
戻り値: LaunchOptions
playwrightConfig例
import { chromium } from 'playwright'
import { playwrightConfig } from '@axe-core/watcher/playwright'
const browserContext = await chromium.launchPersistentContext(
'',
playwrightConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightTest
Playwright Testの設定を作成します。
playwrightTest(options: Options): ReturnValueplaywrightTestパラメーター
-
options:OptionsOptionsはConfigurationとLaunchOptionsの交差型です。
戻り値: ReturnValue
playwrightTest例
// fixtures.ts
import { playwrightTest } from '@axe-core/watcher/playwright-test'
export default playwrightTest({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})puppeteerConfig
Puppeteerの設定を作成します。
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): OptionspuppeteerConfigパラメーター
-
opts:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptionsLaunchOptions、BrowserLaunchArgumentOptions、BrowserConnectOptions、Configurationの交差型。
戻り値: Options
puppeteerConfig例
import puppeteer from 'puppeteer'
import { puppeteerConfig } from '@axe-core/watcher/puppeteer'
const browser = await puppeteer.launch(
puppeteerConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)wdioConfig
WebdriverIOの設定を作成します。
wdioConfig({ axe, ...options}: Options): RemoteOptionswdioConfigパラメーター
-
arg:OptionsOptionsはRemoteOptionsとConfigurationの交差型です。
戻り値: RemoteOptions
wdioConfig例
import { remote } from 'webdriverio'
import { wdioConfig } from '@axe-core/watcher/wdio'
const browser = await remote(
wdioConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
capabilities: { browserName: 'chrome' }
})
)wdioTestRunner
WebdriverIO Testrunnerの設定を作成します。
wdioTestRunner(...params: unknown[]): Options.TestrunnerwdioTestRunnerパラメーター
-
params:unknown[]params値は次のいずれかです:- 1つの値を含む配列で、
Options.TestrunnerとConfigurationの交差型です。 - 最初の配列値が
AxeConfiguration、そして2番目の値がOptions.Testrunnerである配列。
- 1つの値を含む配列で、
戻り値: Options.Testrunner
wdioTestRunner例
import { wdioTestRunner } from '@axe-core/watcher/wdio'
export const config = wdioTestRunner({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})webdriverConfig
Selenium WebDriverの設定を作成します。
webdriverConfig(arg: WebDriverArgs): OptionswebdriverConfigパラメーター
-
arg:WebDriverArgsConfigurationにSelenium WebDriverOptionsメンバーを含めるよう拡張されました。
戻り値: Options
webdriverConfig例
import { Builder } from 'selenium-webdriver'
import { Options } from 'selenium-webdriver/chrome'
import { webdriverConfig } from '@axe-core/watcher/webdriver'
const options = new Options()
const browser = await new Builder()
.forBrowser('chrome')
.setChromeOptions(
webdriverConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
options
})
)
.build()Configurationインターフェイス
このConfigurationインターフェイスは設定関数と共に使用され、1つのプロパティを含みます:
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
axe |
AxeConfiguration |
はい | あなたのテストフレームワークの設定関数に渡されるAxeConfiguration。 |
すべての設定関数はこのaxeプロパティを使用して、ウォッチャーをセットアップし、アクセシビリティテストを設定できるようにします。詳細については、上記のAxeConfigurationインターフェースセクションを参照してください。
ConfigurationOverridesインターフェイス
このConfigurationOverridesインターフェイスは、個々のテスト実行のために組織のグローバル設定を上書きすることを可能にします。このプロパティは、企業のグローバル設定で定められた権限に従って使用しなければなりません。
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
accessibilityStandard |
string |
無し | 従うべきアクセシビリティ基準 |
axeCoreVersion |
string |
無し | 使用すべきaxe-coreのバージョンを示します。 |
bestPractices |
boolean |
無し | ベストプラクティスのルールに従うかどうかを指定します。 |
experimentalRules |
boolean |
無し | 実験的なルールに従うかどうか |
accessibilityStandard
テストするアクセシビリティ標準を設定します。利用可能なオプション:
- 「All」 - すべての利用可能な標準に対してテストします
- 「WCAG 2.2 AAA」
- 「WCAG 2.2 AA」
- 「WCAG 2.2 A」
- 「WCAG 2.1 AAA」
- 「WCAG 2.1 AA」
- 「WCAG 2.1 A」
- 「WCAG 2.0 AAA」
- 「WCAG 2.0 AA」
- 「WCAG 2.0 A」
- 「Trusted Tester v5」
- 「EN 301 549」
- 「RGAAv4」 - RGAA バージョン4(フランスのアクセシビリティ標準; axe-core 4.11.0 以降が必要)
貴社はこの設定がグローバル設定でオーバーライドされることを許可する必要があり、選択された標準は許可されたオプションの中に含まれていなければなりません。
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA'
}
}axeCoreVersion
テストに使用する axe-core のバージョンを指定します。利用可能なオプションには以下が含まれます:
- 「最新」 - 現在 Axe Watcher にバンドルされている最新のサポートバージョン
- 4.4.0以降の特定のバージョン(例: 「4.10.2」、「4.9.1」など)
貴社はこの設定がグローバル設定でオーバーライドされることを許可する必要があり、選択されたバージョンは許可されたオプションの中に含まれていなければなりません。
axe: {
configurationOverrides: {
axeCoreVersion: 'latest'
}
}bestPractices
テスト実行のためにベストプラクティスルールを有効化または無効化します。ベストプラクティスはアクセシビリティを向上させますが、正式な標準の一部ではありません。これが効果を発揮するためには、組織がこの設定の上書きを許可する必要があります。
axe: {
configurationOverrides: {
bestPractices: true
}
}experimentalRules
テスト実行のために実験的ルールを有効化または無効化します。実験的なルールはまだ開発中であり、誤検知を引き起こす可能性があります。これが効果を発揮するためには、組織がグローバル設定でこの設定の上書きを許可する必要があります。
axe: {
configurationOverrides: {
experimentalRules: true
}
}Controllerクラス
次のクラスはController抽象クラスを拡張し、ウェブサイトのページのアクセシビリティ分析を手動で制御できるようにします。
| テストフレームワーク | 名前 |
|---|---|
| Playwright および Playwright Test | PlaywrightController |
| Puppeteer | PuppeteerController |
| WebdriverIO および WebdriverIO Testrunner | WdioController |
| WebDriverJS | WebdriverController |
Cypressにおいては、*Controllerクラスのメソッドがカスタムコマンドとして実装されています。詳細についてはCypress用のコントローラカスタムコマンドを参照してください。
Controller
abstract class ControllerこのController抽象クラスにはページ分析を制御するためのメソッドが含まれています。このクラスを拡張するすべての具体的なクラスでは、以下のメソッドが利用可能です。
フレームコンテキスト:テストがswitchToFrame()(WebdriverIOまたはWebDriverJS)を使用してブラウザのコンテキストを子フレームに切り替えた場合、Axe Watcherは子フレームで行った操作中のページ状態をキャプチャしません。Axe Watcherは、ブラウザのコンテキストがトップレベルフレームにあるときのみページ状態をキャプチャします。ページ状態のキャプチャを再開するには、トップレベルフレームに戻ります(例えば、WebdriverIOのswitchToParentFrame()やWebDriverJSのdriver.switchTo().defaultContent()を使用)。詳細については子フレームに切り替えた後にページ状態がキャプチャされないを参照してください。
analyze
analyze(): Promise<void>現在のページをアクセシビリティエラーのために分析します。このメソッドは、ウェブページの分析準備を整えた後(フォームに値を入力するなど)、stopメソッドを使用するか、autoAnalyzeをfalseに設定して自動分析をオフにした後に呼び出します。
analyze戻り値
Promise<void>
analyze例
await controller.analyze()analyze同等のCypressコマンド
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>アクセシビリティスキャンの結果をすべてAxe Developer Hubに送信します。テスト実行の最後にこのメソッドを呼び出し、結果がDequeのAxe Developer Hubサーバーに送信されたことを確認してください。
flush戻り値
Promise<void>
flush例
await controller.flush()flush同等のCypressコマンド
cy.axeWatcherFlush()
start
start(): Promise<void>ウェブページの自動解析を再開します。ウェブページのアクセシビリティエラーを自動解析したいときにこのメソッドを呼び出します。
start戻り値
Promise<void>
start例
await controller.start()start同等のCypressコマンド
cy.axeWatcherStart()
stop
stop(): Promise<void>ウェブページの自動分析を停止します。stopメソッドを呼び出した後、ウェブページに必要な追加のセットアップを行い、analyzeメソッドを呼び出してページのアクセシビリティエラーを確認します。
stop戻り値
Promise<void>
stop例
await controller.stop()stop同等のCypressコマンド
cy.axeWatcherStop()
PlaywrightController
このPlaywrightControllerクラスは、PlaywrightおよびPlaywright Testを使用してテスト実行のアクセシビリティ分析を手動で制御できるようにします。自動アクセシビリティ分析の開始や停止、追加の設定が必要なページを分析できます。
Playwrightに関する詳細については、Playwrightのドキュメントを参照してください。
コンストラクタ
new PlaywrightController(driver: Page): PlaywrightControllerパラメータ
driver:Page
このdriver値はPlaywrightのPageオブジェクトです。
PlaywrightControllerを返します
PlaywrightController例
import { PlaywrightController, wrapPlaywrightPage } from '@axe-core/watcher/playwright'
let page = await browserContext.newPage()
const controller = new PlaywrightController(page)
page = wrapPlaywrightPage(page, controller)抽象基本クラスで実装されているメソッドについてはControllerを参照してください。
PuppeteerController
このPuppeteerControllerクラスは、Puppeteerを使用したテスト実行を手動で制御することを可能にします。手動制御により、より複雑なウェブページが必要とする追加のセットアップを提供できます。
Puppeteerに関する詳細については、Puppeteerを参照してください。
コンストラクタ
new PuppeteerController(driver: Page): PuppeteerControllerパラメータ
driver:Page
このdriver値はPuppeteerのPageオブジェクトです。
PuppeteerControllerを返します
PuppeteerController例
import { PuppeteerController, wrapPuppeteerPage } from '@axe-core/watcher/puppeteer'
let page = await browser.newPage()
const controller = new PuppeteerController(page)
page = wrapPuppeteerPage(page, controller)抽象基本クラスで実装されているメソッドについてはControllerを参照してください。
WdioController
このWdioControllerは、WebdriverIOおよびWebdriverIO Testrunnerのテスト実行を手動で制御することを可能にします。追加のセットアップや構成が必要なページに対しては、自動テストを停止し、そのようなセットアップを必要とする各ページを手動で分析できます。
コンストラクタ
new WdioController(driver: Browser): WdioControllerパラメータ
driver:Browser
WdioControllerを返します
WdioController例
import { WdioController, wrapWdio } from '@axe-core/watcher/wdio'
// browser is the WebdriverIO Browser instance from your wdioConfig() setup
const controller = new WdioController(browser)
wrapWdio(browser, controller)抽象基本クラスで実装されているメソッドについてはControllerを参照してください。
WebdriverController
コンストラクタ
new WebdriverController(driver: WebDriver): WebdriverControllerパラメータ
driver:WebDriver
このdriver値はSeleniumのWebDriverオブジェクトです。
WebdriverControllerを返します
WebdriverController例
import { WebdriverController, wrapWebdriver } from '@axe-core/watcher/webdriver'
// browser is the Selenium WebDriver instance from your webdriverConfig() setup
const controller = new WebdriverController(browser)
browser = wrapWebdriver(browser, controller)抽象基本クラスで実装されているメソッドについてはControllerを参照してください。
Cypressカスタムコマンド
Cypressブラウザ自動化プラットフォームでは、*Controllerクラスのメソッドがカスタムコマンドとして実装されています。カスタムコマンドの実装と使用についての詳細は、Cypressのドキュメンテーションサイトのカスタムコマンドをご覧ください。
以下のカスタムコマンドが実装されています。各カスタムコマンドは、他のCypressコマンドと連結できるようにChainable<void>を返します。
| コントローラーメソッド | 同等のCypressカスタムコマンド |
|---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
Watcher 3.9.0以降、axeAnalyze()、axeFlush()、axeStart()、axeStop()の4つのCypressカスタムコマンドは非推奨とされ、使用しないでください。
Watcherと@axe-devtools/cypressパッケージを使用している場合、少なくともWatcherのバージョン3.9.0以上にアップグレードする必要があります。非推奨のカスタムコマンドが@axe-devtools/cypressのカスタムコマンドと競合するためです。
Cypressコマンド例
次の例は、@axe-core/watcherパッケージからAxe Developer HubのCypressコマンドをインポートし、各テストの最後にaxeWatcherFlushコマンドをコールする方法を示しています(afterEach()内に配置します)。
// Import the axe-watcher commands.
require('@axe-core/watcher/cypress/support')
// Flush Axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})タイムアウトインターフェース
AxeConfigurationインターフェース内のタイムアウト型のタイムアウトオブジェクトは、それぞれのコントローラ関数やCypressのカスタムコマンドに対してタイムアウト値(ミリ秒単位)を変更できるようにします。
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}| 名前 | タイプ | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| 解析 | 数値 | 無し | 5000 | analyzeコントローラ関数またはaxeWatcherAnalyzeカスタムコマンド(Cypress内)のタイムアウトをミリ秒で設定します。allowedOriginsが空でない配列に設定されている場合、デフォルトは10000です。 |
| フラッシュ | 数値 | 無し | 5000 | flushコントローラ関数またはaxeWatcherFlushカスタムコマンド(Cypress内)のタイムアウトをミリ秒で設定します。allowedOriginsが空でない配列に設定されている場合、デフォルトは10000です。 |
| 開始 | 数値 | 無し | 2000 | startコントローラ関数またはCypressにおけるaxeWatcherStartカスタムコマンドのタイムアウトをミリ秒単位で設定します。 |
| 停止 | 数値 | 無し | 5000 | stopコントローラ関数またはCypressにおけるaxeWatcherStopカスタムコマンドのタイムアウトをミリ秒単位で設定します。 |
