非推奨の要素
HTML 5には「非推奨の(deprecated)」要素はあまり多くありませんが、少しは存在します。以下はWebの初期に作られたものであり、一般には、より特殊なコンテンツでもっとうまく処理できます。
- <applet>-このタグは、Javaが次の主要なクライアント言語になるだろうという見方が広まったころに現れました。現在では、他のさまざまな技術の発展により時代遅れと見なされています。このタグはHTML 5で非推奨になっており、一般には代わりに
<object>または<embed>を使って同じ機能を達成すべきです。 - <marquee>-このタグは、初期のブラウザにアニメーション的なアイキャッチをもたらす目的で導入されたもので、
div要素内でコンテンツをスクロールするために使われます。このタグの機能は、今ではCSSとJavaScriptを適宜使用することではるかにうまく実現できます。このタグはブラウザ内でアニメーション機能を実現する何百ものAJAXライクな動作の1つにすぎません(しかも広く使われているわけでもありません)。 - <acronym>-このタグは、もともと識別用の頭字語をコード化するために作られたものですが、もっと短い
<abbr>タグに似すぎていました。代わりに<abbr>タグを使用すべきです。 - <dir>-これはもともと静的なコンテンツを想定してディレクトリリストを作成するために使われていたのですが、新しい要素によって時代遅れになりました。代わりに
<ul>を使用してください。 - <frame>、<frameset>、<noframes>-
frameは公式に廃止されています。これはWebデザイナ、SEOの専門家、プログラマ、およびセキュリティの専門家にとって悩みの種となるもので、もはやHTML言語から公式に抹消されています。埋め込まれたコンテンツを使わなければならない場合は、代わりに<iframe>要素を使用してください。フレームに対するニーズの多くは一般にAJAXや関連するローカルクライアント/サーバ対話でも実現できます。 - <isindex>-これはHTMLの古代期からの生き残りで、あまりにも古いものなので、どんなものなのか調べないとわからなかったくらいです。
<isindex>要素は1行のテキスト入力用コントロールを作成します。代わりに<input type="text">を使用してください。 - <basefont>、<big>、<blink>、<center>、<font>、<s>、<spacer>、<strike>、<tt>、<u>-CSSによって、これらのすべてが時代遅れになりました(もちろん、
<b>と<i>も時代遅れになりましたが、この2つはデザイン精神の中にしっかり根付いているので、完全に取り除くのは無理でしょう)。一般に、これらが必要な場合は、代わりに<span>と@style属性または@class属性(@classの方が好ましい)を使用してください。
これらの要素に加え、以下の属性も非推奨になっています。
- @name-これは
@id属性に置き換えるべきです。従って、#idnameは今では"idname"という値の@nameを持つ要素ではなく、"idname"という値の@idを持つ要素を指します。 - @alink、@background、@bgcolor、@link、@text、@vlink-これらは
body要素やそこに含まれているコンテンツの色(@backgroundの場合は背景画像)を制御していました。これらはどれもCSSに同等のものがあるので、そちらを使用すべきです。
今日ではさまざまな世代のHTMLジェネレータが普及しているため、これらの古い要素が消えるまでにはしばらくかかるでしょう。しかし、いずれにしてもHTML 5が示しているメッセージは明確です。つまり、CSSはHTMLのプレゼンテーションレイヤであり、そのように扱うべきだということです。
ドキュメント言語への道
HTMLが1991年に初めて登場したとき、この言語は科学ドキュメントのための引用要約を作成するという本来の目的にまったく適ったものでした。3.0および4.0のリリースでは、この本来の目的を置き去りにしてきましたが、現在の開発ではHTMLの一般化に力点を置く傾向があまりに強く(<div>要素と<span>要素しかないと言ってもいいぐらいです)、その結果、ドキュメント構造の基礎を提供する構造がかなり失われつつあります。HTML 5にはAJAX革命への譲歩がかなり含まれていますが、もっと根本的な目標の1つは、この言語を適切なドキュメント言語にすることです。導入されつつある変更によってこの目標がうまく達成されるかどうかはまだ分かりませんが、建設的なスタートであることは間違いありません。
このシリーズの次回の記事では、HTML 5に関連したフォームコンテンツとデータバインディングモデルについて取り上げ、新しい入力要素や、リストとテーブルのデータバインディング機能、DOMサポートなどについて説明します。
