【发布时间】:2022-11-28 00:20:37
【问题描述】:
我正在使用 react-bootstrap 版本 2.4.0 并且我正在使用 Tab 组件。我希望可以通过选项卡导航访问该网站,但是当我使用选项卡组件时,焦点仅设置在活动选项卡项上,永远不会到达其他选项卡。
<Tabs
className="mb-3"
defaultActiveKey="A"
mountOnEnter={true}
unmountOnExit={true} >
<Tab eventKey="A" title="A">
<A/>
</Tab>
<Tab eventKey="B" title="B">
<B/>
</Tab>
<Tab eventKey="C" title="C">
<C/>
</Tab>
</Tabs>
我注意到当页面呈现时,所有其他选项卡(不是活动选项卡)在该选项卡的按钮上都有 tabindex="-1",这使得选项卡导航无法访问。
这是 DOM 在 react bootstrap 生成 HTML 后的样子。您可以看到第一个选项卡按钮(活动按钮)没有 tabindex="-1" 属性。其他按钮有它,所以当我使用选项卡导航时,永远不会获得焦点,也永远无法单击它们。
<ul class="mb-3 nav-tabs nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation">
<button type="button" id="react-aria2325882265-4-tab-A" role="tab" data-rr-ui-event-key="A" aria-selected="true" class="nav-link active" aria-controls="react-aria2325882265-4-tabpane-A">A</button>
</li>
<li class="nav-item" role="presentation">
<button type="button" id="react-aria2325882265-4-tab-B" role="tab" data-rr-ui-event-key="B" aria-selected="false" tabindex="-1" class="nav-link">B</button>
</li>
<li class="nav-item" role="presentation">
<button type="button" id="react-aria2325882265-4-tab-C" role="tab" data-rr-ui-event-key="C" aria-selected="false" class="nav-link" tabindex="-1">C</button>
</li>
</ul>
如何使用 Bootstrap Tab 组件并通过选项卡导航访问它?
我看到如果我使用 Nav 组件,它不会有这个问题,因为它不会将 tabindex="-1" 放在 react-bootstrap 生成的 a tag 上。但是我不能使用 Nav 组件,因为我没有要转到的链接,而是要呈现的组件,而这正是 tab 组件的用途。
【问题讨论】:
标签: reactjs tabs accessibility react-bootstrap tabnavigator