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

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

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 いいえ Git情報を収集するかどうか。デフォルトは trueです。 false Gitのデータなしで実行するには
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を使用してコンポーネントまたはe2eテスト(またはその両方)を指定するために使用します
timeout Timeouts いいえ 指定された Timeouts までのミリ秒を表すオブジェクト コントローラー メソッドがタイムアウトして失敗します。

apiKey

(必須)この apiKey 値は、2つのプロパティの1つです(apiKey および projectId)が、次の設定で設定される必要があります AxeConfiguration。この値を取得するには、次の APIキー管理ページ を参照してください。

autoAnalyze

(オプション)この値を false に設定して、ページが自動的に分析されないようにします。手動モードについての詳細は、 ページ分析の制御を参照してください。

buildID

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

一般に、継続的インテグレーションプロバイダーから使用可能な buildID 値を取得できます。たとえば、以下の値を使用できます:

  • github.run_id

    GitHubワークフロー内で利用可能です。詳細は、 GitHubコンテキスト をGitHubのドキュメントで参照してください。

  • CIRCLE_PIPELINE_ID

    CircleCIの場合、上記の値はプロセスの環境から入手できます。詳細は、 組み込み環境変数 をCircleCIのドキュメントで参照してください。

    他の継続的なインテグレーション環境変数には、 buildIDを使用できます:

    プロバイダー 環境変数
    Bitbucket BITBUCKET_BUILD_NUMBER
    GitLab CI_PIPELINE_ID
    Jenkins BUILD_NUMBER

configurationOverrides

(オプション)全体設定で設定された値を上書き グローバル設定を参照してください。 ConfigurationOverridesインターフェース の詳細はこちらをご覧ください。

excludeUrlPatterns

(オプション)次のいずれかに一致するURLを防ぎます。 minimatch", "context": "link text パターンを ", "context": "paragraph excludeUrlPatterns 配列で分析されないようにします。", "context": "paragraph

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

パターンを開始するには ", "context": "paragraph http:// または ", "context": "paragraph https:// またはスター・スラッシュ(", "context": "paragraph*/)を指定して、URL にマッチさせる必要があります。以下の表を例にご覧ください。", "context": "paragraph

例", "context": "heading level 4

URL", "context": "table cell パターン", "context": "table cell 一致しますか?", "context": "table cell
https://example.com/index.html example.com False", "context": "table cell
https://example.com/index.html https://*mple.com/index.html True", "context": "table cell
https://example.com/index.html https://example.com False", "context": "table cell
https://example.com/index.html https://*.example.com False", "context": "table cell
https://example.com/index.html https://*.example.com/** False", "context": "table cell
https://example.com/index.html https://*example.com/** True", "context": "table cell
https://example.com/index.html https://** True", "context": "table cell
https://example.com/index.html https://* False", "context": "table cell
https://example.com/index.html ** True", "context": "table cell
https://example.com/index.html *example.com/index.html False", "context": "table cell
https://example.com/index.html *example.com/** False", "context": "table cell
https://example.com/index.html */example.com/** True", "context": "table cell
https://example.com/index.html htt*/** True", "context": "table cell
https://example.com/index.html h*/example.com/** True", "context": "table cell
https://test.example.com/index.html https://*example.com/** True", "context": "table cell
https://test.example.com/index.html https://*.example.com/** True", "context": "table cell

git

(オプション) ", "context": "paragraph false を設定して、現在のテスト実行で Watcher が Git 情報を収集しないようにします。デフォルトは ", "context": "paragraph trueです。これは、Git リポジトリに属さないプロジェクトや Git データ収集によってエラーが発生するプロジェクトに役立ちます。", "context": "paragraph

projectId

(必須) Watcher のアクセシビリティ結果を受信するプロジェクト ID を指定します。新しいプロジェクトを作成すると、プロジェクト ID が手順とともに表示され、また ", "context": "paragraph axe Developer Hub Projects Page ", "context": "paragraph からも取得できます。", "context": "paragraph

runContext

(オプション) ページのアクセシビリティ分析に含める要素を選択および除外することができます。", "context": "paragraph

important

を使用して、分析に含める要素を選択する場合(単一の CSS セレクタ、CSS セレクタの配列を介して、または ", "context": "paragraph runContext プロパティを使用して)、axe Developer Hub は ", "context": "paragraph include 選択された CSS セレクタの要素のみを", "context": "emphasized text 分析します。したがって、(たとえば CSS クラスセレクタの綴り間違いによって)要素が選択されなかった場合、何も分析されず、さらに重要なことに、", "context": "paragraphページの状態はキャプチャされません", "context": "emphasized text 。", "context": "paragraphの値は次のとおりです:", "context": "paragraph

