WatcherのJavaScriptおよびTypeScriptバージョンのAPIリファレンス

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

@axe-core/watcherパッケージのAPIリファレンス

Not for use with personal data

このリファレンスガイドは、 @axe-core/watcher パッケージ(別名 Axe Watcher または単に Watcher)がJavaScriptおよびTypeScript向けに提供するAPIを説明します。

AxeConfiguration インターフェース

この axe プロパティ( 設定関数に渡されるパラメータ)は、 AxeConfiguration Axe Watcherを使用してアクセシビリティテストを設定するための一般的な手段です。以下のプロパティが含まれています AxeConfiguration

名称 必須 説明
apiKey string (UUIDを含む) はい あなたの個人APIキーの秘密。
autoAnalyze boolean いいえ Watcherが自動でページ上のアクセシビリティ分析を行うかどうか。デフォルトの値は trueです。
buildID string いいえ 標準の値は nullであり、シングルプロセス(非並行)テスト実行に推奨されます。並行テスト実行では、すべてのワーカーが同じ非nullの buildID 文字列を持つ必要があります。
configurationOverrides ConfigurationOverrides いいえ グローバル設定 の上書きを許可します。
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 いいえ 結果を送信するためのDeveloper Hubサーバーです。この値を変更する必要があることは稀です。
sessionId string いいえ 非推奨。このインスタンスのセッションID。これを変更する必要があることは稀です。代わりに次を参照してください。 buildId
testingTypes string[] いいえ Cypressを使用して、コンポーネントまたはエンドツーエンドテスト(または両方)を指定するため
timeout Timeouts いいえ 指定された Timeouts メソッドがタイムアウトして失敗するまでのミリ秒を表すオブジェクト コントローラー です。

apiKey

(必須)この apiKey 値は、次の2つのプロパティのうちの1つで、apiKeyprojectIdでなければなりません。 AxeConfiguration。その値は APIキー管理ページ から取得できます。

autoAnalyze

(オプション)この値を false に設定することで、ページが自動的に分析されるのを防ぎます。手動モードに関する詳細については、 スキャンの管理を参照してください。

buildID

(オプション)この buildID プロパティを使用しないと、 null複数のテストランナーが結果を生成して、axe Developer Hubで単一のテスト実行として表示されます。並列テスト実行の場合、各テストランナーは同じ非nullの buildID 文字列を共有し、それによって各テスト実行がその結果を同じ buildID およびGitコミットSHAに対する既存の結果と連結します。しかし、 buildID のとき、 null複数のテスト実行が 既存の結果を 同じGitコミットSHAを使って上書きします。

詳細については、次を参照してください。 並列でのテスト実行 を行う方法についての情報を知るために、多くの継続的インテグレーションプロバイダーで buildID を使用する方法について。

configurationOverrides

(オプション)グローバル構成で設定されている値を上書きします。 グローバル構成を参照してください。 構成オーバーライドインターフェース についての詳細情報。

excludeUrlPatterns

(オプション) minimatch パターンのいずれかに一致するURLが分析されるのを防ぎます。 excludeUrlPatterns 配列内の

axe: {
  excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}

分析から除外するURL セクションに、URLとマッチ確認用の例のパターンのテーブルがあります。

git

(オプション)Watcherが現在のテスト実行のGitメタデータを収集する方法を制御します。次の3つの値のいずれかを受け入れます:

  • true (デフォルト):WatcherはローカルGitバイナリを使用してGit情報(ブランチ、コミットSHA、著者、およびその他のフィールド)を自動的に収集します。
  • false:すべてのGitメタデータの収集を無効にします。Gitがない環境で実行する場合やGitデータの収集が不要な場合に使用してください。
  • A GitConfig オブジェクト:明示的なGitメタデータを提供し、自動検出を完全にスキップします。省略したフィールドはデフォルトで nullに設定されます。テストが別のリポジトリで実行される場合や、CI環境でGitの自動検出が信頼できない場合に使用してください。

