【发布时间】:2021-01-25 00:29:14
【问题描述】:
我正在努力使我们的网页更易于访问,但我对推/拉部分的标签顺序感到困惑。
这是一个例子:
<section class="section">
<div class="container-fluid">
<div class="row">
<div class="col-md-6">
<a href="#" aria-label="Lorem ipsum" target="_blank"><img src="https://via.placeholder.com/770x560" alt="Image" /></a>
</div>
<div class="col-md-6">
<h3>Lorem ipsum</h3>
<p>Sed ut perspiciatis unde omnis iste natus</p>
<div class="btn">
<a href="#" role="button" tabindex="0" target="_blank">Lorem ipsum</a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-push-6">
<a href="#" aria-label="Lorem ipsum" target="_blank"><img src="https://via.placeholder.com/770x560" alt="Image" /></a>
</div>
<div class="col-md-6 col-md-pull-6">
<h3>Lorem ipsum</h3>
<p>Sed ut perspiciatis unde omnis iste natus</p>
<div class="btn">
<a href="#" role="button" tabindex="0" target="_blank">Lorem ipsum</a>
</div>
</div>
</div>
</div>
</section>
当我通过推/拉来浏览该行时,图像首先聚焦,按钮聚焦第二,即使它在桌面上显示为首先是按钮,其次是图像。我理解它为什么这样做,但这是可访问性的最佳做法吗?似乎它会让用户感到困惑。如果这不是最佳实践,我将如何反转标签顺序?我是否需要浏览整个网页并为每个可聚焦元素设置tabindex="0", "1", "2" 等?
【问题讨论】:
-
您使用推送和拉取是否有原因(即桌面版与移动版)?如果是这样,this answer i gave 有一种无需求助于
tabindex等即可拥有替代布局的方法。如果不是这种情况,请提供有关您为什么这样做的更多信息,这将有助于我们为您提供一个彻底的解决方案,因为 DOM 订单是可访问性的关键。 -
抱歉造成混淆,我试图使代码尽可能短以使事情变得更容易,但我可能剥离了太多。我添加了另一行不包含推/拉。基本上,我们只是想要在桌面上交替使用图像/文本和 CTA 的美感,但让它们在移动设备上首先堆叠图像,然后再堆叠文本和 CTA。
标签: html twitter-bootstrap-3 accessibility tabindex wcag