Skip to content
← Back to rules

jsx-a11y/heading-has-content 正しさ

何を実行するか

見出し要素(h1、h2 など)にコンテンツが存在し、かつスクリーンリーダーでアクセス可能であることを強制します。 アクセス可能なとは、aria-hidden プロパティを使用して非表示になっていないことを意味します。

なぜこれは問題なのか

スクリーンリーダーは見出しタグの存在をユーザーに通知します。 もし見出しが空であり、またはテキストにアクセスできない場合、ユーザーを混乱させたり、ページの構造に関する情報にアクセスできなくなったりする可能性があります。

このルールに対する誤りの例:

jsx
<h1 />

このルールに対する正しい例:

jsx
<h1>Foo</h1>

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

components

type: string[]

default: null

見出し要素として扱う追加のカスタムコンポーネント名。 標準の h1~h6 要素に加えて検証されます。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "plugins": ["jsx-a11y"],
  "rules": {
    "jsx-a11y/heading-has-content": "error"
  }
}
bash
oxlint --deny jsx-a11y/heading-has-content --jsx-a11y-plugin

参照