---
title: "Dialog without a title (shadcn/dialog-title)"
description: "The dialog has no accessible name and Radix logs an error."
url: http://localhost:4173/rules/shadcn/dialog-title
updated: 2026-11-11
---

# Dialog without a title

> `shadcn/dialog-title` is a vetd rule. It flags: Dialog without a title. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `shadcn/dialog-title` |
| Severity | warning |
| Group | shadcn/ui and Radix composition |
| Tags | accessibility |

## Why it matters

The dialog has no accessible name and Radix logs an error.

## How to fix it

Add a DialogTitle (wrap it in VisuallyHidden to hide it visually).

## Credit

Based on work by:

- [Radix UI](https://www.radix-ui.com): Dialog requires a Title so the dialog has an accessible name.

## References

- [Dialog – Radix Primitives](https://www.radix-ui.com/primitives/docs/components/dialog), Radix UI
- [Dialog - shadcn/ui](https://ui.shadcn.com/docs/components/radix/dialog), shadcn/ui
- [Understanding Success Criterion 4.1.2: Name, Role, Value](https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html), W3C

## Related rules

- [`ui/icon-button-label`](http://localhost:4173/rules/ui/icon-button-label.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "shadcn/dialog-title" }`. CLI: `npx vetd explain shadcn/dialog-title`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`shadcn/as-child-single-element`](http://localhost:4173/rules/shadcn/as-child-single-element.md) · Next: [`shadcn/base-ui-as-child`](http://localhost:4173/rules/shadcn/base-ui-as-child.md)
