-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Provide a general summary of the issue here
The W3C APG Tabs Pattern and W3C WAI-ARIA 1.3 Spec indicates aria-controls SHOULD be set on each tab panel. We currently set the prop only when selected due to #837 (comment), but I'm wondering whether this was an oversight and panels should instead be forced to mount with display:none.
This is heavily impacting the design section of the Rotator RFC so I would like to gather feedback before committing. The context of this question is whether tab panels could exist in a collection, which may be virtualized, thereby also removing panels from the DOM. In this use-case, each Tab would cause a TabPanel to scroll into view.
I'm also questioning whether aria-controls would even be pointing to the TabPanel in this scenario, since the state being controlled isn't perceivability of the TabPanel but rather the scrollLeft of the scrollParent. Maybe a generic button group, an anchor list or possibly radio group, with aria-controls pointed to the scrollParent is more appropriate?
Furthermore, assuming aria-controls is pointing to a TabPanel and is set only when selected - Is it acceptable if its value were to temporarily point to a missing DOM element until the selected TabPanel is scrolled into view? This could happen when a Tab, pointing to a virtualized TabPanel, is selected and it takes a while to scroll the TabPanel into the visible rect.
🤔 Expected Behavior?
😯 Current Behavior
💁 Possible Solution
No response
🔦 Context
No response
🖥️ Steps to Reproduce
Version
latest
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
OSX
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response