浮動介面與確認

浮在畫面上,不代表都該擋住人。

先問:使用者現在需要立刻回應嗎?背景工作必須暫停嗎?這兩個答案,會把 Dialog、Modal Dialog、Non-modal Dialog、Alert Dialog 與 Confirmation Dialog 分到不同的位置。

選擇流程

先判斷中斷程度,再選對話框名稱。

  1. 使用者需要立刻回應,才能安全繼續嗎?不需要:優先考慮頁面內提示或通知;不要為了醒目就跳出對話框。
  2. 背景內容必須暫停,避免誤操作嗎?需要:使用 Modal Dialog;背景應真正不可操作,焦點也要留在對話框內。
  3. 這是高風險或難以復原的動作嗎?是:使用 Confirmation Dialog,具體寫出對象、後果、取消與 Danger 動作。
  4. 它只是輔助資訊,使用者還要繼續看背景嗎?是:使用 Non-modal Dialog;不要加遮罩,也不要宣稱背景被鎖住。

差異對照

同樣是浮在上方,責任、焦點與風險完全不同。

點選欄位名稱可進入各元件的閱讀路徑、實際 Demo 與可複製的 AI Prompt。

判斷面向Dialog對話框Modal Dialog模態對話框Non-modal Dialog非模態對話框Alert Dialog警示對話框Confirmation Dialog確認對話框
背景能否操作依需求決定;Dialog 是統稱,不等於一定阻斷。不能。開啟後,背景內容不可意外操作。可以。它是浮動的輔助面板,不是假 Modal。不能。重要訊息需要先被讀取與回應。不能。先確認高風險動作是否真的要做。
適合的任務一段補充資訊、短任務或小型編輯。完成、取消或確認後才能回到前一個任務。檢視器、參考資訊、可並行使用的工具。同步失敗、權限異常等需要立即處理的訊息。刪除、停用、覆蓋等難以復原的操作。
焦點與鍵盤開啟後應給可理解的起始焦點;關閉後回到觸發點。Tab 與 Shift+Tab 留在對話框內;Escape 可取消。焦點可在面板與背景之間移動。焦點進入訊息與回應操作;不把背景誤標為 Modal。預設焦點放在取消等較安全動作;Escape 視同取消。
文案重點先講清楚這塊內容要幫使用者完成什麼。說明為何此刻必須暫停背景工作。明確表達它是可並行工作的工具或參考區。用具體原因與下一步,避免只寫「發生錯誤」。說出對象、後果與是否可復原;危險動作用 Danger Token。
常見誤用把所有浮動內容都稱為 Modal。只因畫面看起來「高級」就阻斷整個流程。加 backdrop 或 aria-modal,卻仍讓背景可操作。把一般通知、成功訊息也做成強制中斷。把低風險、可 Undo 的動作每次都要求二次確認。

示範情境

停用帳號不是「跳一個紅色彈窗」而已。

在 LumenDesk 的停用情境中,使用者需要知道停用的是誰、會造成什麼影響,以及如何安全退出。因此這裡選 Confirmation Dialog:取消先取得焦點、Escape 視同取消、背景不能被意外操作,危險動作也明確標示。

查看 Confirmation Dialog Demo →