作成した HTML をお手持ちのブラウザで閲覧すると,対応状況によって反映されない部分も出てくる。また,HTML 3.2 などでもうまく出力される互換性を考えた HTML を書くストラテジーを考えよう。
Netscape Navigator 3.0x/4.0x,Internet Explorer 3.0x/4.0x について,HTML 4.0 に対してのおもな未対応のフィーチャーをあげておくことにする。
このほかに,細かい点についての対応状況も述べる余地があるが,ここまで読み進められた方ならば,それがあまり大きな問題ではないことはおわかりになるはずである。
Netscape Navigator 3.0/4.0,Internet Explorer 3.0 などで WWW を閲覧されていることを考えると,HTML 4.0 のフィーチャーを駆使した文書が必ずしもうまく出力されない場合がある。互換性を考慮するときは HTML 4.0 Transitional を用いるが,そのときに,HTML 4.0 に対応していない UA に対してもある程度の出力を期待できるような書き方をすることも肝要である。
TITLE 属性は,それが補助的なものであることをつねに意識して,TITLE 属性の記述がなくても内容がわかるように心がけるべきである。これは,互換性を考慮するときに限った話ではない。
イメージマップの定義は,<A> を用いることができないので,<AREA> で記述するほうがよい。本文中では触れなかったが,HTML 2.0 ではクライアントサイドイメージマップはサポートされていないので,必ずテキストによるリンクも設けておく。
文中引用で <Q> を使う場合には,HTML 4.0 では表示が見込まれるはずの引用符が書かれない。かといって,引用符をあらかじめ書いておくと,HTML 4.0 対応のブラウザでは 2 つの引用符が表示される可能性がある。
HTML 3.2 では,Java アプレットの貼り込みは <APPLET> を用いて行う。HTML 3.2 では,<OBJECT> はない。
フォームコントロールとして,<BUTTON> はない。また,<INPUT> の type="button" もない。
行・列のグループ化はできない。したがって,<COL> などは認識されないので,WIDTH 属性や ALIGN 属性などを指定している場合には注意を要する。
さらに,行のグループ化に関して,<THEAD>→<TFOOT>→<TBODY> の順で書くとそのままの順序で表示されてしまう(<TFOOT> のグループが最後にこない)ので,<TFOOT> のグループは使わないほうが無難である。
スタイルシートを用いる場合には,UA 側の対応状況に応じて適切な処置を講ずる必要がある。また,HTML 4 Transitional では,表現について HTML 側の属性で指定しうるので,それらの間とのカスケーディングについても考慮しなくてはならない。
ちなみに,Internet Explorer 3.0,Netscape Navigator で外部から取り込まれたスタイルシートを認識させないようにするためには,<LINK> ではなく,<STYLE> において @import を用いてファイルを呼び出せばよい。
Netscape Navigator 2.0x/3.0x/4.0x,Internet Explorer 3.0x(2.0x はスクリプトに対応していない)は,スクリプト言語を <SCRIPT> の LANGUAGE 属性で判定するので,LANGUAGE="JavaScript" や LANGUAGE="VBScript" などの記述を加えてしておくとよい。
ブラウザや言語の問題で,文字参照がうまく行われないことが多い。Latin1 に含まれない文字は,参照で表示させず,代わりの文字で表現しておくほうが無難である。また,Latin1 に含まれるものでも,きちんと表示される保証はない。
これ以外の,HTML 4 で新しく追加されたフィーチャーに関しては,“反映されない”だけであろうから,それほど問題はないだろう。
また,スタイルシート,スクリプトは,HTML と密接につながってはいるものの,同じ枠に収まっているものではなく,HTML からそれらを利用しているという状況を理解していただきたい。すなわち,それらはつねにアベイラブルではない。
スタイルシートがあれば美しくレイアウトされる,スクリプトが実行できればより便利になるという姿勢が大切である。“ないとだめ”という状況には極力するべきではない。とりわけ,スクリプトでフォームデータを処理する場合には,CGI プログラムの側に,スクリプトが実行されないときにどうするかという措置を案じておくべきである。