H1テキストをロゴ画像に置き換える:SEOとアクセシビリティのベストプラクティス

2024-07-27

そこで今回は、代替テキストCSS装飾SVGアイコンなどを活用した、SEOアクセシビリティを両立するH1ロゴの代替方法をご紹介します。

代替テキスト(Alt Text)の使用

代替テキストは、画像の内容をテキストで記述するものです。検索エンジンは画像を直接認識できないため、代替テキストを通してH1の内容を理解することができます。

代替テキストを作成する際のポイントは以下の通りです。

  • 簡潔かつ正確にH1の内容を記述する
  • キーワードを含める
  • 長さは適切な長さに保つ
  • 同じ画像に対して同じ代替テキストを使用する

HTMLコードは以下のようになります。

<h1><img src="logo.png" alt="企業名 - ウェブサイト説明"></h1>

CSS装飾による疑似要素の活用

CSSの疑似要素を用いて、背景画像H1テキストを重ねる方法です。この方法であれば、画像テキスト非表示にすることなく、SEOアクセシビリティを両立することができます。

h1 {
  background-image: url('logo.png');
  background-position: center;
  background-size: contain;
  text-align: center;
  color: transparent;
}

SVGアイコンの利用

SVGアイコンは、ベクター画像の一種であり、拡大縮小しても画質が劣化しないという特徴があります。テキスト画像一体として表現することができ、SEOにも有利です。

SVGアイコンを利用する場合は、HTMLCSSの両方を編集する必要があります。

<h1><svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <path d="M..." fill="#000" />
</svg></h1>
h1 svg {
  width: 100%;
  height: auto;
}
  • 画像を使用する場合は、ファイルサイズ軽量化する
  • 画像の読み込み速度を遅くしないように注意する



代替テキスト

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>代替テキストを使ったH1ロゴ</title>
</head>
<body>
  <h1><img src="logo.png" alt="株式会社サンプル 企業サイト"></h1>
</body>
</html>

このコードでは、logo.pngという画像をH1見出しに使用し、株式会社サンプル 企業サイトという代替テキストを設定しています。

CSS装飾

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>CSS装飾を使ったH1ロゴ</title>
  <style>
    h1 {
      background-image: url('logo.png');
      background-position: center;
      background-size: contain;
      text-align: center;
      color: transparent;
    }
  </style>
</head>
<body>
  <h1>H1見出し</h1>
</body>
</html>

このコードでは、CSSを使用して、logo.pngという画像をH1見出しの背景画像として設定しています。テキスト透明にして、画像を重ねています。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>SVGアイコンを使ったH1ロゴ</title>
</head>
<body>
  <h1>
    <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
      <path d="M 10,20 L 50,50 L 90,20 Z" fill="#000" />
    </svg>
  </h1>
</body>
</html>

このコードでは、SVGアイコンを使用して、H1見出しにロゴを表示しています。

  • 上記のコードはあくまで基本的な例です。デザイン要件に合わせて、自由カスタマイズしてください。
  • CSSSVGの詳細については、別途調べていただく必要があります。



JavaScriptによる非表示化

JavaScriptを使用して、H1テキストロゴ画像切り替える方法です。この方法であれば、ページの読み込み直テキストが表示されるため、SEOにも有利です。

JavaScriptのコードは以下のようになります。

const h1Element = document.querySelector('h1');
const logoImage = document.createElement('img');

logoImage.src = 'logo.png';
logoImage.alt = '企業名 - ウェブサイト説明';

h1Element.appendChild(logoImage);

logoImage.addEventListener('load', function() {
  h1Element.style.display = 'none';
});

画像のdata-src属性とsrc属性の使い分け

HTML5data-src属性とsrc属性を利用して、JavaScript画像を読み込む方法です。この方法であれば、初期表示時にテキストが表示され、JavaScript有効環境ではロゴ画像切り替えることができます。

<h1><img data-src="logo.png" alt="企業名 - ウェブサイト説明" src=""></h1>
const imgElements = document.querySelectorAll('img[data-src]');

for (const imgElement of imgElements) {
  const src = imgElement.getAttribute('data-src');
  imgElement.src = src;
}

それぞれの方法のメリットとデメリット

