Skip to content
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

ariaHideOutside on pages with many dom elements has very slow performance #7377

Open
SlexAxton opened this issue Nov 15, 2024 · 1 comment
Open

Comments

@SlexAxton
Copy link

SlexAxton commented Nov 15, 2024

Provide your feedback here.

Unsurprisingly, on any popover that doesn't use isNonModal that uses ariaHideOutside to add aria-hidden to every other dom element gets very slow on large pages.

I have pages with a lot of content on them (like a diff page in github) that I want to be accessible via cmd-f. So I'm not eager to virtualize the content. When I open a menu on these pages, it sometimes takes more than 1 or 2 seconds for the menu to close because the main thread is frozen by going through and un-marking all of the items.

Additionally, if I end up needing to turn off this behavior my only mechanism is isNonModal. However, I do like some of the features of isNonModal={false} such as scroll locking, but I'd have to give those up in order to avoid the ariaHideOutside stuff.

Is there any middle ground? Would it be possible to mark just containing elements in a way that could be faster? Could we expose more granular control over ariaHideOutside vs isNonModal?

🔦 Context

No response

💻 Code Sample

No response

Version

3.35.1

What browsers are you seeing the problem on?

Firefox, Chrome, Safari

If other, please specify

No response

What operating system are you using?

Mac OS X 14.5

@reidbarber
Copy link
Member

This was fixed by @majornista in #4773, but then reverted in #4942 due to:

Issues found where you can no longer tab from a open Picker dropdown to adjacent focusable elements

We may want to revisit this at some point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants