Missing Description Warning in Shadcn UI Sheet Components
The Problem
When using Shadcn UI's Sheet
component, you may encounter this console warning:
Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}
Despite not using Dialog
components directly, the warning appears because:
- Shadcn's
Sheet
is built atop Radix UI'sDialog
primitives - The underlying
DialogContent
requires accessibility descriptors for screen readers - Both the
SheetDescription
child component andaria-describedby
prop are missing
Why This Happens
Radix UI enforces accessibility standards requiring either:
- A descriptive
DialogDescription
/SheetDescription
component - Explicit
aria-describedby
attribute (even if set toundefined
) Without these, screen readers can't properly announce dialog/sheet content.
Recommended Solutions
1. Add Descriptive Text (Best Practice)
Include meaningful content within SheetDescription
, optionally hiding it visually with sr-only
:
<SheetContent side="right">
<SheetHeader>
<SheetTitle>Navigation Menu</SheetTitle>
<SheetDescription className="sr-only">
Site navigation links and actions
</SheetDescription>
</SheetHeader>
{/* Your content */}
</SheetContent>
2. Explicitly Undefined ARIA (For Simple Sheets)
If no description is needed, suppress the warning directly:
<SheetContent
side="right"
aria-describedby={undefined} // Suppresses warning
>
{/* Your content */}
</SheetContent>
Accessibility Note
Only use aria-describedby={undefined}
when the sheet's purpose is visually obvious. For complex sheets, always provide descriptions.
How Sheet Relates to Dialog
Shadcn's sheets inherit dialog requirements from Radix UI:
Component | Underlying Primitive | Description Requirement |
---|---|---|
SheetContent | DialogContent | Required via description/label |
DialogContent | DialogContent | Same accessibility rules |
Best Practices
- Always provide descriptions when content isn't self-explanatory
- Use
sr-only
for visual hiding rather than omitting descriptions - Avoid empty descriptors like
<SheetDescription />
which create empty aria references - Include titles with
SheetTitle
for full accessibility context
Why This Fails Without Solution
{/* Warning triggered: Missing accessibility attributes */}
<SheetContent>
<div>My Content</div>
</SheetContent>
The component hierarchy demands accessibility attributes that aren't present.
Key Takeaways
- Shadcn's sheets inherit dialog behavior—always include accessibility elements
- Prioritize hidden descriptions (
sr-only
) over disabling attributes - Suppress warnings only when accessibility impact is minimal
- Combine
SheetTitle
+SheetDescription
for full accessibility coverage
For more details, see:
Radix UI Dialog Documentation
Shadcn Sheet Documentation