HTML 5への移行の是非。

テーマ

現在何かと話題になるHTML 5について、今すぐ導入してよいのか、或いはHTML 5にどう接するべきかなどを考えてみたいと思います。

はじめに:HTML 5を使うなら自己責任で。

初めにお断りしておきますが、制作者は誰彼構わずHTML 5を勧めるような事は致しません

HTML 5に関する記事を書いているのは、あくまでも新仕様に関心を持っているからに過ぎないからです。

それでも、<canvas>要素などこれまでになかった魅力的と思われる新機能の導入から、HTML 5の導入を検討している方も多いのではないかと思います。

しかし、あくまでも未勧告である事を忘れないでください。

勧告されていないと言う事は、今後も仕様案の変更は充分あり得るからです。

実際、制作者がHTML 5を導入してから、制作者が多用している<figure>要素の仕様案に大きな変更があり、一日掛けて全文書の<figure>要素を書き直した事があります。

このような事が現実にあり得る以上、HTML 5を導入したいと言う方は、仕様案の変更に迅速に対応出来る方策を用意したうえで自己責任で導入すべきと言えます。

従って、自己責任を負い切れない方や、仕様案の変更に対応するのが困難な方には決してお奨め致しません

HTML 5に関して取るであろう姿勢。

現在未勧告であるものの、何かと話題になる事の多いHTML 5について、HTMLに興味を持っている方は以下のような姿勢をとると思います。

急進派が採るであろう道。

ウェブ規格に関して、急進的な態度を採る方は、以下の道を採る事でしょう。

今すぐにでもHTML 5を導入する!

制作者もこの道を採りました。

過激派に近い急進派はこの道を採るかも知れません。

或いは新機能がどうしても欲しくてこの道を採る方もいるでしょう。

勿論、未勧告ですので、仕様案の変更に対応するためPerlでのマークアップ変更スクリプトを何時でも書いて走らせられるようにしております。

そのような事が出来ない方は、くどいようですがやめた方が良いでしょう。

HTML 5の導入を視野に入れて準備をする

穏健な急進派或いは進歩派の方は、リスクを考慮して今すぐ導入しようとしないものの、導入を視野に入れて仕様草案のチェックなどを行う事でしょう。

そして、対応が可能と判断したら導入する事になるのでしょう。

個人的にはお奨めしたい姿勢です。

保守派が採るであろう道。

  • 俺はXHTML派だ。HTML 5など邪道だ!(実際にはXHTML 5にする事も可能です)
  • 俺はHTML 4.01派だ。HTML 4.01こそもっとも完成された規格だ!(制作者がそう思っておりました)
  • 俺は保守的 ISO/IEC15445:2000 信者だ。ISO-HTMLこそ、文書のあるべき姿だ!

…などと、保守派を自認するのであれば、以下の道を採る事でしょう。

HTML 5を学ぶものの利用を考えない

真の保守派は、この道を採るべきです。

仕様などを識る事で、自分の立場の(主観的な)正しさを明確に出来るからです。

理解もしようとせずに頭ごなしに否定する者保守派とは言いません。ただの分からず屋、いやただの賢者気取りの馬鹿です。

未だに HTML5 規格の内容を碌に読んでいないと言っている者の放言を真に受けて、だからHTML5は嫌なんだよと主張する賢者気取りもいますが、語るに落ちたものです

他人には自分の言う事は内容は正しいから言い方など考えず内容で判断して受け入れろと言っておきながら、何時から正邪も碌に判断していない人間の言う事を自分の主張を補強するために持ち出すようになったのでしょうか。

こんな程度が低い手合いが保守的なHTML原理主義者の代表者気取りとは余りにも情けない話しです。

従来のHTMLの理念と言うのはそんなに低いレヴェルだったのでしょうか。

一般人が採るであろう道。

HTMLに興味を持つものの、導入の是非を考えない方が最も多いかと思います。

そのような方は、HTML 5が勧告されて必要に迫られたときに導入すれば良いでしょう。

  • HTML 4及びその流れを汲むXHTML 1の時代が余りにも長かったので、急に変えるのは無理があると言うのも理解出来ます。

未勧告のHTML 5を用いる事に問題はないのか?

「HTML 5はまだ勧告されていないから使うべきでない」と言うのは分かりますが、絶対にダメとも言えません。

それこそ、自己責任で臨むのであれば、今すぐ使っても構わないとさえ言えます。

実は、W3Cがこれまで策定してきた仕様と、HTML 5の決定的な違いがここにあるのです。

