ARIAの非表示要素は、フォーカス可能であるべきではなく、またフォーカス可能な要素を含むべきではありません

ルールID: aria-hidden-focus
ルールセット: axe-core 4.10
ユーザーへの影響:
ガイドライン: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), Trusted Tester, EN 301 549

Start building more accessible experiences

Axe DevTools Pro helps dev teams find and fix up to 80% of accessibility issues while coding. No experience required. Get started with your free trial today.

Compliance Data & Impact

User Impact


Minor
Critical

Disabilities Affected

  • 盲目
  • 視力低下
  • 盲ろう者
  • 運動・器用さ

Standard(s)

  • WCAG 2.1 (A)
  • WCAG 2.0 (A)
  • WCAG 2.2 (A)
  • Trusted Tester
  • EN 301 549

WCAG 達成基準 [WCAG 2.1 (A)]

  • 4.1.2: Name, Role, Value

WCAG 達成基準 [WCAG 2.0 (A)]

  • 4.1.2: Name, Role, Value

WCAG 達成基準 [WCAG 2.2 (A)]

  • 4.1.2: Name, Role, Value

Trusted Tester 指南

  • 6.A: The purpose of each link or button can be determined from any combination of the link/button text, accessible name, accessible description, and/or programmatically determined link/button context.

EN 301 549 指南

  • 9.4.1.2: Name, Role, Value

修正方法

各属性内の値が正しく入力され、有効な値に対応していることを確認して、問題を修正してください。適切なARIAロール、状態、プロパティを使用します。

次の例は、要素にフォーカス可能な要素が含まれていないというルールに準拠しています: aria-hidden="true"

  • デフォルトではコンテンツにフォーカスできません。

    <p aria-hidden="true">Some text</p>
  • CSSによって非表示になっているコンテンツ。

    <div aria-hidden="true">
    	 <a href="/" style="display:none">Link</a>
    	 </div>
  • tabindexによってフォーカスできなくなったコンテンツ。

    <div aria-hidden="true"> 
    	<button tabindex="-1">Some button</button>
    	</div>
  • 無効によりフォーカスできなくなったコンテンツ。

    <input disabled aria-hidden="true" />
  • aria-hidden 祖先でtrueに設定するとリセットできません。

    <div aria-hidden="true"> 
    	<div aria-hidden="false"> 
    	<button tabindex="-1">Some button</button>
    	 </div>
    	 </div>

次の例は、 aria-hidden="true" 要素にフォーカス可能な要素が含まれていないというルールに違反しています。

  • フォーカス可能なオフスクリーンリンク。

    <div aria-hidden="true"> 
    	<a href="/" style="position:absolute; top:-999em">リンク</a></div>
  • フォーカス可能なフォーム フィールドが誤って無効になっています。

    <div aria-hidden="true"> 
    	<input aria-disabled="true" />
    	</div>
  • aria-hidden 祖先でtrueに設定するとリセットできません。

    <div aria-hidden="true"> 
    	<div aria-hidden="false"> 
    	<button>Some button</button> 
    	</div>
    	</div>
  • tabindexを通じてフォーカス可能なコンテンツ。

    <p tabindex="0" aria-hidden="true">Some text</p>
  • フォーカス可能なサマリー要素。

    <details aria-hidden="true">
    	 <summary>Some button</summary>
    	  <p>Some details</p>
    	  </details>

なぜ重要なのか

要素に aria-hidden="true" 属性を使用すると、要素とそのすべての子ノードがアクセシビリティAPIから削除され、スクリーン リーダーやその他の支援技術から完全にアクセスできなくなります。冗長または無関係なコンテンツを削除し、支援技術のユーザーのエクスペリエンスを向上させることを目的としている場合のみ、Aria-hiddenを使用して支援技術から視覚的にレンダリングされたコンテンツを非表示にすることができます。この操作には細心の注意を払ってください。aria-hiddenを使用してスクリーン リーダーから表示されるコンテンツを非表示にする場合は、同一または同等の意味と機能を支援技術に公開する必要があります。

注意: [appropriate term]を使用して非表示にされた要素の子孫であるコンテンツで aria-hidden="false" を使用すると、そのコンテンツはアクセシビリティAPIに公開されず、スクリーン リーダーやその他の支援技術でアクセスできなくなります。 aria-hidden="true"

このルールは、 aria-hidden="true" 属性を持つすべての要素に適用されます。

要素に aria-hidden="true" を追加することで、コンテンツ作成者は支援技術がその要素を無視することを確認できます。これを使用すると、支援技術によって読み取られることを意図していない、アイコン フォントなどのWebページの装飾部分を非表示にすることができます。

aria-hidden="true" を持つフォーカス可能な要素は、読み取り順序の一部として無視されますが、フォーカス順序の一部であるため、可視状態が不明確になります。

ルールの説明

このルールは、 aria-hidden 要素にフォーカス可能な要素が含まれていないかどうかをチェックします。

仕組みについて (簡単に言うと)

すべてのユーザー インターフェイス コンポーネント (フォーム要素、リンク、スクリプトによって生成されるコンポーネントを含むが、これらに限定されない) の名前と役割はプログラムで決定でき、ユーザーが設定できる状態、プロパティ、値はプログラムで設定でき、これらの項目の変更の通知は、支援技術を含むユーザー エージェントで利用できます。

リソース

その他のリソース

その他リソースもあわせてご参照ください。

axe 4.10 ルールの一覧 を参照する

この情報は役に立ちましたか?

すでにフィードバックをいただきました、ありがとうございます。.

あなたの回答は次のとおりです。

この情報は役に立ちましたか?
フィードバックが提出された日付/時刻: