バリデーションツールの便利さはあると思う。でも、あのほめ言葉は、外交辞令。
hatenaスターじぶんでつけてしもた...
W3c htmlバリデーションサービスやhtmllintは、一定のドキュメントタイプに沿って記述されているかどうかを、調べるツール。
調べて、指摘するだけなので、間違っていれば、直すのは自分。
Htmllintは、プライマリサイトだけでなく、いろんなサイトで、運営している。
Google検索で、1位なのが、慶応のサイト。最近、プライマリサイトでは、グーグルの広告がついた。
前出の慶応は世界3箇所のW3拠点のひとつ。Htmlの検証ツールは、htmllint以外にもある。
W3本家のソースを見ると、
<meta name="generator" content="HTML Tidy for Mac OS X (vers 1st March 2004), see www.w3.org" />などから見ると、HTML Tidyを使っている。他にも、htmlオーサリングツール [ex:DreamWeaver(adobe)]などにも、html検証ツールが装備されている。
最近では、Firefoxでは、tidyを使ってソースを検証することも出来るTidyは、コマンドライン版から、php、ブラウザのプラグインまで、「どんだけ〜」というぐらい準備されている。
Tidyは、検証だけを行なうわけではなく。補完をしてくれる。
この補完機能は、結構便利で、たとえば、html4.01なら職人的に、バリバリテキストエディタに、頭に描いたレイアウトをタグに変換して入力できるような人が、xhtmlのドキュメントを、おんなじ感覚で、入力してもきっちり補完してくれる優れもの。
でも、「これって、どうなのよ?」といわれれば、
htmlの検証ツールといっても、オプションの設定や、設定の問題かどうかわからないけど、検証結果に差異が生じる。
厳密にどうなのかは、理解不足もあると思いますが、
したがって、Web標準準拠といっても、何にどの程度準拠しているか、理由などが必ずしも明確ではない。(使い方のわからない私のようなものには、)
間違いなく言えるのは、機械的な、チェックしかやっていないし出来ない。という事。
DIVタグをマトリョーシカのように、入れ子に配置しても、文法的に間違っていなければ、バリデーションは、文句を言わないし、TIDYだって補完を続行するだろう。
ましてや、ソコントコ、見出し、つけないとだめだよなんてアドバイスもしない。
また、w3cのドキュメント型でも、非推奨タグなんてのがあって、使っていいのか悪いのか、グレーゾーンみたいなものもある。
なぜ、Bは非推奨で、STRONGは、問題がないのか、私は、理解できるようになるまで時間がかかった。
HTMLLINTでは、このように解説しています
文字フォント修飾のタグには、物理的なものと論理的なものがあります。物理的なものというのは、太字の <B> のように直接的なもので、論理的なものというのは、強調の <EM>という意味的なものです。SGMLの精神からは、なるたけ意味的な表現をするように心がけましょう、といったところなんですが、なかなかそうもいきませんね。WAIでも使わないように薦められています。この警告は減点されません。
この考え方から行けば、クラス名やIDの命名も同じような配慮が要りそうだ。
結局のところ、文脈に見合ったタグが使用されているかなどは、とても評価できないし、
strongタグのスタイルで、font-size:small font-weight:normal等、おかしくたって、減点などしない。
(もし出来たとしたら、タグなどそもそも入力する必要もないわけで、)
だから検証ツールで100点を取るということは、形式的なこと。
では、そんなものあてにすることないということになるんだけれども、機械的にチェックするだけでも、恩恵はある。
たとえば、XHTMLドキュメントをXML宣言付で作ろうとしたら、
HTML4.01などに比べて、形式的なミスに対して、ブラウザの挙動はデリケートになって、宣言の前に改行があるだけで、FireFoxは表示をやめる。
書き間違えたりすることはよくあるので、それらの直しをするときには、便利でいいといえる。
誰しも、これでいいんだろうか?と不安を持つ。
Htmlに関する説明は、こういう風にタグを書くと、こんな風に表示されます。みたいなのがほとんどで、それを鵜呑みにした結果。IEではうまく表示されても、他のブラウザじゃうまく表示されないページになってしまって困る経験を大抵つんでいるからだ。
画像タグを貼りつける時に、
1.<img src="sample.png" width="100" height="100" alt="プレゼントの花の画像" />
2.<img src="sample.png" style="width:100px; height:100px;" alt=" プレゼントの花の画像" />
どちらのコーディングも正しい。両方の表現が混在していても、検証ツールは、何も警告は出さないだろうと思う。
(ごめん、lintは、サイズの属性を入れろとでたと思います。w3cは、最近直ったかもしれませんが、CSSとhtmlのシールで、片方はスタイル指定。片方は属性で指定という状態がしばらくありました。
w3cvalidは、スタイル指定をしても属性指定でも、通過。lintは、減点なしのエラー。)
でも、どうなのか?
画像が、拡縮される可能性があるなら、1の形式を選ぶだろう。
スタイルを適用できないブラウザでも、原寸で表示されることがないような配慮として、
画像が、拡縮される可能性がないなら、2の形式を選ぶだろう。
一括してスタイルを指定したり効率的に作業が出来る。
コーディングの作業の中で自然発生し、決定されていくのだろうと思う。
スタティックhtmlをべた打ちするだけという人は少なくて、スクリプトなどから出力することも多いと思うので、スクリプト側からの必要性として、タグを記述することもあるだろうし、もっと複雑なことが行なわれているんだろう。
「Valid html でいこう」というのは、見る人たちは、そのWebページを、快適に見ることが出来たり、コンピュータが、記述を理解することが出来たり、編集者が、ドキュメントの不具合やデザインを、快適に変更することが出来たり、 快適にするための品質の事を指している。
その100点のコスト、高く払いすぎていないか。
fireworks 等で作り始めると、とっても手間がかかってしまうように思える。
テキストエディタなんかから、はじめたほうが楽と感じるのは私だけだろうか、
100点は、誰かが、ドキュメントを快適に見ることが出来るなんて、保障しているわけじゃなくて、ルールに従っているかどうかだけを見ている。
バリデーションツールは便利で役立つが、バリデーションツールのほめ言葉は、外交辞令と思っておくことを勧める。