我创建了一个隐藏/显示分步组件,如果您单击步骤编号,该组件将显示内容。
它按预期工作,但我在确保其可访问性时遇到问题。
- 我似乎无法使用键盘在 1-4 个链接上按 Tab 键,即使它们是
<a>
标签。
<div class="progress-steps">
<a class="showSingle" target="1"></a>
<a class="showSingle" target="2"></a>
<a class="showSingle" target="3"></a>
<a class="showSingle" target="4"></a>
</div>
- 我还想确保用户也可以通过键盘激活隐藏的内容。
<section id="progress-content" class="hide">
<div id="div1" class="targetDiv"><h3>Initiation</h3>
<p><strong>Fill out the </strong><a class="bold-link" href="https://app.smartsheet.com/b/form?EQBCT=b6923f4b9dc347f384936e342e5d2b58" target="_blank" rel="noopener">Project Request Form</a>: Each request goes through a review process to determine if the project is ready to be worked on.</p>
</div>
<div id="div2" class="targetDiv"><h3>Planning</h3>
<p><strong>Kickoff</strong>: After approval, we will schedule a meeting between all involved parties to discuss the scope and direction of the project.</p>
</div>
<div id="div3" class="targetDiv"><h3>Execution</h3>
<p><strong>We get to work!</strong> The plan will be carried out — involving all key stakeholders. The final product will be tested and implemented.</p>
</div>
<div id="div4" class="targetDiv"><h3>Assessment</h3>
<p><strong>Metrics for Success</strong>: After completion of the project, we will obtain sign-off of deliverables and revisit in 6-12 months to ensure stakeholders needs are met.</p>
</div>
</section>
我尝试使用:focus
并将role="tab" aria-selected="true"
插入<a>
标签中。
这是我的代码笔:https://codepen.io/ckatz/pen/gJmgbq
我想确保任何使用键盘的人都可以有效地使用此组件。
我能够通过向每个链接添加tabindex="0"
来浏览。这包括在按 Tab 键浏览网站时正常流中的选项卡链接。
我还读到,您实际上不应该对所有导航链接使用aria-selected="true"
,而只应该使用当前选定的导航链接。在此处了解更多信息: stefanjudis.com/blog/aria-selected-and-when-to-use-it
因此,您的步骤选择器将如下所示:
<div class="progress-steps">
<a class="showSingle" target="1" role="tab" tabindex="0" aria-controls="nils-tab"></a>
<a class="showSingle" target="2" role="tab" tabindex="0" aria-controls="nils-tab"></a>
<a class="showSingle" target="3" role="tab" tabindex="0" aria-controls="nils-tab"></a>
<a class="showSingle" target="4" role="tab" tabindex="0" aria-controls="nils-tab"></a>
</div>
虽然我无法让它选择带有空格或输入的焦点元素。我将不得不做更多的研究来弄清楚这是怎么回事!