XHTML1 と HTML4 および Strict と Transitional は、完全に直交する問題です。
XML は今日のブラウザーに大きな利点をもたらさないかもしれませんが、サーバー側では、XML を使用してドキュメントを処理する方が、実際には HTML4 ではない昔ながらの SGML を除いて混乱したものを解析しようとするよりも桁違いに簡単です。
[X]HTML Strict に自分自身を制限しても、それ自体では何も達成されません。とにかく使用すべきではない、保守性の低い古い手法の使用を思いとどまらせるだけです。
インライン JavaScript は通常、XHTML と互換性を持たせるためにエスケープのネズミの巣を必要とします
文字 < または & を使用しない限り、エスケープなしで回避できます。そして '// < [CDATA[' は '< よりもそれほど悪くはありません。!--' は昔のことです。
いずれにせよ、スクリプトを外部に保持する方がはるかに扱いやすいです。インラインで重要なことをしたくありません。
次に、不正な文字を見逃さないようにするために、ユーザー入力が十分にOCDにならないという問題があります。
HTML4 Transitional では、XHTML1 Strict とまったく同じように帯域外文字は無効です。
ユーザーが送信した HTML を受け入れて、適切な形式のエラーを防ぐのに十分な細心の注意を払ってチェック/エスケープしない場合、単に doctype に準拠するよりもはるかに大きな問題が発生します。インジェクション ハッキングを許し、サイトをクロスサイト スクリプティングのセキュリティ ホールに対して脆弱にすることになります。
サーバーから返された content-type が XHTML ページの text/html から application/html+xml にリセットされることを確認するのを忘れていました。
これは「忘れる」のではなく、意図的なものです。現在、application/xhtml+xml を提供する意味はあまりありません。IE を考慮するには、UA をスニッフィングする必要があります。次に、両方の解析モードでポップアップする CSS と JavaScript の違いを理解していることを確認してください。技術的な能力を証明するためにそれを行うことはできますが、実際には何も得られません。 .
XHTML を従来の HTML として提供することは理想的ではないかもしれませんが、よりシンプルで処理しやすい XML の構文 (および SVG などの他の XML 言語との潜在的な相互運用性) を維持しながら、ブラウザーフレンドリーを維持できます。
人々は整形式エラーのうるささについて不満を言っていますが、それらのエラーをすぐに見つけて修正してもらう方が、黙ってそこに置いて、将来のブラウザーをつまずかせる準備ができているよりもはるかに優れています.