Mistake #67 : Modal in Modal

モーダル・イン・モーダルの
迷宮

「編集」ボタンを押すとポップアップが開く。
その中でさらに「確認」を押すと、またポップアップが開く。
スマホで見ると、閉じるボタンは画面のはるか外側にありました。

💀 ユーザー閉じ込めチェック
  • 「画面遷移させるのが面倒」という理由でモーダルを使っている
  • モーダルの上に、アラーとや別のモーダルを表示している(2階層以上)
  • スマホでキーボードが開くと、モーダルの入力欄が隠れて見えなくなる
  • ブラウザの「戻る」ボタンを押すと、モーダルではなくページごと戻ってしまう
⚠️ 違反:GoogleのUIガイドラインにおける「アンチパターン」です。
ユーザーは閉じ込められ、離脱するしかなくなります。

01. 出口のない部屋

Edit Profile

Enter your details...

Are you sure?

Cannot close this on mobile...

🔒

Ajax(非同期通信)の普及により、「画面遷移せずにその場で編集」できるUIが流行しました。
しかし、それは「開発者が楽をするため」の道具ではありません。
モーダルの中にモーダルを表示する「ネスト(入れ子)」構造は、ユーザーの空間認識を狂わせます。
特に画面の狭いスマートフォンでは、複数のレイヤーが重なると「今どこにいるのか」「どうすれば戻れるのか」が完全にわからなくなります。

モーダルは「1階層」まで。
それが守れないなら、ページ遷移させろ。

「確認ダイアログ」程度ならOS標準のアラートを使うべきですし、複雑な入力が必要な「詳細設定」なら、独立した別ページを作るべきです。
「閉じるボタン」が画面外にはみ出して押せなくなる実装ミス(オーバーフロー)は、Webアプリにおける「監禁罪」です。

02. 「URLがある」という価値

モーダルにはもう一つ、致命的な欠点があります。
それは「URLが変わらない」ことです。

パーマリンクの重要性

「この商品の編集画面」をチャットで同僚に送りたいとします。
しかしモーダル実装の場合、URLはトップページのままです。
リンクを開いた同僚は「で、どこ?」と迷子になります。
重要な機能やコンテンツには、必ず固有のURL(パーマリンク)を持たせるのがWebの基本原則です。

戻るボタンの挙動

ユーザーは「閉じる」ためにブラウザの「戻る」ボタンを無意識に押します。
しかし、モーダルは履歴に残らないため、サイトのトップページやGoogle検索結果まで戻されてしまいます。
(History APIで制御することも可能ですが、実装コストは高いです)

03. フラットな世界へ

AppleやGoogleの最新デザインガイドラインでは、モーダルの使用は限定的です。
画面遷移を恐れないでください。スマホアプリのように、スライドして新しい画面が出る方が、
「戻れる」安心感があり、ユーザーにとっては使いやすいのです。

執筆:UIアーキテクチャ設計室

「閉じ込めない」「迷わせない」UI設計のプロフェッショナル。
Figmaによるプロトタイピングから、実運用に耐えうるコンポーネント設計まで一貫してサポートします。