模态对话框

modal_dialog2026-10-16 12:01:24

模态对话框(Modal Dialog)是要求用户先完成或退出当前对话,才能继续操作背景界面的交互模式。其核心是临时限制操作范围,不能仅凭弹层外观或背景变暗判断是否属于模态。

使用场景与边界

删除确认、简短的编辑任务等可以采用模态对话框,使用户在返回原任务前完成一次明确处理。作为设计建议,应避免用它频繁打断常规操作;需要长期对照背景内容或处理复杂流程时,可考虑非模态面板或独立页面。

非模态对话框允许用户在保留对话框的同时继续操作其他区域;模态对话框则在打开期间使背景不可交互。两者的区别在交互约束,而不是是否有遮罩。

打开、操作与关闭

打开后应把焦点移到对话框内的适当位置,Tab 与 Shift+Tab 在其内部切换。初始焦点应结合任务决定,例如长内容先聚焦标题,难以撤销的确认可优先考虑风险较低的操作。

应有明确的关闭或取消入口,并支持相应键盘关闭行为。关闭后通常把焦点返回触发控件;触发控件已消失或后续流程需要时,应选择符合任务逻辑的位置。多层对话框应由当前活动层处理焦点和关闭。

参考:W3C 模态对话框模式。

Web 实现方式

HTML 的 dialog 元素可以通过 showModal() 进入模态显示,浏览器提供顶层显示及背景惰性处理等内置行为;show() 则用于非模态显示。仍需选择合适的初始焦点、设置可访问名称,并核验实际关闭与表单行为。

自定义容器使用 role="dialog"、aria-modal="true" 只是声明语义,不会自动实现模态交互。实现方还需落实背景不可交互、焦点管理和关闭行为。单独提高 z-index 只处理视觉层级,不能完成这些要求。

参考:dialog 元素官方参考。

本页目录