«ライブラリのアイテムをシンボルに変換するJSFL |  ホーム  | Adobe AIRで作るデスクトップアプリケーション 第7回»

[その他]

XHTMLでの非推奨タグたち

HTML 4.01時代に、何気なく使ってた便利なタグ、だんだん使えなくなっていくんですかねぇ、というお話。HTML 4.01ですら、2000年あたりからblinkタグとかmarqueeタグあたりは使わなくなってましたけど、もう少し突っ込んだタグの使い方について考えてみました。

HTML 4.01は、すでに時代遅れになった感がある。理由としては、Internet Explorer 5系列やNetscape Navigator 5系列といったレガシーなWebブラウザが市場からほぼ一掃され、当時(90年代末)は積極的にサポートされていたtable要素によるレイアウトが、逆に新しいWebブラウザではレンダリングにバグを抱える、といった逆転現象が発生していることにも一因がある。さらに、AjaxやFlashなどによるコンテンツの再利用性へのニーズにXML形式であるXHTMLドキュメントが適している、といったプラス方向の要因も挙げられるだろう。

そのような現状を考え、XHTML 1.0による記述を積極的に行う必然性が出ている、あるいはHTML 4.01で記述するにせよ、XHTMLでサポートされなくなるユルい記述方法を捨て去らねばならない時期に、サポートされなくなっていくであろう要素を使わずにHTMLドキュメントを作成することに積極的な意味が発生している。

そこで、HTML 4.01時代には利用されていたものの、XHTMLの世界ではサポートされない、あるいは策定が進むXHTML 2.0で切り捨てられる方向の要素(タグ)を一覧しておきたい。あわせて、代替要素やスタイリングをあわせて同等の効果を実現する方法についても解説しておきたい。

大文字の要素名は存在しない?!

意外かもしれないが、XHTML文書の定義には、IMGTRといった大文字による要素名は存在しない。XHTMLの定義は、XMLによる定義そのものであるため、XMLのDTD(文書型宣言)に記述されている小文字によるimgtrなどのみが利用できる。従来のHTML 4.01としては利用できていたドキュメントが、XHTMLとしてはまったく使えない、ということになる。HTML 4.01ドキュメントであっても、今後は大文字の要素名を使用しないことを推奨する(HTML 4.01で小文字の要素を利用することに制約はない)。

見た目の表現を既定する要素は廃止の方向へ

いささか分かりにくいタイトルになってしまったが、XHTMLにおいては、その基本構造をXML定義に負っているため、明確にHTMLと異なるコンセプトで設計されている。それは、次の点に集約されるだろう。

  1. 見た目の表現と文書の意味的表現を分離すべき
  2. XHTML文書においてはドキュメントの意味を表現すべき
  3. XHTML文書内の要素は見た目の表現を定める属性を持たないべき

これらのコンセプトで設計されたXHTMLにおいては、例えばimg要素のwidth属性やheight属性による表示サイズ制御は利用しない方がよいことになる(利用自体は禁止されていない)。あるいは、表データの構造を持たないドキュメント要素について、tableを利用することは、かなりの積極性をもって抑制することが求められている。これらを踏まえて、XHTML+CSSによる記述で廃止予定の要素を含む非推奨タグを一覧する(規格としての非推奨だけでなく僕的非推奨も含む)。

■廃止予定および利用非推奨要素(私的非推奨含む)
要素名  
font font要素は文字修飾のために利用されている。XHTML+CSSにおいては、span要素を利用し、クラス名を当ててfont-sizefont-weightfont-familycolorプロパティなどをCSSで定義することが推奨される。
strong 強調する文字修飾を行う要素として利用されているが、CSSのfont-weight:bold;を利用することが推奨される。b要素も同様。
center 文字列の中央揃えを行う要素として利用されているが、CSSのtext-align:center;を利用することが推奨される。
basefont ドキュメント全体の基本となるフォントサイズを指定する要素だが、XHTMLでは明確に代用できる要素は存在しない。代替手段として、body要素に対してCSSでfont-sizeを指定する。それにより、body要素からフォントサイズを継承(inherit)する要素についてはbasefont要素を利用した場合とおおむね同じ効果が得られる。
iframe インラインフレームとして利用していた要素だが、object要素で代用する。なお、iframe要素が許容されないのは、XHTML 1.0 StrictおよびXHTML 1.1の場合のみ。
strike 打ち消し線として利用していたが、文字列をspan要素に入れ、CSSでtext-decotation:line-through;を指定することが推奨される。また、s要素も打ち消し線として利用していたが、同様のCSSを利用する。
u テキストに下線を与えるために利用していたが、CSSでtext-decoration:underline;を指定することが推奨される。
ilayer インラインのレイヤーを作成するために利用していたが、そもそもNetscape独自タグであったため、使用が推奨されない。div要素を複数用意し、idで管理してposition系プロパティおよびz-indexプロパティ、visibilityプロパティ、displayプロパティなどを組み合わせて同等機能を実現することが推奨される。
i 文字列を斜体(イタリック)で表示するために利用していたが、CSSでfont-style:italic;を指定して実現することが推奨される。
tt 文字列を等幅で表示するために利用していたが、CSSでfont-family:monospace;を指定して実現することが推奨される。フォントファミリーの等幅メタ名称は、Webブラウザ(Safari系統)によってはサポートされないため、実フォント名を指定する必要がある。

つづく

トラックバック

このエントリーのトラックバックURL:

http://www.anthill.jp/mt/tb.cgi/281

コメント

コメントを投稿

いままで、ここでコメントしたことがないときは、
コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。
承認されるまではコメントは表示されません。そのときはしばらく待ってください。