Daily Accessibility ReviewModal dialogs missing accessible name (aria-label/aria-labelledby)
#17880
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-06-05T08:36:59.595Z.
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
The
AppModalcomponent (shell/components/AppModal.vue) renders a dialog withrole="dialog"andaria-modal="true", but does not provide an accessible name viaaria-labeloraria-labelledby. According to WCAG and ARIA specifications, every dialog must have an accessible name so screen reader users can understand the purpose of the modal when focus moves to it.Code Location
shell/components/AppModal.vue, lines ~198–210:Notice: no
aria-labeloraria-labelledbyattribute.Impact
When a modal opens and focus moves into the dialog, screen readers (NVDA, JAWS, VoiceOver) announce the dialog container but cannot announce what the dialog is about because there is no accessible name. Users are left without context about the modal's purpose.
WCAG 2.2 Reference
role="dialog") must have an accessible name. (www.w3.org/redacted)aria-labeloraria-labelledby. (www.w3.org/redacted)Suggested Fix
Add a
nameortitleprop toAppModaland use it as the accessible name:Or, if dialog content always starts with a heading, use
aria-labelledby:Many modal usages should then pass a title prop or include a heading with the corresponding
idso thearia-labelledbyassociation can be established.All reactions