詳細については、 Gitメタデータの提供 を参照してください。

その GitConfig オブジェクトには、以下のオプションフィールドがあります:

フィールド タイプ 説明
branch string 現在のブランチ名
tag string 現在のタグ(例: v1.2.3
defaultBranch string デフォルトブランチ(例: main
commitSha string フルまたは省略されたコミットハッシュ
commitAuthor string 著者の表示名
commitEmail string 著者のメールアドレス
commitMessage string フルコミットメッセージ
url string リポジトリのリモートURL
isDirty boolean true 未コミットの変更がある場合。省略時はデフォルトで false に設定されます。

CI環境変数を使用した明示的なGitメタデータの供給例:

axe: {
  apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
  projectId: '<your-project-id>',
  git: {
    commitSha: process.env.GIT_COMMIT,
    branch: process.env.GIT_BRANCH,
    defaultBranch: 'main'
  }
}

projectId

(必須)プロジェクトIDを指定し、Watcherのアクセシビリティ結果を受け取ります。新しいプロジェクトを作成した際にプロジェクトIDが表示されます。また、 axe Developer Hub プロジェクトページ からも取得できます。

runContext

(オプション)ページのアクセシビリティ分析に含める要素と除外する要素を選択できます。

important

を使用して、 runContext 単一のCSSセレクター、CSSセレクターの配列、または include プロパティを通じて分析対象の要素を選択すると、Axe Developer Hubは 選択された要素のみを分析します。そのため、要素が選択されていない場合(例えば、CSSクラスセレクターの誤字により)、分析は行われず、さらに重要な点として、 ページ状態もキャプチャされません

の値には次の選択肢があります: runContext

  1. 分析に含める要素の単一のCSSセレクター:

    axe: {
      runContext: '.main'
    }
  2. 分析に含める要素のCSSセレクターの配列:

    axe: {
      runContext: [ '.main', '.text-block' ]
    }
  3. を含むコンテキストオブジェクト: include および exclude プロパティ(上記の例の通り)。 includeexclude のいずれかまたは両方を指定します。それぞれの includeexclude は、単一の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が正しく検出し、アクセシビリティの問題が 重複しているかどうかを追跡できます 。デフォルトでは、Axe Developer Hubは、テストの実行間で要素のIDとクラスが同じままであることを期待します。

    ancestry の場合、 trueAxe Developer Hubは代わりに、DOMツリー内の要素の位置を使用して、テストの実行間で同じ要素を特定します。

    以下は、 ancestryfalse の場合のセレクターの例を示しています。 main-iframe IDを持つiframe要素<iframe id="main-iframe" ...>

    iframe#main-iframe

    ): ancestrytrueの場合、セレクターにはルート要素からの全パスが含まれ、IDやクラスは指定されません:

    html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe
  • runOnly:これにより、名前やタグを指定して実行するルールを制限できます。詳細は下記の runOnly を参照してください。

  • rulesenabled プロパティを使ってルールを有効または無効にします。 rules 詳細は下記を参照してください。

以下は、 runOptionsの例を示しています:

axe: {
  runOptions: {
    ancestry: true,
    runOnly: {
      type: 'tag',
      values: [ 'wcag2a' ]
    },
    rules: {
      'ruleId1': { enabled: false },
      'ruleId2': { enabled: false }
    }
  }
}

runOnly

important

を使用することは高度な使用方法と見なされ、 runOnly を使用すると(または runOnly )、 rules警告を受け取ることになります 両方を使用することはできません。

runOptions.runOnlyconfigurationOverridesそれ以外の場合、 エラーを受け取ります

runOnly の値( runOptions の一部)は次のいずれかです:

  1. アクセシビリティ分析に使用したいルールのルールIDを表す文字列:

    axe: {
      runOptions: {
        runOnly: 'ruleId'
      }
    }
  2. 使用したいルールのルールIDを表す文字列の配列:

    axe: {
      runOptions: {
        runOnly: [ 'ruleId1', 'ruleId2' ]
      }
    }
  3. とオブジェクト: type values プロパティ。 type 値は、 rulerulestag、または tagsの文字列である必要があります。 values プロパティは、アクセシビリティ分析に使用したいルールまたはタグを表す文字列の配列である必要があります。次の例は、 runOnly オブジェクトを使用して、タグ付けされたルールに限定してアクセシビリティテストを実行する方法を示しています: wcag2a

    axe: {
      runOptions: {
        runOnly: {
          type: 'tag',
          values: [ 'wcag2a' ]
        }
      }  
    }

rules

rules 値( runOptions オブジェクト上)により、分析中に特定のルールを有効(enabled: true)または無効(enabled: false)にすることができます。以下に示します:

axe: {
  runOptions: {
    rules: {
      'ruleId1': { enabled: false },
      'ruleId2': { enabled: false }
    }
  }
}

sessionId

(オプション) sessionId プロパティは廃止されており、使用されるべきではありません。上記を参照してください。 buildID を参照してください。

testingTypes

(オプション) testingTypes プロパティは、Cypressでコンポーネントまたはe2e(エンドツーエンド)テスト(またはその両方)を指定するための文字列の配列です。

axe: {
  testingTypes: ['e2e', 'component']
}

timeout

(オプション) timeout オブジェクト(型: Timeouts)は、 AxeConfiguration 各コントローラーメソッド(またはCypress用のカスタムコマンド)のタイムアウト値をミリ秒単位で設定します。( コントローラークラス に関する情報は、コントローラークラスおよび Cypressカスタムコメント に関する情報を参照してください。)タイムアウトが切れると、テストはタイムアウトが超過したというメッセージで失敗します。エラーを避けるためにタイムアウトを延長することができます。

important

これらのタイムアウト値は使用しているテストフレームワークとは無関係であり、そのフレームワークに対してもタイムアウト値を増加させる必要があるかもしれません。

この例では、 analyze のタイムアウトを8秒に設定し、 flush を15秒に設定し、 start を10秒に設定し、 stop を10秒に設定します。(表の中のデフォルト値は Timeouts インターフェースに示されています。)

axe: {
  timeout: {
    analyze: 8000
    flush: 15000,
    start: 10000,
    stop: 10000,
  }
}

設定関数

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.ConfigOptions

cypressConfig パラメータ

  • config: Cypress.ConfigOptions & Configuration

    の交差型 Cypress.ConfigOptionsConfiguration

戻り値: Cypress.ConfigOptions

playwrightConfig

Playwrightの設定を作成します。

playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptions

playwrightConfig パラメータ

  • opts: Configuration & LaunchOptions

    の交差型 LaunchOptionsConfiguration

戻り値: LaunchOptions

playwrightTest

Playwright Testの設定を作成します。

playwrightTest(options: Options): ReturnValue

playwrightTest パラメータ

  • options: Options

    OptionsConfiguration の交差型 LaunchOptions

戻り値: ReturnValue

puppeteerConfig

Puppeteerの設定を作成します。

puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): Options

