2008-04-30

HTML5規格が、だいぶ現実的になった

http://www.w3.org/html/wg/html5/
http://www.w3.org/html/wg/html5/

4月28日に更新されている。何が現実的になったかというと、style属性がグローバルになったことだ。また、font要素は廃止された。以前は、非現実的なことにstyle属性は廃止され、font要素はWYSIWYGエディタのためだけに残されることになっていたのだ。

なにがダメだったのかというと、少し前にも愚痴を書いているが、例えば、このブログがHTML5で作られている場合、文字色を指定するのが困難だということだ。確かに、CSSで文字色を指定することはできるが、ある記事だけで、ある色を使いたい場合、一体どうやって指定すればいいというのか。昔ならば、font要素が使えたし、今ならば、span要素にstyle属性を使えばいい。

<font color="#ff0000">アカの手先しか使わないobsoleteなマークアップ</font>
<span style="color : #ff0000 ;">ソビエトロシアでは、規格が君に遵守する!</span>

しかし、以前のHTML5では、そのどちらも廃止されていたので、16777216通りのクラスセレクタを作るか、style要素をscoped属性とともに使うしかない。

//style.cssあるいはhead要素内のstyle要素
//ブログである記事のためだけにこんなことをするのは非現実的
//これと似たようなクラスセレクタを、あと16777215個つくる。
.communist-color { color : #ff0000 ; }

//article.html
<span class="communist-color">ウラー</span>

//すくなくとも、ひとつのHTMLだけで記述できる、現実的な解決方法
//しかし、本当にこんな面倒な方法を取らなければならないのだろうか。
<article>
<style scoped="scoped">
.communist-color { color : #ff0000 ; }
</style>
<p>
<span class="communist-color">ウラー</span>
</p>
</article>

どちらの場合も、ただ文字色の色を変えたいだけなのに、恐ろしく面倒な記述が必要になる。たしかに、物理的なマークアップを排除して、純粋に意味でマークアップするのは理想的だが、現実のユーザは、ある特別な文字色を指定したいと思うはずだ。いままで簡単にできていたことが、HTML5でできないとなると、誰がHTML5など使いたがるだろう。あるいは、HTML5の使いたい機能だけ使って、残りはHTML4.01という、頭を悩ますひどいサイトだらけになるだろう。とりえあず、この問題は解決した。HTML5を使う価値が出てきたというものだ。

No comments: