-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EuiFlyout] Accessibility issues with type="push"
and ownFocus={false}
#6576
Comments
|
Push flyoutsLooking at our documentation and the component, this does feel like a variation on the |
I'm fine removing the focus trap on the flyout for Rather than removing the focus trap entirely, I think we should consider adding the entire I also think we need to come to a decision as to whether |
I think |
OK, in that case the updated task list of items are:
Does that look right to you, or is there anything missing? |
I'm looking at this again today, and questioning my prior conclusion. Blaming it on the cold I'm working through. I've put it on the discussion agenda for today because there might be more nuance. |
I don't disagree with any of your conclusions or see any major UX issues - what are you concerned about? |
I briefly entertained the idea our push flyout might need to have a role other than |
Closing this issue as a won't fix. Unfortunately, the new beta collapsible nav used by the new serverless design utilizes a push flyout that never disappears, and thus is not a dialog. To serve that use case, I've instead opted to take a different approach: #7065 If, in the future, someone else can reconcile the new collapsible nav's requirements with actual dynamic push flyouts, please feel free to re-open this issue or create a new one. |
CC @1Copenut for thoughts
Push flyouts (link)
These flyouts have the most severe keyboard/screen reader accessibility issues that may or may not require addressing depending on what the intention of them are. Current issues:
Focus traps on them are completely disabled. Keyboard users are not automatically focused into the flyout. Flyouts do not trap focus (users can tab in/out at all). Depending on where in the DOM the consumer places the push flyout, accessing the flyout can either be a huge headache or visually not make sense with the rest of the page.
Focus is not automatically returned to the flyout toggle on close (focus stranding)
Push flyouts do not close on
Escape
keypressAt first glance, all of these issues seem extremely problematic. However, if the goal of these "flyouts" is really more to "conditionally render some content within the existing flow of the page but visually to the side", then maybe they're not really dialogs at all, and we can get away with simply removing
role
iftype === 'push'
and call it a day? 😕Or, should we prefer to say "no, these are definitely dialogs, treat them like
ownFocus={false}
flyouts?ownFocus={false}
flyouts (link)While not nearly problematic or difficult for keyboard/SR users to use, the main problem with
ownFocus={false}
flyouts is that they deliberately advertise a functionality available to mouse users that is not available to keyboard/SR users:Mouse users are allowed to interact with items outside the flyout, keyboard/SR users are not. While this is certainly a design/UX decision, it feels like a slightly unfair/against best practices one, since usually the recommendation for accessibility parity is that keyboard users should be able to access everything mouse users can.
That being said, in this case it's not a hugely debilitating UX loss (unless some team in Kibana is literally relying on outside-flyout changes to happen at the same time as inside-flyout UI/UX), so I think we would have a case for keeping this as-is, but I would want to make sure it's an extremely conscious and a11y-vetted decision.
The text was updated successfully, but these errors were encountered: