Web Accessibility Academy · レッスン

背景をinertにしてaria-modalを設定する

開いている間、ページの他の部分に到達できないようにします。

レッスン 4/413 ステップ

「背景を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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ダイアログロールとネイティブのdialog要素
  2. モーダル内にフォーカスを閉じ込める
  3. Escapeで閉じてフォーカスを戻す
  4. 背景をinertにしてaria-modalを設定する
← Web Accessibility Academyに戻る