sp-alert-banner
NPM
1.1.2
Storybook
View Storybook
Description #
The <sp-alert-banner>
shows pressing and high-signal messages, such as system alerts. It is meant to be noticed and prompt users to take action.
Usage #
yarn add @spectrum-web-components/alert-banner
Import the side effectful registration of <sp-alert-banner>
via:
import '@spectrum-web-components/alert-banner/sp-alert-banner.js';
When looking to leverage the AlertBanner
base class as a type and/or for extension purposes, do so via:
import { AlertBanner } from '@spectrum-web-components/alert-banner';
Examples #
The alert banner accepts text context in the default slot provided:
<sp-alert-banner open> All documents in this folder have been archived </sp-alert-banner>
Dismissible #
Use the dismissible
attribute to include an icon-only close button used to dismiss the alert banner:
<sp-alert-banner open dismissible> All documents in this folder have been archived </sp-alert-banner>
Actionable #
Use the action slot for the contextual action that a user can take in response to the issue described:
<sp-alert-banner open dismissible> Your trial has expired <sp-button treatment="outline" static-color="white" slot="action"> Buy now </sp-button> </sp-alert-banner>
Variants #
Info #
<sp-alert-banner open variant="info" dismissible> Your trial will expire in 3 days <sp-button treatment="outline" static-color="white" slot="action"> Buy now </sp-button> </sp-alert-banner>
Negative #
<sp-alert-banner open variant="negative" dismissible> Connection interupted. Check your network to continue </sp-alert-banner>
Closing the alert banner #
Alert banners should be used for system-level messages and they should be dismissed only as a result of a user action or if the internal state that triggered the alert has been resolved.
The alert can be dismissed by triggering the close button in case of a dismissible alert. It also exposes a public close
method to allow consumers to close the alert programmatically.
The component dispatches a close
event to announce that the alert banner has been closed. This can be prevented by using the event.preventDefault()
API.
Accessibility #
The sp-alert-banner
element is rendered with a role
of alert
, to inform screen readers and notify users accordingly. When rendering an alert that is dismissable or has actions on a page, it should be placed in a container with a role
of region
and that region should be labelled for screen readers users to quickly navigate.
The alert banner supports keyboard interaction as follows:
- Tab should place focus on the next interactive element, which can be either the actionable button or the close button.
- Tab + Shift should place focus on the previous interactive element.
- Space or Enter should trigger the interaction if one of the buttons is focused, thus dismissing the alert in case of the close button or triggering the corresponding contextual action.
- Esc will dismiss an alert banner if it’s a dismissible alert.
Once focus is on the alert banner, arrow keys can be used to navigate between the close button and the slotted action buttons.