Axe DevTools JSON結果からのレポート生成
レポート生成に@axe-devtools/reporterパッケージを使用する
Axe DevToolsレポーターを使用して、Playwrightと共にスキャンしたページのアクセシビリティレポートを作成します
レポートの生成は、スキャンの実行と同じくらい簡単です。Axe DevToolsレポーターを使用することで、即座に閲覧可能なHTMLレポート、CIテスト環境で閲覧するためのJUnit XMLレポート、他の複数のツールにインポートするためのCSVレポートを生成できます。このガイドでは、Axe DevToolsレポーターのインストール、設定、使用方法について説明します。
前提条件
Axe DevToolsレポーターを使用するには、Axe DevToolsとレポーターを統合するための既存のNodeJSプロジェクトが必要です。このガイドのこの部分ではレポーターの設定のみをカバーするため、まだAxe DevToolsでスキャンを実行していない場合は、Axe DevToolsでのスキャン実行方法についてこのガイドをお読みください。
レポーターのインストール
既にAxe DevTools npmパッケージをダウンロードするように~/.npmrcファイルを設定している場合、コマンドを実行するだけです:
npm install @axe-devtools/reporterまだインストール認証を設定していない場合は、基本的なインストールガイドをお読みください。
プロジェクトへのレポーターの追加
モジュールの外では、Axe DevToolsはインポートされ、次のようなステートメントでインスタンスが作成されます:
const { Reporter } = require('@axe-devtools/reporter');モジュール内では、構文が少し異なります。文は次のようになります:
import { Reporter } from '@axe-devtools/reporter';レポーターを使用するには、Axe DevToolsライブラリとwebdriverもインポートする必要があります。
レポーターオプション
Axe DevToolsレポーターを使用する際には、3つの主要な選択肢があります
- レポートの名前をどうするか
- レポートをどこに保存するか
- レポートをどの形式で生成するか
レポートの名前は自由に設定できます。レポーターを初期化する際には、すべての生成されたレポートで共有されるスイート名を指定します。各レポートには、スキャンごとに割り当てられる名前も含まれます。レポートを保存する場所、つまりディレクトリは、ユーザーの裁量で決めることができます。このディレクトリ位置もインスタンスレベルで設定されるため、1つのレポーターインスタンスで生成されたすべてのレポートはディレクトリを共有します。オプションのレポート形式には、即座にユーザーが閲覧できるHTML、CI環境での使用推奨のJUnit XML、スキャン結果を他のツールにインポートするCSV、マシンが読み取り可能なアクセシビリティレポートを出力するW3C EARL JSON-LDドキュメントであるEARL(Evaluation and Report Language)があります。
レポーターの使用
レポーターをプロジェクトにインポートしたら、初期化できます。コンストラクターは、レポートのスイート名とレポートの保存先ディレクトリの2つの引数を取ります。初期化文は次のようになります:
reporter = new Reporter('<suite-name>', '<dir-name>');Axe DevToolsのスキャンが実行された後、レポーターを実行するには2つのステップがあります。まず、レポーターがアクセスできるように結果をログに記録する必要があります。その後、レポーターがこれらの結果をレポートに処理します。
reporter.logTestResult('<scan-name>', <results-object>);
reporter.buildHTML('<scan-dir>');サンプルファイル
このサンプルファイルはテストを書くの例と同じベースを使用していますが、レポーターも統合しています。
const rimraf = require('rimraf');
const { AxeDevToolsBuilder } = require('@axe-devtools/playwright');
const playwright = require('playwright');
const { Reporter } = require('@axe-devtools/reporter');
(async () => {
rimraf.sync('./a11y_results/*');
const browser = await playwright.chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
const reporter = new Reporter('playwright', './a11y_results');
await page.goto('https://dequeuniversity.com/demo/mars/');
const results = await new AxeDevToolsBuilder({ page }).analyze();
reporter.logTestResult('tested-page', results);
reporter.buildHTML('./a11y_results');
await browser.close();
})();トラブルシューティング
スキャン結果の取得に問題がある場合は、お持ちのDeque代表者に直接連絡するか、サポートデスクやメールをお送りくださいを通じてご連絡ください。喜んでお手伝いします。
関連リンク
- JSONアクセシビリティ結果をaxe Reportsにアップロードするは、結果をAxe Reportsにアップロードする方法について説明します。
- axe Reports APIキーの取得は、Axe Reportsを使用開始するためのAPIキーの取得方法を説明します。
- レポートの作成とフィルタリングは、JSONのアクセシビリティ結果からCSV、XML、またはHTMLでアクセシビリティレポートを作成する方法を示しています。また、このツールを使用して、深刻度で出力をフィルターすることもできます。
- ディスク上のJSON結果の保存方法は、JSONアクセシビリティ結果のファイル命名規則について説明します。
- CLIを使用してアクセシビリティ結果をaxe Developer Hubに送信するは、
.jsonの結果ファイルをaxe Developer Hubにアップロードする方法を示しています。
