scope-attr-valid
scope属性の値は有効である必要があります
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と、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。
例
<table><tr><th scope="col">Name</th></tr></table>
「col」は有効なscopeの値です。
<table><tr><th scope="column">Name</th></tr></table>
「column」は有効なscopeの値ではありません(正しいトークンは「col」です)。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
SCOPE_ATTR_INVALID
- レポートに示されたthを見つけ、そのscopeの値を読んでください。
- 表を見て、その見出しが列と行のどちらのラベルかを判断してください。
- scopeが余分な空白やほかの言葉を含まず、正確にrow、col、rowgroup、またはcolgroupであることを確認してください。
満たす場合:scopeの値はrow、col、rowgroup、colgroupのいずれかで、見出しの方向と一致しています。
満たさない場合:scopeの値が認識されるキーワードではないため、見出しの方向が宣言されていません(ベストプラクティス、H63)。