:", "context": "paragraph runContext 分析に含める要素の単一の CSS セレクタ:", "context": "paragraph

  1. 分析に含める要素の CSS セレクタの配列:", "context": "paragraph

    axe: {
      runContext: '.main'
    }
  2. が含まれるコンテキストオブジェクト", "context": "paragraph

    axe: {
      runContext: [ '.main', '.text-block' ]
    }
  3. と ", "context": "paragraph include プロパティ(上記の例に示されています)。以下を指定できます:", "context": "paragraph exclude または", "context": "paragraph include またはその両方。各 ", "context": "paragraph exclude or both. Each 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がアクセシビリティの問題が 重複しているか を正しく検出し追跡できるようにします。デフォルトでは、axe Developer Hubはテストの実行間で要素IDやクラスが同じであると仮定します。

    の場合、 ancestry こんなことが起こります: true、axe Developer Hubは代わりにDOMツリー内の要素の位置を使用して、テストの実行間で同じ要素を見つけます。

    以下は、 ancestry の場合のセレクターの例です: falsemain-iframe というIDのiframe要素に対して、(<iframe id="main-iframe" ...>):

    iframe#main-iframe

    ancestry なら、 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

important

を使用することは高度な使用法と見なされ、 runOnly 使用する場合、 runOnly警告を受ける でしょう。

両方の runOptions.runOnly を使うことはできません。そうしないと、 configurationOverridesエラーを受ける ことになります。

runOnly の値( runOptions オブジェクトの一部)は以下のいずれかになります:

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

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

    axe: {
      runOptions: {
        runOnly: [ 'ruleId1', 'ruleId2' ]
      }
    }
  3. 以下のプロパティを持つオブジェクト typevalues のプロパティです。 type の値は、次のいずれかの文字列です。 rulerulestag、または tagsvalues プロパティは、アクセシビリティ分析で使用したいルールやタグを表す文字列の配列でなければなりません。以下の例では、 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が提供する構成関数は、指定したテストフレームワーク用のセットアップを修正したり、要求に応じてWatcherの実行方法を調整したりすることができます。詳細は AxeConfigurationインターフェース を参照してください。

テスト フレームワーク 構成機能
Cypress cypressConfig
Playwright playwrightConfig
Playwright Test playwrightTest
Puppeteer puppeteerConfig
WebdriverIO wdioConfig
WebdriverIO テストランナー 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

    Options はの交差型 ConfigurationLaunchOptionsです。

戻り値: 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

    Options はの交差型 RemoteOptionsConfigurationです。

戻り値: RemoteOptions

wdioTestRunner

WebdriverIOテストランナーの設定を作成します。

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

wdioTestRunner パラメーター

  • paramsunknown[]

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

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

戻り値Options.Testrunner

webdriverConfig

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

webdriverConfig(arg: WebDriverArgs): Options

webdriverConfig パラメーター

  • argWebDriverArgs

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

戻り値Options

Configuration インターフェース

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

名前 必須 説明
axe AxeConfiguration はい テストフレームワークの設定関数に渡される AxeConfiguration

すべての 設定関数 は、この axe プロパティを使用してウォッチャーを設定し、アクセシビリティテストを構成します。次のセクション「 AxeConfigurationインターフェース」を参照してください。

ConfigurationOverrides インターフェース

この ConfigurationOverrides インターフェースにより、組織全体のグローバル設定を個別のテスト実行用に上書きできます。このプロパティは、企業のグローバル設定で指定された権限に従って使用する必要があります。

名前 必須 説明
accessibilityStandard string いいえ 従うべきアクセシビリティ基準
axeCoreVersion string いいえ 使用すべきaxe-coreバージョンを示します。
bestPractices boolean いいえ ベストプラクティスルールに従うかどうかを指定します。
experimentalRules boolean いいえ 実験的ルールに従うかどうか

accessibilityStandard

テストするアクセシビリティ標準を設定します。利用可能なオプション:

  • 「すべて」 - 利用可能なすべての標準に対してテスト
  • 「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 抽象クラスにはページ分析を制御するためのメソッドが含まれています。各具象クラスはこのクラスを拡張しているため、以下のメソッドはすべての具象クラスで利用可能です。

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
パラメータ
  • driver: Browser
返却値 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 Developer HubのCypressコマンドを @axe-core/watcher パッケージからインポートして、各テストの最後に 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 コントローラによるタイムアウトをミリ秒で設定します。 解析 コントローラーファンクションまたは axeWatcher解析 カスタムコマンド(Cypress内)
フラッシュ 数字 いいえ 5000 ミリ秒単位でタイムアウトを設定します フラッシュ コントローラーファンクションまたは axeWatcherフラッシュ カスタムコマンド(Cypress内)
開始 数字 いいえ 2000 ミリ秒単位でタイムアウトを設定します 開始 コントローラーファンクションまたは axeWatcher開始 カスタムコマンド(Cypress内)
停止 数字 いいえ 5000 ミリ秒単位でタイムアウトを設定します 停止 コントローラーファンクションまたは axeWatcher停止 カスタムコマンド(Cypress内)