本文へ移動
easeweb
ご相談
トピックを検索

定型の通知でもVoiceOverの読み上げを遮るアラート

計画アプリが「Samさんがこのタスクを開きました」から「接続が切れました」まで、すべての通知を一つの role="alert" の領域に書き込むため、VoiceOverではありふれた更新のたびに読み上げが遮られ、ほかのスクリーンリーダーでは急ぎの通知がほかと同じに聞こえます。

WCAG 2.2
SC 4.1.3AA· 2.1 で追加
必須とする規格
EN 301 549(EU)
問題あり <div id="notices" class="notices" role="alert">
アクセシビリティの問題を示した図: 全盲:なぜ毎回、途中で遮られるの?
01

問題

アプリがありふれたことを知らせるたびに、VoiceOverの利用者は読んでいる途中で遮られ、どのスクリーンリーダーでも、肝心の急ぎのメッセージがほかと同じように聞こえます。

02

試してみる

スクリーンリーダーの利用者が下矢印キーを押すように「次の行を読む」を押し、通知が届く中で読み上げを聞いてください。

各行を読み始めて少したつと、通知が1件届きます。下の欄にスクリーンリーダーの読み上げが出て、ページでは読み終えた部分が色付きになり、読まれなかった部分が赤で示されます。最初はVoiceOverの読み方です。行の途中で割り込むのは、どの通知ですか? 次にJAWSとナレーターの読み方に切り替えると、急ぎの通知を聞き分けられますか?

問題あり 修正できますか?

問題すべての通知を一つのアラート領域に
スクリーンリーダー(再現):

告知メールを書く

期日: 5月12日

告知メールは、最終校正のあと、月曜の9:00に送ります。

短くまとめ、新しいコレクションへのリンクを1つ入れます。

金曜までに、Alexさんに商品写真をもらいます。

木曜までに下書きをチームに送り、コメントをもらいます。

スクリーンリーダーの読み上げ:

(「次の行を読む」を押してください)

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

定型の通知はステータス領域に送り、アラート領域は待てないメッセージだけに使います。

  1. 1定型の通知には role="status" を使い、順番を待たせる。
  2. 2role="alert" は、今すぐ対応が必要なメッセージだけに使う。
  3. 3両方の領域を最初から空の状態でページに置き、通知へフォーカスを移さない。
修正前 すべての通知を一つのアラート領域に
<div id="notices" class="notices" role="alert"></div>
修正後 定型の通知はステータス領域、急ぎの通知はアラート領域
<div class="notices">  <p id="notice-status" role="status"></p>  <p id="notice-alert" role="alert"></p></div>

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得、または全ガイドをコーディングエージェントで使う。

04

修正の確認

マウスを使わない4つの確認

確認方法: スクリーンリーダー、キーボード

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。通知のコンポーネントや、送るメッセージの一覧を変更した際は、再度確認します。

制限

ライブリージョンの動きは、スクリーンリーダーやブラウザーによって、またバージョンによっても異なります。このガイドの記述は、2026年時点の各リリースでの動きです。Understanding 4.1.3も、支援技術が利用者の設定に合わせてステータスメッセージを遅らせたり、抑えたり、形を変えたりすることがあると述べています。メッセージが急ぎかどうかは製品についての判断で、そのチームにしかできません。このガイドは、読んでいる間に届く通知を扱っています。読み上げられないメッセージは画面に出ても読み上げられないステータスメッセージで、毎秒読み上げる時計はスクリーンリーダーが読み上げ続けるカウントダウンタイマーで、確認を求めるダイアログは質問が読み上げられない確認ダイアログで扱っています。割り込みそのものを後回しにできるようにすること(レベルAAA)は、別のトピックです。利用者が使うスクリーンリーダーで確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方