tooltip-name-present
ツールチップにアクセシブルな名前があります
role="tooltip"を持つ要素が空でないアクセシブルな名前を公開していることを確認します。
適用範囲:role属性がtooltipに解決される要素に適用されます。既知のロールを指す最初のトークンを大文字と小文字を区別せずに照合した結果がtooltipであるものを指し、role="foo tooltip"やrole="TOOLTIP"は該当しますが、role="link tooltip"(リンク)は該当しません。要素はアクセシビリティツリーに含まれている必要があります。一致する暗黙のロールを持っていてもrole属性がない要素は対象外です。ElementInternalsによってこのロールを与えられたカスタム要素(this.attachInternals().role)も、別のロールを示すrole属性がなければ対象です。それがその要素の既定のロールであり、ほかにそれを確認するルールはないためです。
期待される結果:要素が、aria-label、空でないテキストに解決されるaria-labelledby、title、または自身のサブツリーのテキストから、空でないアクセシブルな名前を得ています。role="tooltip"は名前をコンテンツから算出するため、サブツリーのテキストも有効です。その際、子孫要素自身の名前(<img alt>、aria-label、title)は、テキストノードだけでなく、その子孫要素が寄与する名前として数えます。
例
<div role="tooltip">Click to save your changes</div>
表示されているテキスト内容がツールチップに名前を付けています。
<div role="tooltip"></div>
テキスト内容もアクセシブルな名前もありません。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
name_closedContent
- レポートに示されたツールチップを見つけ、画面に表示されているテキストまたはアイコンを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、スクリプトからは読めない内容からブラウザーが求めた、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーに、内容から得たツールチップの名前が表示され、スクリーンリーダーがそれを読み上げます。
満たさない場合:内容から名前が得られず、ツールチップにはアクセシビリティツリー上の名前がないため、WCAG 4.1.2を満たしません。
name_contentTooDeep
- レポートに示されたツールチップを見つけ、画面に表示されているテキストを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、入れ子になった内容全体からブラウザーが求めた、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーに、入れ子の内容から得たツールチップの名前が表示され、スクリーンリーダーがそれを読み上げます。
満たさない場合:内容から名前が得られず、ツールチップにはアクセシビリティツリー上の名前がないため、WCAG 4.1.2を満たしません。
name_internals
- レポートに示されたツールチップを調べ、カスタム要素であることとそのロールを控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、要素のアクセシブルな名前を読んでください。
- スクリーンリーダーで要素に移動し、読み上げられる名前を聞いてください。
満たす場合:アクセシビリティツリーにツールチップの名前が表示され(internalsで設定されたものでも、それ以外でもかまいません)、スクリーンリーダーがそれを読み上げます。
満たさない場合:ツールチップにはアクセシビリティツリー上の名前がなく、スクリーンリーダーはロールしか読み上げないため、WCAG 4.1.2を満たしません。