AlertDialog
A headless confirmation dialog that seeks user input before proceeding. Features a wait()/close() pattern for deferred close during async operations.
Usage
AlertDialog mirrors Dialog but with stricter defaults: no close on click outside, no close on escape. The Action component provides a deferred close pattern for async confirmation flows.
Anatomy
<script setup lang="ts">
import { AlertDialog } from '@vuetify/v0'
</script>
<template>
<AlertDialog.Root>
<AlertDialog.Activator />
<AlertDialog.Content>
<AlertDialog.Title />
<AlertDialog.Description />
<AlertDialog.Close />
<AlertDialog.Cancel />
<AlertDialog.Action />
</AlertDialog.Content>
</AlertDialog.Root>
</template>Examples
marketing-site
Production
api-gateway
Production
design-tokens
Preview
legacy-dashboard
Archived
Accessibility
AlertDialog uses role="alertdialog" instead of role="dialog", signaling to assistive technologies that the dialog requires an immediate response.
Keyboard interaction
| Key | Behavior |
|---|---|
Tab | Cycles focus through focusable controls inside Content (trapped by showModal()) |
Escape | Blocked by default (opt-in via closeOnEscape prop) |
Enter / Space | Activates the focused button |
Focus management
Focus is handled by the native dialog: showModal() moves focus to the first focusable control inside Content. AlertDialog does not retarget focus to Cancel on its own.
For the WAI-ARIA alertdialog pattern — safe action first, destructive confirm not initially focused — put Cancel (or another non-destructive control) first among focusables in DOM order. The shipped examples do this. If something focusable must appear before Cancel, put autofocus on Cancel (or call .focus() yourself after open).
FAQ
AlertDialog uses role="alertdialog" for accessibility, defaults to blocking escape and click-outside dismissal, and provides the Action component with wait()/close() for async confirmation flows. Dialog uses role="dialog", closes on escape and click-outside by default, and has a simple Close button.
Use AlertDialog when the user must make an explicit choice before proceeding (delete confirmation, destructive action, data loss warning). Use Dialog for informational content, forms, or settings where dismissal is safe.
Yes, pass closeOnEscape to Content: <AlertDialog.Content closeOnEscape>.