0Pricing
React Academy · レッスン

Portal、Focus Trap、Escapeで閉じる操作

portalでmodalをrenderし、キーボード利用者のfocusを閉じ込め、Escapeやbackdropで閉じられる堅牢なa11yの基盤を作ります。

「Portal、Focus Trap、Escapeで閉じる操作」はCoddyKit上の無料React Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全3レッスンが含まれています。

ポータルとフォーカストラップが必要な理由

目標:誰もが使いやすいモーダルを構築します。

  • body への Portal
  • Tab キーを内部に留めるフォーカストラップ
  • Escape/バックドロップによる閉じる操作

アクセシビリティの基本

  • role="dialog" と aria-modal="true" を使用します
  • 開いたときに最初の操作可能な要素へフォーカスします
  • 閉じたときにトリガーへフォーカスを戻します

デモ:ポータルモーダル(開閉)

Portal を介してダイアログをレンダーし、他のすべての要素より前面に表示します。

<div id="root"></div>

デモ:フォーカストラップの基本

最初のボタンに自動的にフォーカスし、ダイアログ内で Tab キーをトラップします。

<div id="root"></div>

デモ:閉じるパターンとフォーカスの復元

Escape またはバックドロップで閉じ、トリガーボタンにフォーカスを戻します。

<div id="root"></div>

ヒントとチェックリスト

  • role="dialog" と aria-modal="true" を追加します
  • 開いたときに最初のコントロールへフォーカスし、閉じたときにトリガーへ戻します
  • Escape とバックドロップのクリックを処理します

モーダルのアクセシビリティ確認

アクセシブルなモーダルダイアログを実現するうえで、特に効果的な2つの実践方法は何ですか?

振り返り

振り返り:モーダルを Portal 経由でレンダーし、フォーカスを内部に保ちます。Escape やバックドロップで閉じられるようにし、開く操作を行った要素へフォーカスを戻します。

よくある質問

「Portal、Focus Trap、Escapeで閉じる操作」レッスンは無料ですか?

はい。「Portal、Focus Trap、Escapeで閉じる操作」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全3レッスンが含まれています。

「Portal、Focus Trap、Escapeで閉じる操作」で何を学びますか?

portalでmodalをrenderし、キーボード利用者のfocusを閉じ込め、Escapeやbackdropで閉じられる堅牢なa11yの基盤を作ります。 ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

React Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「Portal、Focus Trap、Escapeで閉じる操作」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このReact Academyレッスンでコードを書いて実行できますか?

はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. Portal、Focus Trap、Escapeで閉じる操作
  2. Global Overlay Manager(Context + Reducer)
  3. アクセシビリティのためのAnnouncements(aria-live)
← React Academyに戻る