方法メリットデメリット
代替テキストシンプルでわかりやすい画像の読み込み速度が遅くなる可能性がある
CSS装飾SEOに優しいデザインが複雑になる可能性がある
SVGアイコンベクター画像なので高画質作成に手間がかかる
JavaScriptによる非表示化SEOに有利JavaScriptが有効でない環境ではロゴ画像が表示されない
画像のdata-src属性とsrc属性の使い分け初期表示時にテキストが表示されるJavaScriptの知識が必要

css xhtml image



デザインの幅が広がる!HTMLとCSSでできる順序付きリストの高度なカスタマイズ

HTMLの <ol> タグには、番号の種類や開始番号を設定する属性があります。番号の種類type 属性: 番号の種類を指定します。 1: デフォルトの数字 a: 英小文字 i: 小文字のローマ数字1: デフォルトの数字a: 英小文字i: 小文字のローマ数字...


HTML/CSS/XHTML で 100% 最小高さ CSS レイアウトを構築!レスポンシブ Web デザインにも最適!

100% 最小高さ CSS レイアウトは、HTML、CSS、および XHTML を使用して、コンテンツの高さを常に 100% に保つレイアウト手法です。これは、画面サイズやブラウザのウィンドウサイズに関わらず、コンテンツが常に画面全体を覆うように表示されるようにするのに役立ちます。...


HTML/CSS/XHTML で 100% 最小高さ CSS レイアウトを構築!レスポンシブ Web デザインにも最適!

100% 最小高さ CSS レイアウトは、HTML、CSS、および XHTML を使用して、コンテンツの高さを常に 100% に保つレイアウト手法です。これは、画面サイズやブラウザのウィンドウサイズに関わらず、コンテンツが常に画面全体を覆うように表示されるようにするのに役立ちます。...


HTMLとCSSにおける「DIVsの代わりにテーブルを使用する」プログラミング

従来、Webページのレイアウトにはテーブルタグ (<table>) がよく用いられていました。しかし近年は、CSSの進化により、テーブルタグよりも柔軟で軽量なレイアウトを実現できるDIVタグ (<div>) が主流となっています。しかし、特定の状況下では、DIVsよりもテーブルの方が適している場合もあります。例えば、以下のケースが挙げられます。...


WordPressでパフォーマンスを向上させる:使用されていない画像とCSSスタイルを見つける方法

ウェブサイトには、使用されていない画像や CSS スタイルが含まれていることがあります。 これらのファイルは、ページの読み込み速度を遅くし、ユーザーエクスペリエンスを悪化させる可能性があります。問題点使用されていない画像や CSS スタイルは、ページの読み込み速度を遅くします。...



SQL SQL SQL SQL Amazon で見る



Internet Explorer 7 で絶対配置された親要素における子要素のパーセンテージ幅が崩れる理由

Internet Explorer 7 (IE7) では、絶対配置された親要素の子要素にパーセンテージ幅を設定すると、幅が意図せず崩れる場合があります。これは、IE7 の古いボックスモデルと CSS 2.1 の解釈に起因する問題です。原因この問題の根本的な原因は、IE7 が古いボックスモデルを使用していることです。このモデルでは、要素の幅はコンテンツ幅、パディング、ボーダーの合計で計算されます。一方、CSS 2.1 では、要素の幅はコンテンツ幅のみで計算されます。


JavaScript、HTML、CSSでWebフォントを検出する方法

CSS font-family プロパティを使用するCSS font-family プロパティは、要素に適用されるフォントファミリーを指定するために使用されます。このプロパティを使用して、Webページで使用されているフォントのリストを取得できます。


JavaScriptを使用してHTML要素の背景色をCSSプロパティで設定する方法

このチュートリアルでは、JavaScriptを使用してHTML要素の背景色をCSSプロパティで設定する方法について説明します。方法HTML要素の背景色を設定するには、以下の3つの方法があります。style属性HTML要素のstyle属性を使用して、直接CSSプロパティを指定できます。


Webサイトをもっとおしゃれに!CSSで角丸デザインを取り入れる

CSSの border-radius プロパティを使って、要素の角を丸くすることができます。これは、ボタン、画像、ボックスなど、さまざまな要素に適用できます。基本的な使い方上記の例では、すべての角が半径10pxの円弧で丸められます。四隅個別に設定


Prototype を使用してテキストエリアを自動サイズ変更するサンプルコード

以下のものが必要です。テキストエリアを含む HTML ファイルHTML ファイルに Prototype ライブラリをインクルードします。テキストエリアに id 属性を設定します。以下の JavaScript コードを追加します。このコードは、以下の処理を行います。