fix: remove dialog description warning when aria-describedby is optional#3862
Open
mixelburg wants to merge 1 commit intoradix-ui:mainfrom
Open
fix: remove dialog description warning when aria-describedby is optional#3862mixelburg wants to merge 1 commit intoradix-ui:mainfrom
mixelburg wants to merge 1 commit intoradix-ui:mainfrom
Conversation
The ARIA APG dialog pattern specifies that aria-describedby is optional.
Previously, Dialog always set aria-describedby={descriptionId} and warned
when no Description component was rendered, causing false positive warnings
for valid dialog configurations without descriptions.
Now:
- aria-describedby is only set when a DialogDescription is rendered
- The console warning for missing description is removed
- DialogDescription registers itself via context on mount
Fixes radix-ui#3855
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3855
Problem
When a Dialog is created without a
DialogDescriptioncomponent, a console warning fires:However, per the APG dialog pattern,
aria-describedbyis optional. There are legitimate reasons to omit it, especially when dialog content includes semantic structures (lists, tables, multiple paragraphs) that would be difficult to understand as a single unbroken string by screen readers.Fix
aria-describedbyis now only set onDialogContentwhen aDialogDescriptioncomponent is actually renderedDialogDescriptionregisters itself with the Dialog context viauseEffecton mountaria-labelledbyattribute (forDialogTitle) is unchanged — title remains requiredChanges
DialogContextValue— addedhasDescription: booleanandsetHasDescriptionDialogroot — createshasDescriptionstate, passes through contextDialogContentImpl— conditionally setsaria-describedbyDialogDescription— registers itself via useEffectdialog.test.tsx— updated test expectation (no warning when no description)