HTMLの正しさが軽視されるのはなんでだろうね

プログラミング言語っていうのは文法が規定されていて、それに反したものを書くとコンパイラなりインタプリタなり処理系がエラーを吐く。

これは当然のことで、プログラマは皆使ってる言語の仕様を守る、というか守らなければ成果物ができない。

気にくわない仕様があったり、どうしてもこう書きたい、なんてことがあってもそれは出来ないし、どうしてもやりたくて仕方ないなら自分でそれが出来る言語を作るしかない。

もし間違った文法にそってかかれたプログラムを許容する処理系があったとしよう。例えば、C言語で行末にセミコロンが書かれていなくても、構文解析でどこにセミコロンがあるべきなのか把握できる程度なら自動で補完してくれるとか、そういうことだ。

もちろんセミコロン忘れ以外にも様々な部分で許される文法違反が出てくるし、プログラマがそれぞれ好き勝手に俺のやり方でやると、書き方もどんどん滅茶苦茶になってくる。

そういう風に標準に定められた文法を守れないソースが増えてしまうと、後々のメンテナンス等に大きな支障を来すことになるのはどう考えても明らか。だから、コンパイラとかは絶対に文法違反は許さない。

でも、HTMLだとどうだろう。

HTMLだと、W3Cの勧告で、例えばどの要素は使うべきじゃないとか、どの要素はどの要素の入れ子になってはいけない、とかが言われているし、要素云々以前にタグの書き方等も定められている。

しかし、HTMLを書いた人がその勧告に従っておらずとも、あるいはタグの書き方が間違っていても、UAの中でもIE,FF,Operaなどブラウザはそれをある程度補完してまともに解釈してくれる。(当然ぶっ飛んで間違ってるようなのは無理だが)

つまり、間違ったHTMLをそのまま受け容れてしまう。

プログラミング言語ならば間違ったものからは成果物が生まれないのに、HTMLだと生まれてしまう。ブラウザによってページは確かに表示される。

このことが、HTMLを書く人たちに「正しく書くこと」の意識を薄れさせている。

間違っていても「ここでちゃんと見えている、表示されている」からOKである、と思ってしまうような人を増やす原因になっている。

もちろんHTMLでも、正しくないものは後々のメンテナンスに支障を来す。たとえば色付けにfontなんかを濫用していれば、あとでCSSを適用してデザインを変えようと思ったとき何かに困るだろう。

プログラミング言語でも、文法の面でなく例えばアルゴリズム面などで「今は動くからこれでいいや」では後々困るように、HTMLでも「今は表示されるからこれでいいや」ではいけないのである。

締めの文章が思いつきませんでしたごめんなさい。