最近では、<img>
タグで達成されたことが、CSS 'Sprite'とオフセットを使用して設定されたCSS背景画像を持つ<div>
のようなもので行われることがよくあります。
alt
属性(Googleによってインデックス付けされている)を事実上失い、 'title'属性(私が理解していない限り、インデックス付き)。
これは重大な欠点ですか?
CSSスプライトは装飾要素にのみ使用する必要があります この理由-ページに固有の要素には<img>
を使用し、表示されるコンテンツに文脈的に関連しない装飾要素にはスプライトを使用します。
ナビゲーションアイテムにボタン画像が必要な場合は、次のようなマークアップではなく、その画像をナビゲーションリンクの背景として追加することをお勧めします。
<a href="/">
<img src="/images/home.gif" title="Home" alt="Home Button" />
Home
</a>
(つまり、画像のコンテンツがページ上のテキストコンテンツと重複する場合、または画像のコンテンツは「装飾」と最もよく説明できる場合)
サイトテンプレート要素をスプライトとして分離する追加のボーナスとして、古いデザインイメージファイルを上書きしたり、すべてのHTMLマークアップを書き換えたりする代わりに、スタイルシートを変更することで、サイトの「スキン」を後で変更できます。
CSSスプライトで<img>
タグを使用できます。
<img alt="description of image" src="images/Sprite.png" id="someSprite" />
Sprite.png
は、50バイト未満に圧縮された1x1の透明ピクセルにすることができます。
スタイル:
#someSprite {
width:74px;
height:38px;
background:url('/images/sprites.png') left 0px top 84px;
}
これにより、スプライトからパフォーマンスの最適化を取得し、alt
タグを保持します。
alt
タグは過大評価されています。自分のページにalt
タグがあることを確認するために邪魔にならない人が多すぎると思います。私はそれを持っていないことはあなたを傷つけるとは思わない。 img
があるかどうか、alt
タグが割り当てられているかどうかを確認するだけです。
読み込み時間とサイトのパフォーマンスは、alt
タグよりもSEO全体に大きな影響を与え、すべての画像リクエストまたはHTTPリクエストに対して、サイトの速度が低下すると考えています。 CSSスプライトの目的は、これらのリクエストを最小限に抑え、ページの読み込み時間を短縮することです。
私は装飾的なアイコンにスプライトを使用する傾向があり、それらはページ全体とは何の関係もないので、その場合はSEOで問題ありません。ページの意味に寄与しないすべて同じサイズの画像セットは、CSSスプライトの適切な候補です。