Axe DevTools for Web Cucumber
Cucumberベースのアクセシビリティテスト用のaxe-devtools-cucumber gemのセットアップと使用法
そのaxe-devtools-cucumber gemは、指定されたページがaxe cleanかどうかを評価するためのカスタムステップ定義を提供します。
このgemは、axe-core-cucumber gemのREADMEに記載されているステップを拡張します。
セットアップと使用法
Deque's registryへのアクセスがあることを確認してください。もしない場合は、refer to setup。
axe-devtools-cucumberをGemfileまたはgemspecファイルに追加し、bundle installを実行してください。
gem "axe-devtools-cucumber"spec.add_dependency "axe-devtools-cucumber"- gemで提供されるステップ定義を要求します。通常、これは
features/support/env.rbの下にある既存のCucumberセットアップファイルに追加することで実行できます。
require 'axe-cucumber-steps'- 選択したWebDriverとともに使用します。
API
ステップ - axe クリーンであること (be axe clean)
ステップbe axe cleanは、統合の核心コンポーネントです。これは独立したステップであり、現在ロードされているページがaxe cleanかどうかを、axe.runのデフォルト設定を使用して確認します(デフォルトルールを使用してドキュメント全体がチェックされます)。
Then the page should be axe cleanステップ - アクセシビリティの監査を受ける (be audited for accessibility)
このステップは、テストスイートを失敗させることなく、サイトのアクセシビリティを監査できるようにします。特定されたviolationsに対して、マッチャーはテスト例をpendingに変換し、詳細な違反内容を出力します。
Then the page should be audited for accessibility [including]
[excluding] [according to/according to ruleset] [checking rules/checking-only-rules]
[skipping rules] [logging results for]句
句は、be axe cleanとbe audited for accessibilityステップ定義用の連鎖可能なメソッドです。
設定可能な句は、テストと期待値に対してより細かい調整を可能にします。
within- 包含句
包含句 (within "#selector") は、ページのどの要素をチェックするかを指定します。適切なCSS selectorが提供され、ダブルクオートで囲まれている必要があります。複合セレクターを使用して複数の要素を選択することができます。例えば、within "#header, .footer"です。詳細についてはcontext parameter documentationを参照してください。
Then the page should be axe clean within "#selector"excluding- 除外句
除外句 (excluding "#selector") は、ドキュメントのどの要素を無視するかを指定します。適切なCSS selectorが提供され、ダブルクオートで囲まれている必要があります。複合セレクターを使用して複数の要素を選択することができます。例えば、excluding "#widget, .ad"です。詳細についてはcontext parameter documentationを参照してください。
Then the page should be audited for accessibility excluding "#selector"必要に応じて、セミコロン (;) またはbutという単語を使用して、包含句から除外句を分離することができます(存在する場合)。
Then the page should be audited for accessibility within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"according to- アクセシビリティ標準(タグ)句
タグ句は、どのアクセシビリティ標準(または標準)を使用してページをチェックするかを指定します。アクセシビリティ標準は名前(タグ)で指定されます。複数の標準はカンマで区切って指定することが可能です。例えば、according to: wcag2a, section508です。受け入れ可能なtag names are documentedと各タグに対応するcomplete listing of rulesがあります。
Then the page should be audited for accessibility according to: tag-name必要に応じて、タグ句と前の句を分けるためにセミコロン (;) を使用できます。
Then the page should be axe clean within "#header"; according to: best-practicechecking- チェックルール句
チェックルール句は、(指定されたタグがある場合やデフォルトのルールセット以外に)追加のルールを実行するかを指定します。ルールはカンマで区切られたルールIDで指定されます。
Then the page should be axe clean checking: ruleId有効なルールIDのリストについてはrules documentationを参照してください。
必要に応じて、チェックルール句と前の句を分けるためにセミコロン (;) またはandという単語を使用できます。
Then the page should be axe clean according to: wcag2a; checking: color-contrast
Then the page should be audited for accessibility according to: wcag2a and checking: color-contrastchecking only- 排他ルール句
この句は実際には個別の句ではありませんが、チェックルール句にonlyという単語を追加することで、ステップの意味を変更することができます。上記のように、デフォルトではチェックルール句は追加のルールの実行を指定します。もしもonlyという単語が使用される場合は、のみ指定されたルールのみがチェックされます。
Then the page should be axe clean checking only: ruleIdskipping- スキップルール句
スキップルール句は、スキップするルールを指定します。これにより、タグ句を介してアクセシビリティ標準が提供されているときに、特定のルールを無視することが可能です。ルールはカンマで区切られたルールIDで指定されます。
Then the page should be audited for accessibility skipping: ruleId有効なルールIDのリストについてはrules documentationを参照してください。
以下に示すように、スキップルール句と前の句を分けるためにセミコロン (;) またはbutという単語を使用できます。
Then the page should be axe clean according to: wcag2a; skipping: accesskeys
Then the page should be audited for accessibility according to: wcag2a but skipping: accesskeysステップ - アクセシビリティの監査を受けるにのみ利用可能な句
be audited for accessibilityマッチャーは、新しい2つの句をサポートします。
according to ruleset- ルールセット句
ルールセット句[according to ruleset]は、(例えば508、wcag2、wcag21)ページをチェックするために使用する単一のルールセットを指定するのに役立ちます。
Then the page should be axe clean according to ruleset: wcag2logging results- 結果のログ出力句
ベースマッチャーおよび句からの結果をログに記録するには、以下に示すように、連鎖可能なメソッドlogging resultsを呼び出します。logging results for: report_name句では、ステップ実行の終了時に生成されるレポートの名前を指定できます。
Then the page should be audited for accessibility logging results for: axe_report_of_my_site句間の相互運用性
説明されているすべての条件は、メソッドチェーンと組み合わせて使用できます。以下はいくつかの例です。
Then the page should be audited for accessibility within "main, header" but excluding "footer"
Then the page should be axe clean excluding "#sidebar" according to: wcag2a, wcag2aa but skipping: color-contrast
Then the page should be audited for accessibility checking only: document-title, label
Then the page should be axe clean according to: best-practice and checking: aria-roles, definition-list高度なAPIの使用法
advanced usageを参照してAPIを次のように設定する方法を確認してください:
- カスタムルール
- axeソースへのカスタムパス
- 使用状況の記録
- 報告
