fix(GlToast): Improve accessibility
What does this MR do?
Related to #1743 (closed)
Add isStatus: true
in default ToastPlugin
options in order to generate Toast with role='status' aria-live='polite'
Before:
<div id="gl-toast-1__toast_outer" role="alert" aria-live="assertive" aria-atomic="true" class="b-toast b-toast-prepend"
style="">
<div id="gl-toast-1" tabindex="0" class="toast gl-toast">
<header class="toast-header"><button aria-label="Close" type="button"
class="btn btn-default btn-sm gl-button btn-default-tertiary btn-icon gl-toast-close-button gl-close-btn-color-inherit">
<!----> <svg data-testid="close-icon" role="img" aria-hidden="true" class="gl-button-icon gl-icon s16">
<use href="00a956e0b84f0777454d978fccef22f2.svg#close"></use>
</svg>
<!----></button></header>
<div class="toast-body">This is the default toast.</div>
</div>
</div>
After:
<div id="gl-toast-1__toast_outer" role="status" aria-live="polite" aria-atomic="true" class="b-toast b-toast-prepend"
style="">
<div id="gl-toast-1" tabindex="0" class="toast gl-toast">
<header class="toast-header"><button aria-label="Close" type="button"
class="btn btn-default btn-sm gl-button btn-default-tertiary btn-icon gl-toast-close-button gl-close-btn-color-inherit">
<!----> <svg data-testid="close-icon" role="img" aria-hidden="true" class="gl-button-icon gl-icon s16">
<use href="00a956e0b84f0777454d978fccef22f2.svg#close"></use>
</svg>
<!----></button></header>
<div class="toast-body">This is the default toast.</div>
</div>
</div>
Does this MR meet the acceptance criteria?
Conformity
-
Code review guidelines. -
GitLab UI's contributing guidlines. -
If it changes a Pajamas-compliant component's look & feel, the MR has been reviewed by a UX designer. -
If it changes GitLab UI's documentation guidelines, the MR has been reviewed by a Technical Writer. -
If the MR changes a component's API, integration MR(s) have been opened in the following projects to ensure that the @gitlab/ui
package can be upgraded quickly after the changes are released:-
GitLab: mr_url -
CustomersDot: mr_url -
Status Page: mr_url
-
-
Added the ~"component:*"
label(s) if applicable.
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
Security reports checked/validated by a reviewer from the AppSec team
Accessibility
If this MR adds or modifies a component, take a few moments to review the following:
-
All actions and functionality can be done with a keyboard. -
Links, buttons, and controls have a visible focus state. -
All content is presented in text or with a text equivalent. For example, alt text for SVG, or aria-label
for icons that have meaning or perform actions. -
Changes in a component’s state are announced by a screen reader. For example, changing aria-expanded="false"
toaria-expanded="true"
when an accordion is expanded. -
Color combinations have sufficient contrast.
Closes #1743 (closed)
Edited by Scott de Jonge