背景をinertにしてaria-modalを設定する
開いている間、ページの他の部分に到達できないようにします。
「背景をinertにしてaria-modalを設定する」はCoddyKit上の無料Web Accessibility Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Accessibility Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Accessibility Academyコースには全4レッスンが含まれています。
背後のページは存在し続ける
フォーカスを閉じ込めても、モーダルの背後にあるコンテンツはDOM内に残っています。遮断しなければ、スクリーンリーダーがそこへ移動してしまう可能性があります。
inert属性を使う
inert属性を使うと、要素とそのすべての子要素を、一度にフォーカス不可、クリック不可にし、支援技術からも除外できます。
<main inert>...page content...</main>背後をinertにする
モーダルを開いたら、その外側にあるすべての要素へinertを追加します。これで、誰も背後のページへ実際にアクセスできなくなります。
pageContent.inert = true;閉じるときにinertを外す
モーダルを閉じたら、inert属性を削除してページを再び操作可能にします。これを忘れると、ページが操作不能なままになります。
pageContent.inert = false;ネイティブのdialogなら自動で行われる
showModal()で開いたネイティブのdialogは、ページの残りの部分を自動的にinertにします。そのため、追加のコードなしでこの保護が得られます。
aria-modalが示すこと
aria-modalをtrueに設定すると、ダイアログが開いている間、外側のコンテンツは利用できないことを支援技術に伝えられます。
<div role="dialog" aria-modal="true">...</div>aria-modalは壁ではなく宣言
注意してください。aria-modalが伝えるのはスクリーンリーダーへの情報だけです。フォーカスやクリックを実際に遮断するわけではないため、inertも必要です。
両方を組み合わせる
堅牢な実装では、背後にinertを設定し、ダイアログにaria-modalを設定します。一方が実際に遮断し、もう一方が境界を通知します。
<div role="dialog" aria-modal="true">
<!-- background gets inert -->以前使われていたaria-hiddenの方法
inertが広くサポートされる前は、開発者は背後のコンテンツにaria-hiddenを設定していました。コンテンツを読み上げ対象から隠せますが、キーボードフォーカスまでは止められませんでした。
ダイアログ自体を隠さない
よくある不具合の1つは、aria-hiddenを広範囲に適用してダイアログまで含めてしまうことです。modalが非表示領域に入らないようにしてください。
ツリーで確認する
モーダルを表示した状態で、ブラウザーのaccessibility treeを開きます。背後のページがツリーから消え、ダイアログだけが残っていることを確認してください。✅
確認問題
aria-modal=trueを追加しましたが、inertは設定しませんでした。どのような問題が残りますか。
まとめ:背後のページを遮断する
背後のページをinertにし、aria-modalを宣言する方法を学びました。これにより、ユーザーがアクセスできるのは実質的にモーダルだけになります。🎯
AI チューターと学ぶ HTML — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「背景をinertにしてaria-modalを設定する」レッスンは無料ですか?
はい。「背景をinertにしてaria-modalを設定する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Accessibility Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Accessibility Academyコースには全4レッスンが含まれています。
「背景をinertにしてaria-modalを設定する」で何を学びますか?
開いている間、ページの他の部分に到達できないようにします。 ブラウザで直接実行するハンズオンコードでWeb Accessibility Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web Accessibility Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb Accessibility Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「背景をinertにしてaria-modalを設定する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb Accessibility Academyレッスンでコードを書いて実行できますか?
はい。すべてのWeb Accessibility Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ダイアログロールとネイティブのdialog要素
- モーダル内にフォーカスを閉じ込める
- Escapeで閉じてフォーカスを戻す
- 背景をinertにしてaria-modalを設定する