axe-devtools-api Python APIリファレンス
axe-coreを注入して実行するためのaxe-devtools-api PythonパッケージのAPIリファレンス
ウェブページに対してaxe-coreを注入し実行するためのAPIを提供します。
axe_devtools_api.Axe
axe-coreを実行する設定を行い、ページに対して実行します。
report = Axe(page).with_rules("document-title", "label").analyze()Axe(page, report_configuration=None, axe_source=None)
ブラウザーアダプタとオプションの設定を使用してAxeインスタンスを初期化します。
page: ブラウザアダプタ、例えばaxe-devtools-seleniumからのAxeDriverインスタンスなど。
report_configuration: オプション。レポート設定オブジェクト。
axe_source: オプション。バンドルされているバージョンの代わりに使用するaxe-coreのソースコード文字列。
analyze()
axe-coreをページに注入し、アクセシビリティ分析を実行します。
Resultsオブジェクトを返します。完全なResultsAPIとレポートメタデータの設定方法についてはPythonによるレポートの生成を参照してください。
report = Axe(page).analyze()including(*selector)
ページの一部を指定して、axe-core に分析させます。ページ内のいくつかの関係のない部分を分析するには、それぞれに対して一度ずつ including() を呼び出し、1つのセレクタを渡します。
selector: 含める要素のための単一の CSS セレクタです。1回の呼び出しで複数のセレクタを渡すと、常に別々の要素としてではなく iframe セレクタとして解釈されます。最後のセレクタを除くすべてのセレクタは iframe のネストの一つのレベルに一致し、最後は最も深い iframe 内の分析する要素に一致します。
メソッドチェーン用にこのオブジェクトを返します。
# Analyze .sidebar and .some-class, which are both in the top-level document
report = Axe(page).including(".sidebar").including(".some-class").analyze()
# Analyze .some-class inside the iframe matched by .sidebar-frame
report = Axe(page).including(".sidebar-frame", ".some-class").analyze()シャドウルート内の要素に到達するには、CSSセレクタの代わりにfromShadowDom辞書をひとつ渡します。リスト内のすべてのセレクタは最後のもの以外はシャドウホストに一致し、最後のものが最も内側のシャドウルート内の解析対象要素に一致します。
# Analyze #shadow-button inside the shadow root attached to #shadow-host
report = Axe(page).including({"fromShadowDom": ["#shadow-host", "#shadow-button"]}).analyze()fromFrames辞書は、上記で示したiframeセレクタの明示的な等価物であり、新しいテストに推奨される形式です。
# Analyze the form inside the #payment-frame iframe
report = Axe(page).including({"fromFrames": ["#payment-frame", "form"]}).analyze()この二つは組み合わせて、シャドウルート内に存在するiframeに到達することができます。fromShadowDom辞書はfromFramesリストの中にネストされる必要があります。逆にするとエラーが発生します。
# Analyze the form inside the iframe matched by #shadow-frame, which is inside the
# shadow root attached to #shadow-host
report = Axe(page).including({
"fromFrames": [
{"fromShadowDom": ["#shadow-host", "#shadow-frame"]},
"form",
]
}).analyze()excluding(*selector)
ページの一部を指定して、axe-core に分析をスキップさせます。ページ内のいくつかの関係のない部分をスキップするには、それぞれに対して一度ずつ excluding() を呼び出し、1つのセレクタを渡します。
selector: 除外する要素のための単一の CSS セレクタです。1回の呼び出しで複数のセレクタを渡すと、常に別々の要素としてではなく iframe セレクタとして解釈されます。最後のセレクタを除くすべてのセレクタは iframe のネストの一つのレベルに一致し、最後は最も深い iframe 内のスキップする要素に一致します。
メソッドチェーン用にこのオブジェクトを返します。
# Skip .third-party-ad and .cookie-banner, which are both in the top-level document
report = Axe(page).excluding(".third-party-ad").excluding(".cookie-banner").analyze()
# Skip .third-party-ad inside the iframe matched by .iframe1
report = Axe(page).excluding(".iframe1", ".third-party-ad").analyze()including()と同様に、fromShadowDomまたはfromFrames辞書をCSSセレクタの代わりに渡すことができ、また二つをネストすることができます。これらの形式の詳細についてはincluding()を参照してください。
# Skip #shadow-button inside the shadow root attached to #shadow-host
report = Axe(page).excluding({"fromShadowDom": ["#shadow-host", "#shadow-button"]}).analyze()
# Skip the form inside the #payment-frame iframe
report = Axe(page).excluding({"fromFrames": ["#payment-frame", "form"]}).analyze()with_rules(*rules)
axe-coreを実行するためのルールをIDで指定します。指定されたルールのみが使用されます。このオプションはwith_tagsとは互換性がありません。
rules: 1つ以上のルールID。使用可能なIDの一覧についてはルール説明を参照してください。
メソッドチェーン用にこのオブジェクトを返します。
同じインスタンスでwith_tagsと一緒に呼び出された場合、RuntimeErrorを発生させます。
report = Axe(page).with_rules("document-title", "label").analyze()with_tags(*tags)
axe-coreを実行するためのルールをタグで指定します。指定されたルールのみが使用されます。このオプションはwith_rulesとは互換性がありません。
tags: 1つ以上のタグ名。使用可能なタグの一覧についてはaxe-coreタグを参照してください。
メソッドチェーン用にこのオブジェクトを返します。
同じインスタンスでwith_rulesと一緒に呼び出された場合、RuntimeErrorを発生させます。
report = Axe(page).with_tags("best-practice", "wcag2a").analyze()disabling_rules(*rules)
axe-coreの実行から特定のルールを無効化します。
rules: 1つ以上のルールID。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).disabling_rules("html-has-lang", "label").analyze()run_options(options)
axe.runを呼び出すときにaxe-coreに渡すrunOptionsを指定してください。
options: axe-coreに渡すオプションオブジェクト。
メソッドチェーン用にこのオブジェクトを返します。
options = {"iframes": False}
report = Axe(page).run_options(options).analyze()configure(spec)
axe.configureを通じてaxe-coreを設定します。
spec: axe.configureに渡すスペックオブジェクト。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).configure(spec).analyze()without_iframe_sandboxes()
axe-coreがそれらの中で実行できるように、iframeからsandbox属性を削除します。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).without_iframe_sandboxes().analyze()with_config_file(config_path)
ルールセット設定ファイルのパスを設定します。デフォルトのパスはconfig/axe-ruleset.json、または設定されている場合は$AXE_RULESET_PATH環境変数の値です。
config_path: 設定ファイルのパス。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).with_config_file("path/to/file.json").analyze()with_ruleset(ruleset_id, enable_best_practices=False)
axe-coreの実行に特定のルールセットを使用します。
ruleset_id: 使用するルールセットのID。利用可能なルールセット: wcag2, wcag2.1, wcag2.2, wcag2aaa, wcag2.1aaa, wcag2.2aaa, 508, en301549, ttv5, rgaav4。
enable_best_practices: タグ付けされたbest-practiceルールを有効にするかどうか。デフォルトはFalseです。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).with_ruleset("508").analyze()set_legacy_mode(state=True)
axe.runPartialの代わりにaxe.runを使用します。クロスオリジンの影響があります。
state: レガシーモードを有効にするかどうか。デフォルトはTrueです。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).set_legacy_mode().analyze()使用サービス
組織内でのAxe DevToolsの使用傾向についての洞察を得ることができます。デフォルトでは、使用サービスは有効化されており、https://usage.deque.comに報告されます。AXE_TRACK_USAGE環境変数をfalseに設定して無効化してください。
使用サービス環境変数
これらの環境変数を使用して使用状況サービスを設定し、報告されるイベントのプロパティを変更できます。
| 名前 | タイプ | 上書き可能 | 説明 |
|---|---|---|---|
AXE_DISTINCT_ID |
文字列 | — | ログイン中のユーザーに対して同じままのUUID識別子(再生成されない限り)。Rubyでは、この変数はDEQUE_DISTINCT_IDと名付けられています。 |
AXE_INCLUDE_TEST_RESULTS |
ブール値 | — | 各イベントのtestResultsオブジェクトに完全なaxe-core結果を含めるには、trueに設定します(デフォルトはfalse)。CLIおよびNode.js APIのみでサポートされています。 |
AXE_METRICS_URL |
文字列 | — | REST使用エンドポイントのURL(デフォルトはhttps://usage.deque.com) |
AXE_TRACK_USAGE |
ブール値 | — | 使用サービスの報告を無効にするには、falseに設定します。報告はデフォルトで有効です。 |
AXE_APPLICATION |
文字列 | false | アクセシビリティエラーのチェックに使用されたアプリケーション |
AXE_DEV_INSTANCE |
ブール値 | true | このイベントがソフトウェア開発者の行動によるものかを示します。開発またはテスト中に記録されたイベントをマークし、後で削除するのに便利です。 |
AXE_DEPARTMENT |
文字列 | true | 組織内でのユーザーの部署 |
AXE_KEYCLOAK_ID |
文字列 | false | ユーザーのKeycloak ID |
AXE_LOGGED_IN |
ブール値 | false | テスト対象アプリケーションにユーザーがログインしているかどうかを記録します |
AXE_ORGANIZATION |
文字列 | true | ユーザーの組織。Axe Reportsに使用状況を表示するには、これを組織のIDに設定してください(取得するにはDequeに連絡してください)。 |
AXE_SESSION_ID |
文字列 | false | ユーザーのセッションを識別するUUID |
AXE_USER_ID |
文字列 | false | 特定のユーザーのID。例えば、メールアドレス、名前、またはログインIDなどです。Axe Reportsはこの値を基にユニークユーザーをカウントします。 |
AXE_USER_JOB_ROLE |
文字列 | false | ユーザーの役割 |
AXE_USER_STATUS |
文字列 | false | ユーザーに紐づけたいステータス情報 |
enable_tracking(state)
使用サービスへのデータ送信をオプトインまたはオプトアウトしてください。送信はデフォルトで有効になっています。
state: トラッキングが有効になっているかどうか。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).enable_tracking(True).analyze()set_tracking_url(url)
利用指標データの送信先を設定します。
url: データが送信されるURL。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).set_tracking_url("https://usage.deque.com").analyze()set_distinct_id(id)
利用指標送信用の一意のIDを設定します。
id: 送信される一意のID。
メソッドチェーン用にこのオブジェクトを返します。
report = Axe(page).set_distinct_id("SOMEUUID").analyze()