puppeteerConfig パラメータ

  • opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions

    の交差型 LaunchOptionsBrowserLaunchArgumentOptionsBrowserConnectOptions、と Configuration

戻り値: Options

wdioConfig

WebdriverIOの設定を作成します。

wdioConfig({ axe, ...options}: Options): RemoteOptions

wdioConfig パラメータ

  • arg: Options

    OptionsRemoteOptions の交差型 Configuration

戻り値: RemoteOptions

wdioTestRunner

WebdriverIO Testrunnerの設定を作成します。

wdioTestRunner(...params: unknown[]): Options.Testrunner

wdioTestRunner パラメータ

  • paramsunknown[]

    この params 値は以下のいずれかです:

    1. 1つの値を含む配列で、これは Options.Testrunner との交差型です Configuration
    2. 最初の配列の値が AxeConfiguration で、2番目の値が Options.Testrunnerです。

戻り値Options.Testrunner

webdriverConfig

Selenium WebDriverの設定を作成します。

webdriverConfig(arg: WebDriverArgs): Options

webdriverConfig パラメーター

  • argWebDriverArgs

    Selenium WebDriver Configuration メンバーを含むよう拡張された Options です。

戻り値Options

Configuration インターフェース

この Configuration インターフェースは、 設定関数 と共に使用され、次のプロパティを含みます:

