[meta] Feature Callout surface should be accessible
Categories
(Firefox :: Messaging System, enhancement)
Tracking
()
People
(Reporter: mviar, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: meta)
Attachments
(1 file)
|
466.90 KB,
image/png
|
Details |
Scope of this bug is to implement and track accessibility review of the Feature Callout messaging surface (currently used for product tours and continuous onboarding messaging in about:firefoxview).
| Reporter | ||
Comment 1•3 years ago
•
|
||
The Feature Callout surface is used for product tours or reminders where the message is associated with a single element on the parent page. For example, pointing to a Colorways element and offering the user a quick synopsis of the feature.
A callout Feature Tour will be turned on by defauilt for about:firefoxview soon. In the meantime (or if you've already completed or dismissed the tour) you can:
- Go to
about:configand setbrowser.firefox-view.feature-tourto{"message":"FIREFOX_VIEW_FEATURE_TOUR","screen":"FEATURE_CALLOUT_1","complete":false} - Visit about:firefoxview
You should be:
- alerted of the modals presences after advancing in the tour (the modal moves to a new element on advance)
- able to interact with all page content while the modal is present (all content via keyboard and visible content using mouse)
- made aware of which element the modal is describing
- made aware of the text that describes the modal
Hi team,
the following accessibility issues are observed:
- When the
about:firefoxviewis opened, the screen reader focus jumps to the onboarding callout, which is expected (I assume), but when the screen reader completes reading its content, it proceeds to read the main page content from the middle - from the Colorways section and then to theRecently closedone. This will cause users missing the top of the page, incl. the synced tabs. - Programmatic rading order of the first callout is not following the visual reading order - the
Nextbutton is announced before the stepper which is placed on the left (for English and other LTR, stepper needs to be announced first) - Stepper is marked up as a
meterwhile that widget is not expected to be used in this case. Instead, the progress bar is expected (either preferred HTML<progress>or ARIA-poweredrole="progressbar") - Stepper announces that it's on the step 0 of 4, while
1 of 4would be expected to be more human-friendly :) Plus, thearia-valueminis set to1 - Stepper is announcing that it is a
vertical level indicatoron macOS - it should be horizontal (which is implied for either progress bar pattern, see #3 above) - The dialog does not follow the HCM styling for controls on hover:
CloseandNext/Got it!should have their colors reversed on hover, but theCloseicon disappears on Win and is almost invisible on mac. Nextdoes not follow Windows HCM colors for buttons: expected to useButtonTextandButtonFace, but the outline is using text color (white on WinOS 11 Night Sky HCM, as an example, while yellow is expected)- on MacOS the dialog title is not announced by VoiceOver - the code looks good, so this is likely more general bug?
- The stepper indications are hard to see: without HCM/Increase contrast on dark mode the color contrast for the future steps is only 2.2:1 while minimum per WCAG is 3:1 and higher is better. Users may find it difficult to predict how many steps are left or are passed as the inactive dots are hard to see. With HCM on, the contrast is still low. Maybe, using
WindowTextfor inactive dots andSelectedItemtextfor the current step dot be appropriate? - When
Closebutton is activated, the programmatic focus lands inconsistently somewhere on the page to any item that was under theClosebutton. It is expected that the focus would return to the top of the page, if the user did not navigate the page prior to getting on the onboarding popup. But if the user wandered around, the best place to return the focus would be the last focusable element before the onboarding popup was injected in the DOM or on the topmost element right after it, i.e. when the last popup is dismissed, the focus could be placed on the aside section for Colorways, for instance with thetabindex="-1"on theIndependent Voicesheading, so the user does not miss any piece of the content after the dismissal Escapeshould dismiss the popup whenever the focus is placed at the moment - this allows users to avoid covering up the content and is an expected keyboard behavior pattern
I hope it helps, let me know if any further information is needed
Comment 3•3 years ago
|
||
Noting here that in Bug 1786347 we're changing the parent element of the callout container to document.body, rather than the parent of the element that it is calling attention to, and using aria-owns as an accessibility band-aid.
The reason for this is because the positioning of the callout container can break depending on the callout container parent's position, and we can't guarantee that the position of the parent element will always be non-relative.
| Reporter | ||
Comment 4•3 years ago
|
||
Thank you for this helpful feedback, :ayeddi!
Per 11 - Product explicitly requested that escape not close the Feature Callout (CCing :vtay). Does this pose enough of an accessibility issue that we should rethink this approach?
(In reply to Meg Viar from comment #4)
Thank you for this helpful feedback, :ayeddi!
Per 11 - Product explicitly requested that escape not close the Feature Callout (CCing :vtay). Does this pose enough of an accessibility issue that we should rethink this approach?
While it is not a direct WCAG violation, using Escape to dismiss a dialog or a tooltip is one of best practices, because it is a well-known and widely used keyboard shortcut.
In this case, the tooltips are covering not only the content but also controls (as shown on the screenshot for the Recently closed expand/collapse control example), so this would require an additional step to be performed for users with limited dexterity, those who use a voice control or a switch device/software - they will need to navigate back to the tooltip's Close button to dismiss the dialog. Also, with overlays, it is not clear in which direction should they move the focus to get back to the dialog once the focus has left it. Unfortunately, often on other webpages returning to similar tooltips is not possible and this is what they're likely to expect too.
Using Esc to dismiss the dialog would be an accessibility improvement, but it is not a blocker in any way, because after all the Close button is accessible (is labeled, focusable, functional). I am curios to know what the concern with using the Esc is, maybe we can find a workaround too
Yes, we should allow for "esc" to dismiss the dialog. This is an oversight on my end.
| Reporter | ||
Comment 7•3 years ago
|
||
We'll need to add new dismiss telemetry to catch this (similar to how we handle it with spotlight) and update the QA plan. Is it acceptable if this doesn't make it into 106 @vtay?
Thank you for the feedback.
These are my thoughts on how we should prioritize these items
Let me know if there are any concerns.
- This sounds like a bug and that is should read from the top of the page (P1)
- Yes. The stepper should be announced before the Next button (P2)
- This is fair, but i think it’s a nice to have (P3)
- This is fair, but i think it’s a nice to have (P3)
- This is fair, but i think it’s a nice to have (P3)
- This looks like something we should fix especially if icons disappear/are invisible. (P1)
- This looks like something we should fix but it is not a top priority (P2)
- This sounds like something that we should investigate and fix (P2)
- This is something we should fix especially if it is hard to see; but a little less concerning given its stepper indication (P1/P2)
- This looks like something we should fix if we can (P1)
- We should fix this per a11y’s request (P2 - ok to leave until 107 )
Description
•