HTML検証-神話

時間が来て、私は主な秘密を明らかにします:



自分で作成した2〜3個の属性が原因でサイトが無効な場合でも問題ありません。


前にこの声明が根本的に間違っている理由を考え出そうとする 読んでください。



まず、未来のマイクロ波の場所にいる自分を想像しましょう。 厳密で安価な電子レンジとして、表示のみ(!)XHTMLをサポートしているとします。 おそらく、レンダリング前に各ドキュメントを検証することはまずありません。余分なプロセッサ時間がかかります。さらに、DTD、それに対して検証する機能が必要になります(念のため、有効なドキュメントは整形式ではないことを思い出します)。 むしろ、表示しようとする方が安くなります。 閉じられていないタグや不適切なネスト(整形式でないケース)がXHTMLコードパーサーを深刻に混乱させることは誰も主張しませんが、無効な属性(有効なXHTMLの場合)を検出すると、画面をクリアして主婦にエラーを表示するのは本当ですか? いや 見つけられないからです。 それらを検出する必要がないためです。 表示可能なサポート対象の属性のみを検索します。 要素のすべての属性をループしたとしても、未知のものを処理することは意味がないと確信しています。



最初からのHTMLおよびXHTML仕様には、有用な推奨事項が含まれていました。不明な属性または要素が検出された場合、ブラウザはそれを無視することをお勧めします。 想像してみてください。そうでなければ、前方互換性を確保することは不可能であり、私たちはHTML 3.2のみに座っているでしょう。



  <input type = "text" required = "required" name = "creditcard" accept = "[0-9]" pattern = "[0-9] {13,16}" /> 
はい、これは有効なXHTMLではありません。つまり、自動的にXHTMLではありません。 しかし、これは、XHTMLと互換性がなく、XHTMLブラウザが正常な劣化の原則を使用して表示できないことを意味するものではありません。



独自の属性と要素を作成し、それらのJavaScriptサポートを作成し、必要なフォームフィールド記号を示すためにclass / rel /を使用しないでください。<!-BEGIN block1->などのコメントを使用してブロックを指定することは意味がありません。 これにより、同じレイアウトデザイナーに問題が発生します。 required = "required"を使用します。 <block name = "block1">を使用します。 サイト内でのみXHTMLを拡張します。 JavaScriptとの互換性を無効にしてください。 そして、誰もあなたに悪いことを言うことはありません。



Strict XHTMLだけが理解できる完璧なブラウザを考え出すのは意味がありません。 誰もそれを必要としないという理由だけでまだ作成されておらず、これはW3C自体の目的ではありません(何らかの理由でそう考える人もいます)。 結局、(「砂の城」と区別する)有能な仕様の基礎は、強化を望むことではなく、柔軟性の提供、両側の互換性、優雅な劣化に対する有能な思考です。 そして、これらはすべて、HTMLとXHTMLのフレームワーク内で長い間実装されてきました。 これらの思慮深い原則を楽しんでください。



All Articles