名前 タイプ 必須 説明
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 以降が必要)

貴社はこの設定がグローバル設定でオーバーライドされることを許可する必要があり、選択された標準は許可されたオプションの中に含まれていなければなりません。

axeCoreVersion

テストに使用する axe-core のバージョンを指定します。利用可能なオプションには以下が含まれます:

  • 「最新」 - 現在 Axe Watcher にバンドルされている最新のサポートバージョン
  • 4.4.0以降の特定のバージョン(例: 「4.10.2」、「4.9.1」など)

貴社はこの設定がグローバル設定でオーバーライドされることを許可する必要があり、選択されたバージョンは許可されたオプションの中に含まれていなければなりません。

bestPractices

有効または無効にします ベストプラクティスルール のテスト実行用。有効にするとアクセシビリティが向上しますが、公式な標準の一部ではありません。これが適用されるためには、貴社がこの設定をオーバーライドすることを許可する必要があります。

experimentalRules

有効または無効にします 実験的ルール のテスト実行用。実験的ルールはまだ開発中であり、誤った見解を生む可能性があります。貴社は、これが適用されるために グローバル設定 でこの設定をオーバーライドすることを許可する必要があります。

Controller クラス

次のクラスは Controller 抽象クラスを拡張し、ウェブサイトページのアクセシビリティ分析を手動で制御できるようにします。

テストフレームワーク 名前
Playwright および Playwright Test PlaywrightController
Puppeteer PuppeteerController
WebdriverIO および WebdriverIO Testrunner WdioController
WebDriverJS WebdriverController
note

Cypress の場合、 *Controller クラスのメソッドはカスタムコマンドとして実装されます。 Cypress用のコントローラカスタムコマンド を参照してください。

Controller

abstract class Controller

この Controller 抽象クラスにはページ分析を制御するためのメソッドが含まれています。これらの具体的なクラスはすべてこのクラスを拡張しているため、以下のメソッドはすべての具体的なクラスで使用可能です。

important

フレームコンテキスト: あなたのテストが switchToFrame() (WebdriverIO または WebDriverJS)を使用してブラウザのコンテキストを子フレームに切り替える場合、Axe Watcher は子フレーム内で実行されたアクションのページ状態をキャプチャしません。Axe Watcher はトップレベルフレームのみを分析できます。トップレベルフレームに戻ります(例: switchToParentFrame() WebdriverIO の場合または driver.switchTo().defaultContent() WebDriverJS の場合)ページ状態のキャプチャを再開します。 子フレームに切り替えた後にページ状態がキャプチャされない 詳細については、

analyze

analyze(): Promise<void>

現在のページのアクセシビリティエラーを分析します。このメソッドは、ウェブページのセットアップ(例えば、フォームに値を入力する)を行い、次の方法で自動解析をオフにした後に呼び出します: stop メソッドまたは設定を使用して autoAnalyze に設定します false

analyze 戻り値

Promise<void>

analyze 同等のCypressコマンド

cy.axeWatcherAnalyze()

flush

flush(): Promise<void>

アクセシビリティスキャンの結果をすべてAxe Developer Hubに送信します。テスト実行の最後にこのメソッドを呼び出し、結果がDequeのAxe Developer Hubサーバーに送信されたことを確認してください。

flush 戻り値

Promise<void>

flush 同等のCypressコマンド

cy.axeWatcherFlush()

start

start(): Promise<void>

