diff --git a/.changeset/solid-cars-care.md b/.changeset/solid-cars-care.md
new file mode 100644
index 0000000000..7b0b06025f
--- /dev/null
+++ b/.changeset/solid-cars-care.md
@@ -0,0 +1,5 @@
+---
+"@cloudflare/kumo": patch
+---
+
+Add JSDoc note to Dialog.Root role prop clarifying alertdialog should not include a header close button
diff --git a/packages/kumo-docs-astro/src/components/demos/DialogDemo.tsx b/packages/kumo-docs-astro/src/components/demos/DialogDemo.tsx
index 1ff0c5f05c..36dc189e00 100644
--- a/packages/kumo-docs-astro/src/components/demos/DialogDemo.tsx
+++ b/packages/kumo-docs-astro/src/components/demos/DialogDemo.tsx
@@ -22,7 +22,7 @@ export function DialogBasicDemo() {
render={(props) => (
}
aria-label="Close"
@@ -42,18 +42,18 @@ export function DialogBasicDemo() {
export function DialogWithActionsDemo() {
return (
- } />
+ } />
@@ -255,7 +261,7 @@ export function DialogWithComboboxDemo() {
render={(props) => (
}
aria-label="Close"
@@ -290,7 +296,13 @@ export function DialogWithComboboxDemo() {
)}
/>
- Create
+ (
+
+ Create
+
+ )}
+ />
@@ -311,7 +323,7 @@ export function DialogWithDropdownDemo() {
render={(props) => (
}
aria-label="Close"
diff --git a/packages/kumo-docs-astro/src/pages/components/dialog.mdx b/packages/kumo-docs-astro/src/pages/components/dialog.mdx
index cbf6967917..ee83002241 100644
--- a/packages/kumo-docs-astro/src/pages/components/dialog.mdx
+++ b/packages/kumo-docs-astro/src/pages/components/dialog.mdx
@@ -170,6 +170,7 @@ export default function Example() {
### With Actions
+
Dialog with a primary action and a cancel button in the footer, alongside a header close button.
diff --git a/packages/kumo/src/components/dialog/dialog.tsx b/packages/kumo/src/components/dialog/dialog.tsx
index 059c797d2d..304393570a 100644
--- a/packages/kumo/src/components/dialog/dialog.tsx
+++ b/packages/kumo/src/components/dialog/dialog.tsx
@@ -265,6 +265,9 @@ export type DialogRootProps = BaseDialogRootProps & {
* - Confirmation dialogs requiring explicit user acknowledgment
* - Actions that cannot be undone
*
+ * Note: Do not include a header close button (`Dialog.Close`) in `alertdialog` — users must
+ * respond via explicit action buttons (e.g. confirm/cancel) in the footer.
+ *
* @default "dialog"
*/
role?: KumoDialogRole;