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 とバックドロップのクリックを処理します
モーダルのアクセシビリティ確認
振り返り
振り返り:モーダルを 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Portal、Focus Trap、Escapeで閉じる操作
- Global Overlay Manager(Context + Reducer)
- アクセシビリティのためのAnnouncements(aria-live)