WCAG 2.0の達成基準 4.1.1を満たしている事を確認するためにも、ウェブページをバリデートすることは重要な作業の一つと考えています。
ただ、HTML5でマークアップを行いDreamweaverやHTML Validator for Firefox and Mozillaなどでバリデートすると、作業中のソースがW3Cのオンラインサービスに送信されるので、特に未公開コンテンツの場合はちょっと...となってしまうかもしれません。また、テストサーバーにIP制限をかけていたり、会社からThe W3C Markup Validation Serviceを利用する事ができない(なぜ?)、といったこともあります。
以前W3C Markup ValidatorとValidator.nuをローカル環境(Mac)にインストールという記事も書きましたが、これも慣れていないと結構敷居の高い作業です。また、僕のように諸事情で作業マシンが変わってしまうとまたやり直しです...。
そんな中、偶然Docker Hub Registryでmagnetikonline / html5validatorを見つけました。W3C Markup ValidatorとValidator.nuが含まれており、素早く自前のマークアップバリデータを立てる事ができます。
ひとまず手軽に試す事ができるAmazon EC2で動作させてみました。
作業手順
- EC2インスタンスのセットアップ
yum install -y docker
でDockerをインストールservice docker start
でDockerを起動docker pull magnetikonline/html5validator
を実行してイメージをダウンロードdocker run -dp 80:80 magnetikonline/html5validator
を実行してhtml5validatorコンテナイメージからコンテナを起動
以上、10分程で完了してしまいます。Dockerさえ入っていれば簡単で便利すぎるという印象です。EC2インスタンスに割り当てたElastic IPにアクセスすれば、下記のようにマークアップバリデーターが表示されます。
MacへのDockerのインストール〜バリデーターの立ち上げ
実はDockerを触り始めたのはごく最近で、まだMacには環境を準備していませんでした。Installing Docker on Mac OS Xに解説があったので試してみたところ、Macでも簡単にDockerが利用できるようになりました(以前は面倒だったようです)。
- Releases · boot2docker/osx-installerから.pkgをダウンロードしてインストール
- アプリケーションの中のBoot2Dockerを実行(僕はコマンドラインで作業をしました)
- ターミナルに
export DOCKER_HOST=tcp://192.168.59.103:2375
のような表示が出るので、IPアドレス(192.168.59.103
)を控えておく。 docker pull magnetikonline/html5validator
を実行してイメージをダウンロードdocker run -dp 80:80 magnetikonline/html5validator
を実行してhtml5validatorコンテナイメージからコンテナを起動- 3.で控えたIPアドレスにブラウザでアクセス
参考:複数ページを一括でチェックするには
以前オリジナルテンプレート・ビルド環境2013年版の作成メモで触れていますが、自作のgrunt-simple-xmlsitemapでサイトマップを作り、Site Validatorを使ってチェックしています。
※Site Validatorでalternate validation serverの設定が必要です。ENV['W3C_MARKUP_VALIDATOR_URI'] = 'http://example.com/validator'
と書けばよいらしいのですが、実はRubyに詳しくなくてどこに書けばよいか分からず、gemでインストールされたファイルを直接書き換えてしまっています(汗)。→2014年9月7日に解決しました。
参考:気になるツール
先日gulp.jsのプラグインを眺めていると、gulp-htmlhintを見つけました。これも検証に利用できるのでしょうか。要研究。