今まで、W3Cは実装の有無は考慮せずに新仕様を勧告し、それをヴェンダが導入するのを待つと言うやり方を採ってきました。

そのため、草案段階で新仕様を導入しようとすると、草案改訂などでトラブルに遭う恐れが大変大きくなるのです。

加えて、実装の有無を考慮しないで勧告するため、勧告されても無視される事もあります。

一方、HTML 5は大手四大ヴェンダのうち三つが共同で実装状況を勘案しながら仕様を策定しており、一部機能を除けば導入してもトラブルになる心配は殆どありません。

ところで、"『テキストをマーク附けして互換性の高い文書を作る』と云ふ事を『正しいHTML派』の人間は主張してゐたが、HTML 5の導入で從來の『正しいHTML』は『古いHTML』になつてしまう"と言う愚かしい意見もありますが、この意見を述べられた方はHTML 5で互換性の高い文書が作れるようにWHATWGは実装を勘案すると言う努力を重ねている事実を認めないのでしょうか。

ついでに言えば、この文書はウェブログでもなければ、ウェブアプリケーションでもない、すなわち彼が言うところのHTML 5の用途に反した使い方しかしておりません。そのような使い方をして何が悪いのでしょうか。

唯一の心配点は、未勧告なので仕様案の変更があり得る事です(人に依ってはそれが最も重大かと思われますが)。

だからこそ、制作者は、草案の変更に対応出来る方が自己責任で利用する事は出来ると断言するのです。

リスクだらけであれば、こんな事は仮令自己責任であったとしても恐ろしくて言えません。

HTML 5へ移行するとしたら。

正直な話、HTML 4/XHTML 1からHTML 5への移行はそれほど難しくはありません。

極端な話しですが、HTML 4.01 ストリクトやXHTML 1.0 ストリクト/1.1などであれば、大半の文書は文書型宣言を書換えるだけで移行が済んでしまうでしょう。

もっとも「そんな移行に何の意味があるんだ?」と思われる事でしょうから(制作者も無意味だと思っている)、当然新機能を何らかの形で使いたくなるでしょう。

HTML 5で是非使いたい要素。

HTML 4/XHTML 1からの移行が可能な方で、移行を検討している方に、制作者が個人的にお奨めしたい要素は以下のものがあります。

<article>要素

<article>要素は、独立した記事セクションです。

ウェブログやニュースサイトなどのように、複数の記事が一文書に共存する場合には記事ごとにそれぞれ<article>要素としてマークアップする事が可能になります。

その結果、各<article>要素にid属性を与える事で、記事への直接参照が可能になります。

勿論、その他のウェブサイトのように複数の記事が共存しないサイトであっても、文書の主要部を単一の<article>要素としてマークアップする事が出来ます。

<section>要素

セクション関連の要素には幾つか定義がありますが、一般のセクションには<section>要素が使えます。

セクション関連の要素を上手に使えば、文書は更に構造化されるようになるだけでなく、一つのセクションを一つのオブジェクトのように扱う事も可能になります(DOM操作などで有用です)。

<mark>要素

引用してきた文言のうち特に言及したい箇所など、閲覧者に注目してもらいたい箇所は<mark>要素としてマークアップします。

CSSでは、蛍光ペンのような背景色などを用いる事で、閲覧者の注目を引けるようになるでしょう。

<figure>要素

文章に組込まれない画像について、HTML 5では無理矢理故事付けがましくリスト形式にする必要はもうありません。

そう、<figure>要素内に画像を入れるだけで済むからです。

<i>要素など

今まで論理要素として定義されていなかったテキスト(定義を伴わない専門用語など)を他の要素を拡大解釈する必要もなくなりました。

従来斜体テキストと言う定義しかなかった<i>要素が、特別なスタイルを持つ汎用のインライン要素(フレージング内容要素)として利用可能になります。

同様に<b>要素や<small>要素も、汎用のフレージング内容要素として利用可能です。

これらの汎用要素に適切なクラス名を与える事で、今まで<span>要素を用いていたものでも、CSSに対応していない環境などでも適切に処理されるようになります。

新規にHTML 5文書を作成するのであれば、これらの要素を積極的に活用する事をお奨めしたいものです。

決してHTML 5の新機能は<canvas>要素<video>要素などだけではありません。

導入は時期尚早と思われる要素。

<video>要素<audio>要素は、対応している形式が統一されていないため、まだ安心しては使えません。

  • 特に現在最もシェアの高いWMV形式は、何処もサポートしていないようです。

また、<details>要素や<menu>要素など、動的な要素も現状ではまだJAVAスクリプトとの併用が必要になっており、使えないと言えます。