aria-required-parent

特定の文脈ロールを必要とするロールは、その文脈内にある必要があります

automaticWCAG 1.3.1 (A)確度:medium重大度:moderaterobust

「required context role」の項目が定められたロール(listitem、option、tab、treeitem、row、cellなど)が、許容される文脈ロールを持つ祖先またはaria-ownsによる所有者を持つことを確認します。

適用範囲:明示的で有効な、抽象的でないロールが、空でない「required context role」の項目が定められたロール(listitem、option、menuitem、menuitemcheckbox、menuitemradio、tab、treeitem、row、cell、gridcell、columnheader、rowheader、rowgroup)のいずれかである要素に適用されます。要素自身には明示的なロールが必要ですが、そのコンテキストは、ネイティブのコンテキストがタグのロールを持つのと同じように、カスタム要素のElementInternals(this.attachInternals().role)からロールを得てもかまいません。

期待される結果:要素には、実効ロールがこの要素のロールで許容される文脈ロールのいずれかである祖先(DOM上の包含関係)または所有者(その祖先や所有者のaria-ownsによる)があります。

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

  • role:要素のロールです。
  • requiredContextRoles:要素がそのいずれかの内側にあるか、いずれかに所有されている必要があるロールです。各項目はロール名です。

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

例

pass
<div role="tablist">
<div role="tab">Overview</div>
</div>

role="tab"にはrole="tablist"を持つ祖先(またはaria-ownsによる所有者)が必要で、それが存在します。

fail
<nav role="tab"></nav>

role="tab"には、ページ内のどこにもtablistの祖先や所有者がありません。

関連するルール

ソースコードを見る