Page Notice
A custom landmark which appears prominently at the top of the page.
Introduction
User notification which appears prominently at the top of the page, above the main content.
In order of priority, from high to low, a page notice is classified as either:
attention
confirmation
information
Page-notices may be rendered server-side and visible at page load time or, in a single page app environment, they might instead be triggered on the client after some user action.
Composite patterns containing Page Notices are:
Working Examples
Experience the pattern in action on our companion eBay MIND patterns examples website.
Examine the required markup structure in the Bones GitHub project.
View a fully styled example on our eBay Skin website.
Best Practices
A page notice must appear above the main page content, and above the fold if possible.
A page must have only one page notice visible at any time.
Page notice must not rely on colour alone to convey meaning or tone.
Page notice should use an icon to further assist conveying meaning & tone.
Page notice may optionally contain a button to dismiss and hide the notice.
Page notice may optionally contain any number of call to action links or buttons.
Interaction Design
Keyboard
An attention notice must receive keyboard focus if rendered on the server. In some cases we do this for client-side rendered notices too (e.g. if the notice contains a call to action link or button).
Screen Reader
Critical error notices must be announced on page load (achieved via focus management).
All client-side changes must be announced (achieved via live-region for non critical notices).
Page notice must be available in screen reader list of regions or landmarks.
Developer Guide
A page notice has 4 key pieces of content: icon, heading, copy and call to action link or button (optional).
Landmark Region
To aid discoverability of such important content for assistive technology, we make the page notice a landmark, using the <section>
tag and region
role.
The page notice will not appear in the screen reader's list of landmarks until we assign it an accessible label. We will fix that in a little while.
Programmatically Focusable
Adding a tabindex value of -1 allows programmatic keyboard focus on a high-priority page notice.
NOTE: You may wish to apply the tabindex attribute in a progressively enhanced manner with JavaScript instead.
Live Region
Notices rendered or updated on the client must exist within a "live-region".
Assistive technology will now announce any client-side changes to content within the live-region element.
Structure
We will begin by structuring the notice into 3 parts: header, main & footer.
Icon
The SVG icon fits into the header slot. It has an aria-label
value of "Attention", "Confirmation" or "Information".
Title & Copy
The heading element can be used to as the label for the landmark region, fixing the issue mentioned previously.
Call to Action
Finally, any call to action link or button can be placed into the footer slot.
FAQ
When do I set keyboard focus on a page notice?
Low priority notices such as confirmation and information should never receive keyboard focus.
All high-priority page notices rendered on the server should receive keyboard focus.
Some high-priority notices rendered on the client should receive keyboard focus. Typically these are notices that contain an interactive call to action that helps resolve the issue.
Last updated