XML宣言について話題になっているのを見て、自分なりの考えと設定を書きなぐりたいと思う。
まず、正しくは以下の記事の通りなのだと思う。
そのXHTML文書にXML宣言は本当に必要か?
これを読んで自分の一部の見解に自信がついた。
ただし、俺の場合は、上に紹介した記事にある互換性ガイドラインのすべてを実績しているわけではなく、ニーズとスピードと準拠の兼ね合いを重視して設定している。
如何に仕様に準拠したコーディングをしてもニーズに応えられなければ受注はない。正しいXHTML文書を書くかどうかというところは、哲学や宗教のようなところもあると思うし、仕様として正しくないからやりませんなんて言ってると、そんな融通の利かないコーダーからはクライアントは離れていくだろう。仕様への準拠を意識するあまり工数をかけすぎてしまっても利益は上がらない。だからといって仕様を無視したような HTML は嫌。なので、これらのバランスをうまくとることが重要だと思う。
よって以下のように設定している。
| XML宣言 | 書かない |
|---|---|
| 文書型 | XHTML 1.0 Transitional |
| メディアタイプ | text/html |
| 文字コード | Shift_JIS |
IE6でレンダリングモードが後方互換になることで、作業工数が増える。ということは、コーディングの利率が下がる。
application/xml+xhtml は IE で見れない。ので text/html しか選択肢がない。となるとそもそも XML じゃなくて HTML だ。じゃあ、HTML 4.01 で書けばいいじゃんと思われるかもしれないが、俺としては、XHTML 1.0 は今後 XML へ移行するための踏み台という認識。ルールを少し厳格にし、構造化を意識して、今後の展開をふまえる。また、これまで数多くのwebサイトをコーディングしてきて、XHTML 1.0 を選択するのが業界標準のようである。
Strictで書きたいところだが、一番の理由として企業サイトなど商業利用されるサイトでは、「せっかく自社のサイトを見に来てくれたユーザーを外部に逃したくない。自社のページが外部ページに切り替わるという仕様は納得できない。」という理由からか、外部リンクはほぼ必ず _blank 指定が定石。であれば、Strict という選択肢はなくなる。構文エラーになるからだ。次点の理由として、「Javasctipt や CMS の都合で Strict にならない。更新者が必ず Strict な文書をかけるとは限らない。」など。
文字コードについては、UTF-8はまだ「表示できない文字があるんだよね?」という認識もあるようだという理由もあるが、一番は、「テキスト流し込み時の最強の武器ClipNoteがShift_JISしか対応してない。」のが理由か。metaでcharset指定してるからいいじゃんといういいわけもあったりする。