所以我有一个div,默认情况下显示图像,隐藏列表。但单击该按钮会显示列表并隐藏图像。将有一个由这些item
div组成的网格。
<div class="item">
<div class="item__content">
<img src="..." alt="<Relevant text>" id="image">
<ul class="hidden" id="list">
<li>Detail 1</li>
<li>Detail 2</li>
<li>Detail 3</li>
<li>Detail 4</li>
</ul>
</div>
<div class="item__heading">
<div class="item__heading__text">
<h3>Item name</h3>
<h4>Item brand</h4>
</div>
<button onclick="toggleContent()" aria-controls="image list">Details</button>
</div>
</div>
现在我只有一个CSS类
.hidden {
display: none;
}
一个JS函数
function toggleContent() {
const image = document.getElementById("image");
const list = document.getElementById("list");
image.classList.toggle("hidden");
list.classList.toggle("hidden");
}
有没有更好的方法来解决这个问题?我不确定隐藏东西的方法,还有是否需要aria-hidden
?
我可能应该注意到图像的alt
文本很重要,因为图像显示的信息是用户无法解码的。
这两个状态应类似于e
1条答案
按热度按时间x8diyxa71#
也许这是有道理的?正如在评论中提到的,这种方式的列表是唯一真正被切换为屏幕阅读器用户?