Nested elements with `role='tab'` are triggering tab change
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 3.1k
- Forks
- 455
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 2
Description
If any child element of a TabPanel has role='tab' clicking on that element will cause the selected tab to become the first tab.
Example:
Clicking on <span>hello</hello> will cause the selected tab to change.
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
export default () => (
<Tabs>
<TabList>
<Tab>Title 1</Tab>
<Tab>Title 2</Tab>
</TabList>
<TabPanel>
<h2>Any content 1</h2>
</TabPanel>
<TabPanel>
<h2>Any content 2</h2>
<div role='tab'>
<span>hello</span>
</div>
</TabPanel>
</Tabs>
);
Use Case:
Seems plausible that someone might want to use the 'tab' role on a nested element. In my particular case I'm using https://github.com/react-component/collapse within a TabPanel.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the JSX example with a nested element using role='tab', then trace how clicks inside TabPanel affect tab selection. Done means clicking the nested role='tab' element no longer changes the selected tab, while normal tab changes still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100