Skip to content

PageSpeed Insightsの「リンクに識別可能な名前が指定されていません」を修正する方法

a computer screen with the number 99 on it

「リンクに識別可能な名前が指定されていません」は、PageSpeed InsightsやLighthouseで頻出するアクセシビリティ系の指摘です。要するに、ユーザーやスクリーンリーダーが「このリンクは何をするのか」を理解できない状態を意味します。リンクテキストが空だったり、「こちら」「詳しくはこちら」といった曖昧な文言だけだったり、画像リンクにaltが無いと、この警告が出やすくなります。見た目の調整を優先してしまうと陥りがちなポイントですが、少しの修正でユーザビリティも評価も改善できます。

なぜ重要か

  • 視覚に依存しないユーザー体験の確保: スクリーンリーダーはリンクの「アクセス可能な名前」を頼りに目的を伝えます。名前がなければ、「リンク」としか読まれません。
  • SEOと回遊性の向上: 意味のあるアンカーテキストは検索エンジンにも文脈を与え、内部リンクの評価やコンテンツ理解に貢献します。
  • 品質の一貫性: デザイン変更や言語切り替えでも、アクセシブルネームの設計があれば崩れません。

よくある原因

  • aタグの中身がアイコンのみでテキストがない
  • 画像リンクのalt属性が未設定
  • 「こちら」「詳細」など文脈に依存する曖昧なテキストのみ
  • CSSでテキストを非表示にして、代わりのラベルを用意していない
  • title属性だけで代用しようとする(支援技術で読まれない場合がある)

修正アプローチの基本

  • 原則は「リンク自体に意味のあるテキストを置く」
  • どうしても視覚上テキストを置けない場合は、aria-labelやaria-labelledbyで代替
  • 画像リンクはaltで機能(目的)を明確化
  • アイコンリンクはラベル必須。視覚的にはアイコンのままでOK

1. テキストリンクの場合

最も確実なのは、アンカーテキストを具体的にすることです。リンク先の目的や結果を1フレーズで伝えます。

例:

    <!-- 修正前 -->
<a href="/about-us.html">[詳細を見る]</a>

<!–- 修正後 –->
<a href=”/about-us.html”>当社の詳細を見る</a>   
            
                    
        

もし既存デザインや文面上どうしても「こちら」を使うなら、aria-labelで具体化します。

例:

    <!-- 修正前 -->
<a href="/about-us.html">こちら</a>

<!–- 修正後 -–>
<a href=”/about-us.html” aria-label=”当社の詳細を見る”>こちら</a>   
            
                    
        

ポイント

  • aria-labelは視覚上のテキストよりも優先されて読み上げられます。ユーザーに見える文言と矛盾しないよう整合性を保ちましょう。
  • 同一ページ内で同じ「こちら」を乱発しない。リンクごとに目的が分かる文言へ。

2. 画像リンクの場合

画像がリンクになっている場合、altは「画像の説明」ではなく「リンクの機能」を伝えるのが原則です。

例:

    <!-- 修正前 -->
<a href="/contact.html"><img src="contact-icon.png"></a>

<!–- 修正後 -–>
<a href="/contact.html">
<img src="contact-icon.png" alt="お問い合わせページへ移動">
</a>   
            
                    
        

ポイント

  • 装飾目的の画像はalt=””(空)でOKですが、リンクになっているなら必ず機能を記述します。
  • altは短く、行き先やアクションが分かるように。「クリック」などの操作語は不要です。

3. アイコンのみのリンクの場合

フォントアイコンやSVGだけのリンクは、視覚上は伝わっても支援技術には沈黙です。aria-labelを付与しましょう。

例:

    <!-- 修正前 -->
<a href="/"><i class="fa fa-home"></i></a>

<!–- 修正後 -–>
<a href="/" aria-label="ホーム画面に戻る"><i class="fa fa-home" aria-hidden="true"></i></a>   
            
                    
        

応用: 複数要素でラベルを共有するならaria-labelledbyも有効です。

    <a href="/" aria-labelledby="home-text">
<i class="fa fa-home" aria-hidden="true"></i>
<span id="home-text" class="sr-only">ホーム画面に戻る</span>
</a>   
            
                    
        

スクリーンリーダー専用テキストを非表示にするCSSの一例:

    .sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden; clip: rect(0, 0, 0, 0);
white-space: nowrap; border: 0;
}   
            
                    
        

実装時のベストプラクティス

  • 一貫性: 同じ機能のリンクは同じラベルに。異なる機能は別のラベルに。
  • 冗長回避: 見えるテキストが十分に具体的なら、むやみにaria-labelを重ねない(読み上げが冗長になる)。
  • title属性に依存しない: ホバーが前提で、読み上げられないケースがある。
  • コンテキスト依存の排除: 「こちら」「詳細」「もっと見る」単体は避け、何の詳細かを含める。
  • 多言語対応: 言語切替時はaltやaria-labelも翻訳する。lang属性やhreflangと併用で整合性を保つ。
  • コンポーネント化: デザインシステムに「ラベル必須」の規約を組み込み、レビュー時に静的チェックを行う。

チェックリスト

  • キーボードだけでTab移動し、各リンクの目的が分かるか
  • スクリーンリーダー(例: NVDA/VoiceOver)でリンク名が期待通りか
  • アイコンリンクにaria-labelまたはaria-labelledbyがあるか
  • 画像リンクに適切なaltがあるか(機能中心の文言か)
  • 同一ページに同文言のリンクが多発していないか
  • 見出しや周辺文脈なしでも、リンク単体で意味が通るか

よくある落とし穴

  • CSSでテキストをdisplay:noneにしてラベル代わりにする → 読み上げからも消える場合があるため、sr-onlyパターンを使う
  • 同一リンク内にテキストとaria-labelの両方を入れて内容が矛盾 → どちらか一方に統一
  • 画像のファイル名をそのままaltにする → 機能が伝わらない

まとめ

このエラーは、リンクに「誰にとっても意味が分かる名前」を与えることで解消できます。テキストリンクは具体的なアンカーテキストに、画像リンクはaltで機能を、アイコンリンクはaria属性で意図を伝える。これらを徹底すれば、アクセシビリティが向上し、PageSpeed Insightsの評価も安定します。小さな改善の積み重ねが、ユーザー体験とビジネス成果の両方を確実に底上げします。

「リンクに識別可能な名前が指定されていません」は、PageSpeed InsightsやLighthouseで頻出するアクセシビリティ系の指摘です。要するに、ユーザーやスクリーンリーダーが「このリンクは何をするのか」を理解できない状態を意味します。リンクテキストが空だったり、「こちら」「詳しくはこちら」といった曖昧な文言だけだったり、画像リンクにaltが無いと、この警告が出やすくなります。見た目の調整を優先してしまうと陥りがちなポイントですが、少しの修正でユーザビリティも評価も改善できます。

最終更新日: 2025-12-05

この記事は役に立ちましたか?

前へ...

WordPressサイト引越し後のエラー(さくらインターネット)Warning: array_key_exists() expects parameter 2 to be array, bool…

次へ...

MIME typeエラーでサイトが崩れる(Refused to apply style from … because its MIME type (‘text/html’) is not a supported stylesheet MIME)