個別記事

XHTML1.1、IEと認証の問題

2006年06月18日

恥ずかしい話だが、今頃になって、サイトデザインについて、実に様々な問題があることが分ってきた。自分自身への理解を含め、その一部を述べてみたい。

ウェブサイトをデザイン(制作)する場合、文法にのっとって記述する。そして、それがどの程度正しいかチェックするサイトがある。

W3Cは書式の標準化を目指す非営利団体で、これまでにもいくつかの標準書式を勧告してきた。それが、HTML4.01やXHTML1.0などである。
その、W3Cも記述のチェックサービスを行なっている一つで、承認されると認証マークを貼り付けることが許される。日本で有名な検証サービスサイトでは、「Another HTML-lint gateway」(以下:lint)がある。

だから、チェックで合格することは励みになるし、記述の理解を高めることになる。

今回、サイトの記述のリデザインを行なうにあたり、どうせなら、最新バージョンのXHTML1.1にのっとろうとした。
所が、世の中の大半の方が使っているマイクロソフト社のインターネットエキスプローラー(通称IE)という、ブラウザの仕様は、勧告された記述ではうまく動作しないし、IEに合わせると承認を得る事ができないということが分った。

例えば、XHTML1.1で書かれる内容の最初の1行目には、XML宣言文が来なければならない。
<?xml version="1.0" encoding="Shift_JIS"?>

続いて2行目には、XHTMLを示す、DOCTYPE宣言がくる。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

先頭の!DOCTYPEとは、ドキュメントタイプ(Document Type)のことで、DTDとは、文書型の宣言(Document Type Declaration)をしている。

問題は<head>の中に記述する以下の行。
<meta http-equiv="content-type" 
content="application/xhtml+xml; charset=shift_jis" />

これを、「lint」でチェックすると、「XHTML1.1では<?meta http-equiv>を記述すべきではありません」というエラーメッセージをもらう。

対策として、.htaccess(注1)を使って直接メディアタイプを指定するという方法がある(つまり、「meta http-equiv」の記述を省く手法)。
.htaccessの内容を「AddType "application/xhtml+xml; charset=shift_jis" .html」と記述し(注2)、サーバーにアップする。

「lint」では見事に合格するが、IEは、XHTML文書として扱わずにダウンロードファイルとなる。
結局、「AddType "text/html; charset=shift_jis" .html」でなければ、IEでは見られないということになり、取りも直さずXHTMLの推薦値ではなくなるため、「lint」では合格しない。

こんなことにエネルギーを費やしている事が、実にバカバカしくなってきた。IE対策を施してXHTML1.1の認証を受けることへの興味を失った。
大きなシェアをしめるIEを考慮すると、個人的には(自分の能力も含め)、XHTML1.0 strictで記述するのが妥当ではないかと思っている。

注1:設定、テキストファイル。自分のサーバーのディレクトリーにアップして使用する。Webサーバの動作をディレクトリ単位で設定するためのファイル。このファイルを設置したディレクトリ以下、全てのページに有効となる。

注2:XHTML1.1文書のMIMEタイプの指定は「application/xhtml+xml」が推薦(Should)。「application/xml,text/xml」が可能(May)であり、「text/html」は禁止(Must not)ではないが、非推薦(Should not)となっている。
トラックバックURL
この記事へのトラックバックは下記のURLをコピーしてください。
この記事のトラックバックURL:
http://app.blog.livedoor.jp/ur8823/tb.cgi/50443285
この記事にコメントする
Name
E-Mail
URL