コンテンツとプレゼンテーションを定義するときは、HTMLドキュメントをデータコンテナとして参照してください。次に、各要素と属性について次のことを自問してください。
属性/要素は私のデータで意味のあるエンティティを表していますか?
たとえば、<b>
タグの間の単語は単に表示目的で太字になっていますか、それともそのデータを強調したいですか?
適切な属性/要素を使用して、表現したいデータのタイプをプロパティで表現していますか?
その特定のセクションを強調したいので、使用するか<em>
(イタリックを意味するのではなく、強調を意味し、太字にすることができます)、または必要な<strong>
強調のレベルに応じて使用する必要があります。
属性/要素を表示目的でのみ使用していますか?はいの場合、要素を削除し、CSSを使用して親要素のスタイルを設定できますか?
プレゼンテーションタグは、親要素のCSSルールに置き換えることができる場合があります。その場合、プレゼンテーションタグを削除する必要があります。
これらの3つの簡単な質問を自問した後、通常、かなりの情報に基づいた決定を下すことができます。例:
元のコード:
<label for="name"><b>Name:</b></label>
<b>
タグを確認しています...
属性/要素は私のデータで意味のあるエンティティを表していますか?
いいえ、タグはデータノードを表していません。それは純粋にプレゼンテーションのためにあります。
適切な属性/要素を使用して、表現したいデータのタイプをプロパティで表現していますか?
<b>
太字の要素の表示に使用されます。
属性/要素を表示目的でのみ使用していますか?はいの場合、要素を削除し、CSSを使用して親要素のスタイルを設定できますか?はプレゼンテーション用で、私はそれをプレゼンテーションに使用しているので、はい
。<b>
また、<b>
要素は全体に影響を与えるため、<label>
削除してスタイルをに適用することができます<label>
。
セマンティックHTMLの目標は、設計と再設計を単純化することや、インラインスタイルを回避することではなく、パーサーがその特定のタグがドキュメントで何を表すかを理解できるようにすることです。このようにして、コンテンツが何を意味するかをインテリジェントに決定し、それに応じて分類するためのアプリケーション(つまり、検索エンジン)を作成できます。
content:
したがって、CSSプロパティを使用してタグ内のテキストを引用符で囲むことは理にかなっています<q>
が(プレゼンテーション以外のドキュメントに含まれるデータには価値がありません)、同じCSSプロパティを使用して©を追加することには意味がありません。データに値があるので、フッターの記号。
同じことが属性にも当てはまります。width
サイズ16x16のアイコンを表すタグでandheight
属性を使用する<img>
ことは、タグの意味を理解することが重要であるため、意味的に意味があり<img>
ます(アイコンは、表示されるサイズに応じて異なる表現を持つことができます)。<img>
大きな画像のサムネイルを表すタグで同じ属性を使用することはできません。
必要なプレゼンテーションを実現するために、非セマンティック要素を追加する必要がある場合もありますが、通常はそれらを回避できます。
間違った要素はありません。特定の要素の誤った使用法があります。<b>
強調を追加するときは使用しないでください。<small>
テキストを小さくするのではなく、法的なサブテキストに使用する必要があります(理由についてはHTML5-セクション4.6.4を参照)など...すべての要素には特定の使用シナリオがあり、すべてデータを表します(ただし、プレゼンテーション要素は含まれません)。場合によっては用途があります)。要素を脇に置いてはいけません。
属性は別のものです。ほとんどの属性は、本質的に表現的なものです。<img border>
やなどの属性<body fgcolor>
は、表現しているデータに意味が含まれることはめったにないため、使用しないでください(まれな場合を除く)。
検索エンジンは、セマンティックドキュメントが非常に重要である理由の良い例です。Microformatsは、検索エンジンが特定の方法で理解するデータを表すために使用できる、事前定義された要素とクラスのセットです。Google検索の商品価格情報は、実際のセマンティクスの例です。
設定された標準で事前定義されたルールを使用してドキュメントに情報を格納することにより、サードパーティプログラムは、失敗しやすいヒューリスティックアルゴリズムを使用せずに、テキストの壁のように見えるものを理解できます。また、スクリーンリーダーやその他のアクセシビリティアプリケーションが、情報が表示されるコンテキストをより簡単に理解するのに役立ちます。また、すべてがセット定義に関連付けられているため、マークアップの保守性にも大いに役立ちます。