【发布时间】:2019-04-22 20:00:25
【问题描述】:
我正在尝试制作一个最容易被描述为可访问的可点击引导媒体对象列表的小部件。 https://getbootstrap.com/docs/4.3/components/media-object/#media-list原代码将js点击事件绑定到列表项元素本身。
我的第一个想法是将列表项元素中的所有内容包装在一个按钮元素中,并将我的点击事件附加到按钮上。这为列表项提供了焦点,并按照我的意愿行事。但后来我读到,在按钮标签中包含 div 或 h 标签是一种不好的做法。
<ul class="list-unstyled">
<li class="media" onclick="myFunction">
<img src="..." class="mr-3" alt="...">
<div class="media-body">
<h5 class="mt-0 mb-1">List-based media object</h5>
More info
</div>
</li>
</ul>
VS
<ul class="list-unstyled">
<li>
<button type="button" class="media" onclick="myFunction" disabled="isDisabled()">
<img src="..." class="mr-3" alt="...">
<div class="media-body">
<h5 class="mt-0 mb-1">List-based media object</h5>
More info
</div>
</button>
</li>
</ul>
所以此时还有另一种方法可以使用语义 html 使整个列表项行可点击,或者是添加角色 = 按钮、空格键的 onkeypress 事件和输入、自定义活动/禁用类和设置的最佳选择tabIndex 到 li 标签?
编辑:也许另一种思考设计的方式是使用此组件https://getbootstrap.com/docs/4.3/components/list-group/#links-and-buttons。基本上,我要维护的设计是一堆可点击的行,其中每行包含一个图像和几行短文本。
【问题讨论】:
标签: html bootstrap-4 accessibility clickable