先週、「axe-runnerを大幅改良してnpmで公開」の記事を書きましたが、その後さらに改良を行いv1.5.1として公開しました。
テストの進捗表示
Consoleのドキュメントを読みカスタマイズを行ったことで、テストの進捗表示が行えるようになりました。大量のURLを処理している場合でもどこまで進んでいるのかを常時確認することができるようになりました。
axe-runner.config.jsonによる設定
axe-runner.config.json
を使用してエミュレートするデバイスやaxeの設定を記述することができるようになりました。書式はGitHubのWiki「Config File Example」に記述しています。
例えば、翻訳ファイルを差し替えて日本語以外の言語でも結果を出力できるようになりました。
Chrome拡張のaxeだと「SCAN PART OF MY PAGE」はサインイン・サインアップが必要となっているのですが、context
の変更も可能で、include: [['.article-body']]
と記述するとその部分だけテストできるようです。ヘッダー・フッターは支給されたコーディングを使用しており、本文部分だけテスト対象としたいようなケースで利用するようなイメージでしょうか。
options
にrunOnly: ['wcag2a', 'wcag21a']
のように指定することで、実行時のルールを絞り込むことができます。先の['wcag2a', 'wcag21a']
だとコントラストに関する指摘がなくなります。
axe-runner.config.json
はカレントディレクトリ、もしくは-c
オプションを使用して任意の場所を相対パスで指定します。
リファクタリング
これは使用する上では関係ないのですが、コードを大幅に見直しました。モジュール化することでrequire
を使用してモジュールを読み込み直接関数を実行できるようになったので、イマイチ納得していなかった・引数を渡すのが手間だったspawn
を利用するコードが排除できました。
Node.jsを変に意識しすぎず、普段書くWebサイト用のJavaScriptのように書く気持ちで取り組むと上手く改良できました。
最後に
2週間ほどの取り組みで、改良できることは全てやったかなと感じています。使用していく中で気付きがあればまた反映していきたいと考えています。