ウェブページの自動解析を再開します。ウェブページのアクセシビリティエラーを自動解析したいときにこのメソッドを呼び出します。

start 戻り値

Promise<void>

start 同等のCypressコマンド

cy.axeWatcherStart()

stop

stop(): Promise<void>

ウェブページの自動解析を停止します。この stop メソッドを呼び出した後、ウェブページの追加セットアップを行い、その後 analyze メソッドを呼び出して、アクセシビリティエラーをチェックします。

stop 戻り値

Promise<void>

stop 同等のCypressコマンド

cy.axeWatcherStop()

PlaywrightController

この PlaywrightController クラスは、PlaywrightおよびPlaywright Testを使用したテストランのアクセシビリティ解析を手動で制御することを可能にします。自動アクセシビリティ解析の開始と停止、追加のセットアップが必要なページの解析を行うことができます。

Playwrightについての詳細は、 Playwrightのドキュメントをご覧ください。

コンストラクター

new PlaywrightController(driver: Page): PlaywrightController
パラメーター

この driver 値はPlaywrightの Page オブジェクトです。

戻り値 PlaywrightController

次を参照: Controller 抽象基底クラスで実装されているメソッドについては

PuppeteerController

この PuppeteerController クラスは、Puppeteerを使ったテストランを手動で制御することを可能にします。手動制御により、より複雑なウェブページが必要とする追加のセットアップを提供できます。

Puppeteerについての詳細は、 Puppeteerをご覧ください。

コンストラクター

new PuppeteerController(driver: Page): PuppeteerController
パラメーター

この driver 値はPuppeteerの Page オブジェクトです。

戻り値 PuppeteerController

次を参照: Controller 抽象基底クラスで実装されているメソッドについては

WdioController

この WdioController はWebdriverIOおよびWebdriverIO Testrunnerのテストランを手動で制御することを可能にします。追加のセットアップや構成が必要なページに対しては、自動テストを停止し、そのようなセットアップを必要とする各ページを手動で分析できます。

コンストラクター

new WdioController(driver: Browser): WdioController
パラメーター
  • driverBrowser
戻り値 WdioController

抽象基底クラスで実装されたメソッドについては Controller を参照してください。

WebdriverController

コンストラクタ

new WebdriverController(driver: WebDriver): WebdriverController
パラメータ

その driver 値はSelenium WebDriver オブジェクトです。

戻り値 WebdriverController

抽象基底クラスで実装されたメソッドについては Controller を参照してください。

Cypressカスタムコマンド

Cypressのブラウザ自動化プラットフォームでは、 *Controller クラス内のメソッドがカスタムコマンドとして実装されています。詳しくは、 カスタムコマンド に関する詳細については、Cypressのドキュメンテーションサイトを参照してください。

以下のカスタムコマンドが実装されています。各カスタムコマンドは Chainable<void> を返し、他のCypressコマンドと連鎖させることができます。

コントローラーメソッド 同等のCypressカスタムコマンド
analyze() axeWatcherAnalyze()
flush() axeWatcherFlush()
start() axeWatcherStart()
stop() axeWatcherStop()
important

Watcher 3.9.0以降、次の4つのCypressカスタムコマンド axeAnalyze()axeFlush()axeStart()、および axeStop() は非推奨となっており、使用しないでください。

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 タイムアウトをミリ秒単位で設定します 解析 コントローラ関数または axeWatcherAnalyze カスタムコマンド(Cypress内)。
フラッシュ 数値 無し 5000 タイムアウトをミリ秒単位で設定します フラッシュ コントローラ関数または axeWatcherFlush カスタムコマンド(Cypress内)。
開始 数値 無し 2000 タイムアウトをミリ秒単位で設定します 開始 コントローラ関数または axeWatcherStart カスタムコマンド(Cypress内)。
停止 数値 無し 5000 タイムアウトをミリ秒単位で設定します 停止 コントローラ関数または axeWatcherStop カスタムコマンド(Cypress内)。