XHTMLはXMLで定義された新しいHTML仕様です。 MozillaでもXHTMLをサポートしていますが、それには制限があることに注意しなくてはいけません。
Mozillaはtext/htmlとして受け取ったXHTML文書はHTMLとして解釈します。
そのため、例えばxml:langを用いた文書で、
CSSからセレクタのlang疑似クラスを使っても期待通りには要素がマッチしません。
これはHTMLには無いxml:lang属性をMozillaが無視しているためです。
また、同種の問題としてXHTML1.1ではusemap属性の値がIDREFに変更されましたが、
text/htmlで送信されたXHTML1.1文書ではこれは正しく動作しません。
style要素やscript要素内でのコメントの扱いや、CDATAセクションについても同様のことが言えます。
XHTML文書を正しくXHTMLの仕様に従わせたければapplication/xhtml+xml、
もしくはapplication/xml、text/xmlをHTTPヘッダに指定するようにしてください。
何故、このような動作になっているのかと言うと、W3Cの石川氏のW3C Noteに次のような表があり、 これに従っているものと思われます。
Media types summary for serving XHTML documents
Media type
HTML 4
XHTML 1.0 (HTML compatible)
XHTML 1.0 (other)
XHTML Basic / 1.1
XHTML+MathML
text/html
SHOULD
MAY
SHOULD NOT
SHOULD NOT
SHOULD NOT
application/xhtml+xml
MUST NOT
SHOULD
SHOULD
SHOULD
SHOULD
application/xml
MUST NOT
MAY
MAY
MAY
MAY
text/xml
MUST NOT
MAY
MAY
MAY
MAY
Copyright © Web Standardization Project. All Rights Reserved.