--- title: 'ARIA: alert ロール' slug: Web/Accessibility/ARIA/Roles/Alert_Role tags: - ARIA - ARIA Role - Accessibility translation_of: Web/Accessibility/ARIA/Roles/Alert_Role ---
アラート (alert
) ロールは、要素が動的に更新されたことをユーザーに通知するために使用できます。 ロールが追加されると、スクリーンリーダーは更新されたコンテンツの読み上げを即座に開始します。 ユーザーがアラートを閉じることを期待する場合は、代わりにアラートダイアログ (alertdialog
) ロールを使用するべきです。
5つのライブリージョンロールの1つである アラート (alert
) ロールは、重要な、通常は時間依存の情報をユーザーに提供するために使用され、要素が動的に更新されたことをユーザーに伝えることがよくあります。
アラート (alert
) ロールは、アラートメッセージを含むノードに追加し、アラートをトリガーする要素には追加しません。 アラートは主張的なライブリージョンです。 role="alert"
の設定は、aria-live="assertive"
と aria-atomic="true"
の設定と同じです。 それらはフォーカスを受け取らないので、フォーカスを管理する必要はなく、ユーザーインタラクションを必要とするべきではありません。
アラート (alert
) ロールについて最も重要なことは、動的コンテンツ用であることです。 ユーザーがフォームに記入し、JavaScript を使用してエラーメッセージを追加すると、アラートがすぐにメッセージを読み上げるなどの状況に最適です。 ユーザーが HTML と対話していない HTML 上では使用するべきではありません。 例えば、ページ上に複数の可視のアラートが散在して読み込まれたページは、動的にトリガーされないため読み上げられません。
アラートをトリガーする最も基本的な方法は、デフォルトで display: none;
を持つ要素に role="alert"
を追加することです。 CSS や JavaScript で display
の値を変更すると、自動的にスクリーンリーダーがコンテンツを読み上げるようになります。
<p role="alert" style="display: none;">要素が表示されるとアラートがトリガーされます。</p>
CSS だけでアラートをトリガーすることは可能ですが、ブラウザやスクリーンリーダーのサポートが増え、イベントハンドラやフォームの検証などのより大きなユーザーインタラクションの一部として、より適切な場合が多いため、JavaScript を使用する方がよいでしょう。 JavaScript を使用すると、開発者はアラートの追加と削除を適切に制御できます。
<button type="button">アラートをトリガー</button> <p class="alert">ボタンを押すとアラートがトリガーされます。</p>
const btn = document.querySelector('button'); btn.addEventListener('click', triggerAlert); function triggerAlert() { var alertEl = document.querySelector('.alert'); alertEl.setAttribute("role", "alert"); }
アラート (alert
) ロールは、変更されたコンテンツを読み上げるべきで、直ちにユーザーの注意を引く必要があるため、静的コンテンツに使用したり、定期的に使用したりするべきではありません。 アラートは、定義上、破壊的です。 一度にたくさんのアラートがある場合や、不必要なアラートがある場合、悪いユーザーエクスペリエンスをもたらします。
仕様 | 状態 |
---|---|
{{SpecName("ARIA","#alert","Alert")}} | {{Spec2('ARIA')}} |
{{SpecName("ARIA Authoring Practices","#alert","Alert")}} | {{Spec2('ARIA Authoring Practices')}} |