W3C HTMLバリデータによる構文チェックは必要性はほぼ無いことが分かった
2015/11/16
HTMLコーダー、マークアップエンジニアおよびWebデザイナーの方々は一度は「W3C HTML Validator」を使用し、HTMLの構文・文法に誤りが無いかチェックをしたことがあるはずです。
しかし、この構文チェックにこだわり過ぎるのは禁物です。何故なら構文チェックで満点と取っても、それは制作者の自己満足でしかないからです。
この記事の目次
構文チェックで満点を取ることが自己満足である理由
必死にバリデータで満点を取ったところで、それ自体がクライアントにとって一体どれだけの価値があると思いますか?HTMLにちょっと詳しいクライアントであれば「おっ、満点なんだ。さすが!」と思ってくれるかもしれませんが、大半のクライアントは全く気にしません。
「バリデータで満点取れば動作の安定が保証される」なんて言う人もいますが、現時点でW3Cに完全準拠したブラウザは存在しません。IEは論外ですがFirefoxやChromeも少なからず問題は抱えているわけです。つまり動作の保証にはならないわけです。ブラウザの性能が向上し全てのブラウザがW3Cに完全準拠する時代になればバリデータで満点であることはクライアントにも価値を与えることにも繋がると思いますが、現在それをアピールするのは時期尚早であり、コーダーの自己満足でしかないと言えます。
そもそもルール準拠は必要か?初心者のほど標準準拠にこだわる傾向がある
HTML5が存在せず、XHTML1.0やXHTML1.1が主流だった頃、そして私自身がコーディングを勉強して1、2年ぐらいの頃でしょうか。その頃の私は異常なくらい満点を取ることに執着していました。
その理由は「満点が取れない制作者はレベルが低い」という考えがあったからです。私がそうだったように経験が浅い初心者ほど構文チェックで満点を取ることに執着する傾向にあると思います。
しかし、経験を積んだことによりルール準拠は必須ではないことを知ったのです。もちろん、タグの閉じ忘れやIDの重複で動作に不具合があるのは論外ですが、ルールを守るかどうかはケースバイケースで良いと思うんですよね。
例えば、接客業にはマニュアルがありますが、場合によってはマニュアルに無い対応をしたり、マニュアルとは異なる対応をせざるを得ない状況もあるわけですよね?コーディングも同じで場合によっては文法に反したCSSハックを使うなんてことがあるわけです。他にも、全ての画像にaltが必須だというルールも個人的には必要無いと思います。空のaltを入れるくらいならalt属性の記述自体が必要が無いわけですよね。これはエラーが出ないようにする為だけの作業であり、それ以外の価値は無いのです。
しかし、バリデータを使用することは正しい文法を理解する手助けにもなりますから、学習中の初心者は役立てるのも良いでしょう。無知でルールを破るのと、知っててあえてルールを破るのとでは大違いですからね。「満点を取って!」と要望するクライアントも少なからずいるので。
満点を取る為の作業もタダでは無い
もし無償で満点を取るのであれば言うことはありませんが、仕事でやるなら一旦考えてみる必要があると思います。
例えば、バリデータで満点を出す為の作業を全体の10%を要するとしましょう。100万円のコーディング案件を受注した場合、その作業に10万円もかけることになるわけです。クライアントにとって価値の無い作業に10万円は大きな出費だと思いませんか?クライアントにその事実を告げれば「そんな作業はいらないから値引きしてくれ」と言われるはずです。あくまで制作費用を出しているのはクライアントです。望まないオプションは付けるべきではありません。
ある程度経験を積んだHTMLコーダーであれば特別意識しなくてもエラーの無いコーディングが出来ますが、初心者はエラーの解決方法も手探りで調べていくため作業全体の20%、30%を価値の無い作業に費やすことも珍しくないのです。
また、現在は外部サービスと連携することが当たり前になったこともあり、外部要因による構文エラーが発生するケースも多いです。たとえばXHTML形式のソースにTwitterを設置すれば必須属性が記述されていないという理由で、Amazonアソシエイトなら実態参照文字を利用していないという理由で構文エラーが発生します。勿論こういったエラーも修正は可能ですが、すでに動作が保証されているものをわざわざ修正することは無駄な作業でしかないと思います。
クライアントに価値を提供しよう
いくら満点を取ることにこだわって時間をかけてもクライアントには価値を提供できません。つまり、こういった部分に注力すればするほどクライアントに「料金に見合った結果が得られない」という不満が生まれてくるはずです。結果が出なければ受注が減るわけです。そして受注が減るということはあなたの給料にも響いてくるわけです。
費用全体の10%を満点を取ることに費やすくらいなら、「割引をする」「SEO対策にあてる」「運用コストを抑えられる構造にする」といったクライアントの価値に繋がることをすべきです。そうすることで顧客満足度は上がり受注も増え、あなたの給料も増えるはずです。
目標を見誤らないことが大切
周知の事実かもしれませんが多くの有名なサイトは満点には程遠いという現実があります。有名なWebクリエイターのサイトやブログもそうですし、人気絶頂のWeb制作会社のサイトもそうです。これらのサイトは大勢に利用され、価値を与え、大きな利益を生んでいるわけです。
HTMLコーダーであろうと、Webデザイナーであろうとコーディングやデザインをすることが目的化してしまってはいけないのです。クリエイティブ系はコーディングやデザインといった作業自体が好きでなる人が多い職業なので目標を見誤りやすいと感じます。
目的はあくまでもクライアントに価値を与えることであるべきです。クライアントは価値を得る為に制作を依頼しているわけですから、その費用を製作者の自己満足に充ててはいけないのです。
おわりに:コーダーもお金やクライアントを意識することが大事
私もプロとしてコードを書く立場なのでこのような発言は批判を浴びそうな気がしますが、お金の動きやクライアントの思考を深く意識すると、製作者の「こだわり」は時として価値の無いものになるのだと感じるようになりました。
コーダーはほとんどクライアントとの接点が無い為、自分本位の作業になりがちです。実際、私自身がそうでした。
「綺麗なコードを書きたい」
「凝ったロジックを組みたい」
「技術を高めたい」
これらは向上心のあるコーダーなら誰もが持っている感情ですが、自分に意識が向いているんですよね。クライアントに向いていないわけです。費用はクライアントが出しているわけなので、この考えは間違いなのです。
PS
私がこういった思考をするようになったのは、このブログで本格的にアフィリエイトをするようになったことがきっかけです。ものを売るには相手目線になり価値を提供することが何よりも大切なんですよね。