Rails3がXHTMLDoctypesでどのように機能するかについて簡単な質問があります。Rails 3はajax呼び出し(およびdelete呼び出しなどの通常の呼び出し)にUJSを使用し、HTML5データ属性を使用して使用するため、XHTMLはデータ属性をサポートしていないため、マークアップは自動的に無効になりますか?
1 に答える
data-*
属性は、HTML5のエンコーディングの1つであるXHTML5で有効です。これらはXHTML1.0では有効ではありませんが、おそらく大きな問題ではありません。
ほとんどの場合、コンテンツを実際のブラウザーに提供している場合、コンテンツはXHTMLではなくHTMLとして解析されます。コンテンツをとして提供する場合text/html
、ブラウザはコンテンツをHTMLとして解析します。として提供する場合application/xhtml+xml
、IE 6はHTMLではなく生のXMLとしてレンダリングします。他のブラウザーでは、小さなミスを1つ行うと、解析を停止し、醜いエラーメッセージを表示します。残りのコンテンツを解析します。として提供する場合text/html
、ブラウザはそれをとして解析するtext/html
ため、有効なXHTMLであるかどうかは関係ありません。
XHTML 1.0が無効であっても、整形式であり、Webブラウザーはユーザーエージェントを検証していないため、コンテンツが有効かどうかは重要ではありません。属性の要点はdata-*
、ページ上のスクリプトにプライベートデータを提供することです。属性によってドキュメントの整形が妨げられることはないためdata-*
、ブラウザはドキュメントを適切に解析します。したがって、データが有効なXHTMLであるかどうかに関係なく、スクリプトはデータにアクセスできます。
結果は次のとおりです。これらの属性はHTML5およびXHTML5で有効です。これらはXHTML1.0では有効ではありませんが、これらの属性はすべての主要なブラウザーで機能し、ページ上のスクリプトにプライベートデータを提供するため、実際には問題ではありません。