訪問者に優しいWebサイト作り

サイト内検索  

HOME一歩先行くサイト作成編→XHTMLへの移行(実行編)

XHTMLへの移行(実行編)

HTML4.01からXHTMLへ移行する場合、移行するXHTMLのバージョンによって、必要な作業が微妙に異なります。
 「XHTMLへの移行を視野に入れる」で、下準備をすませてから、実際の移行作業に入って下さい。
 移行のしやすさ、古いブラウザへの対応では、XHTML1.0の方がやりやすいです。

XHTML1.0への移行

Step1:XML宣言を行う

これは、文字コードがUTF-8、UTF-16以外の場合は必要です文書の文字コードがUTF-8もしくはUTF-16以外で、サーバ側で文書の文字コードの指定ができない場合に必要になります。(XHTML1.0 第2版)。Shift-JISコードでXHTML文書を作成した場合は、<?xml version="1.0" encording="Shift_JIS"?> を先頭に入れます。

STEP2:文書型宣言を書き換える

HTML4.01 Transitionalの場合、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> を、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> と書き換えます。
 Strict/Trasitional/Framesetは、HTML4.01の時と同じです。URL部分については、Strictはstrict、Framesetはframesetとなります。

STEP3:言語コードの指定にxml:langを入れておく

HTML4.01 <html lang="ja"> → XHTML1.0 <html lang="ja" xml:lang="ja">

STEP4:名前空間を記述することで、XHTMLの要素であることを示す

名前空間の指定は最初にしておけば、あとは意識することがないので、html要素の中で、以下のようにしておくとよいです。
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">

STEP5:タグの省略をしない

 HTMLの場合、いくつかの要素でタグの省略が許されていましたが、XHTMLでは一切出来ません。html要素、head要素、body要素は必須になります。p要素やli要素などでの終了タグも省略できません。

STEP6:空要素のタグを />で閉じる

ただし、書き方としては、<br />と/の前に半角スペースを入れておいた方がよいです。これは古いブラウザとの互換を維持するためです。

STEP7:script要素やstyle要素は外部ファイルにする

これは、script要素やstyle要素で使われる、<,>,&の記号がXHTMLでは特別な意味を持つため、インラインで記述していると思わぬエラーの原因になるからです。

STEP8:属性の省略形表記をやめる

HTML4.01では、<option selected>あああ</option> とselected属性を省略化して記述できましたが、XHTMLでは、<option selected="selected">あああ</option>と属性の値を省略しないで記述します。

STEP9:a要素、map要素にname属性を使っている場合は、id属性を併記する

要するにページ内リンクがある場合及びページ外でも場所を指定している場合、リンク先のラベルをつけるときに、id属性も追加しろと言うことです。併記する理由は、id属性だけだと、対応していないブラウザがあるためです(代表例:Netscape4.x)。なお、XHTML1.0の場合は、併記されていても問題ありません。

XHTML1.1への移行

XHTML1.1は、2001年5月にW3Cから勧告された、XHTMLの最新バージョンです。

まず、XHTML1.0と異なる点は、

ということで、XHTML1.0への移行手順と異なる部分が出てきます。STEP1及びSTEP5〜9はXHTML1.0と同じです。あと、XHTML1.0でMedia Typeにtext/htmlを採用していた場合には、application/xhtml+xmlに変更する必要があります。
また、このバージョンへの移行を考えているのであれば、HTML4.01の文書型はStrictにしておいた方がよいと思います。いきなり、TransitionalやFramesetからの移行は厳しいかと思われます。

STEP2の変更点

XHTML1.1の場合、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
と記述。

STEP3、4の変更点

XHTML1.1では、lang属性が廃止されたので、html要素の中で、言語に関する部分は、xml:lang="ja"のみとなります。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">

STEP9の変更点

XHTML1.1では、a要素、map要素でのname属性が廃止されたため、リンク先のラベルを付ける場合は、id要素のみとなります。

Media Type変更

XHTHL1.1では、Media Typeにtext/htmlを使うべきでないとしています。参考:W3C Note XHTML Media Types

素直に、application/xhtml+xmlと書き換えればOKです。
<meta http-equiv="Content-Type" content="application/xhtml+xml; >

ただし、application/xhtml+xmlを正しく解釈できないWWWブラウザが存在します。このようなブラウザで、文書を開こうとすると、ダウンロードが始まってしまいます。したがって、現状で、XHTML1.1の規格に完全に基づいた文書を作成というのは、アクセシビリティと引き換えになる可能性が高いです。

楽してXHTMLへの移行を行う

XHTMLへ移行するメリットや手順はわかります。けど、ファイル数が多すぎて、手間を考えると二の足を踏んでしまいますという方もおられるかと思います。

すでに、下準備が出来ているのであれば、わざわざテキストエディタを使わずともHTML文書をXHTML文書に変換してくれるというソフトもあります。
XHTML Converter(シェアウェア:\3,000)というソフトです。
制作者のサイトへ

ただし、STEP7のstyle要素やscript要素の外部ファイル化は自力で行ってください。

このサイトのXHTML文書化に当たっては、このソフトのお世話になりました。私の場合、少々、修正をしなければいけなかったのですが、それを差し引いたとしてもかなり楽ちんだったと言っておきます。
Lynxのサイトは自力でしましたが、たった8ファイルの変換に丸1日かかりましたからね・・・

©Copyright 2001-2006 FUMING fuming@neko.chan.ne.jp

リンクに関してはご自由にどうぞ。