scope-attr-valid

scope属性の値は有効である必要があります

manual確度:medium重大度:minorperceivable

scope="..."の値がrow、col、rowgroup、colgroupのいずれかであることを確認します。

適用範囲:空でないscope属性を持つ<th>要素に適用されます。HTMLのテーブルモデルがscopeを読むのは<th>だけで、ほかの場所(<td>や、カスタム要素自身のscope属性)ではブラウザーが無視します。

期待される結果:scopeの値が「row」「col」「rowgroup」「colgroup」のいずれかです(大文字と小文字は区別しません。前後の空白は除去しません。HTMLはキーワードを完全一致で照合するため、scope=" col "は列見出しになりません)。無効なscopeの値は支援技術に認識されず、宣言しようとした行見出し・列見出しとの関連付けが何の知らせもなく失われます。

検出結果が報告する内容:

  • value:記述されたとおりのscopeの値です。

これらのdata.detailsのフィールドは、検出結果を読み解き、再現するのに役立ちます。reasonCodeと、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。

例

pass
<table><tr><th scope="col">Name</th></tr></table>

「col」は有効なscopeの値です。

can't tell
<table><tr><th scope="column">Name</th></tr></table>

「column」は有効なscopeの値ではありません(正しいトークンは「col」です)。

確認方法

このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。

SCOPE_ATTR_INVALID

  1. レポートに示されたthを見つけ、そのscopeの値を読んでください。
  2. 表を見て、その見出しが列と行のどちらのラベルかを判断してください。
  3. scopeが余分な空白やほかの言葉を含まず、正確にrow、col、rowgroup、またはcolgroupであることを確認してください。

満たす場合:scopeの値はrow、col、rowgroup、colgroupのいずれかで、見出しの方向と一致しています。

満たさない場合:scopeの値が認識されるキーワードではないため、見出しの方向が宣言されていません(ベストプラクティス、H63)。

ソースコードを見る