【发布时间】:2017-08-23 03:47:19
【问题描述】:
我正在与 WCAG 合作。我想解决屏幕阅读器阅读嵌套列表的方式。
<ul class="L1">
<li>
<a href="#">L1 Text Here</a>
<ul class="L2">
<li>
<span> <a href="link">L2 Text Here</a> </span>
<ul class="L3">
<li> <a href="link">L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="L1">
<li>
<a href="#">L1 Text Here</a>
<ul class="L2">
<li>
<span> <a href="link">L2 Text Here</a> </span>
<ul class="L3">
<li> <a href="link">L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="L1">
<li>
<a href="#">L1 Text Here</a>
<ul class="L2">
<li>
<span> <a href="link">L2 Text Here</a> </span>
<ul class="L3">
<li> <a href="link">L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
<li> <a href="link">Another L3 Text Here</a> </li>
</ul>
</li>
</ul>
</li>
</ul>
目前,当L1 中的焦点或选项卡作为“包含 5 项列表项的列表”时,读者会读取我的列表。在L2 中,当L1 悬停时,它显示“list with 4 items listitem”,然后当聚焦在L3 时,它显示为“list 6 items listitem”。在我的代码中有 5 个L1、4 个L2,然后是 6 个L3。我只是在这个 sn-p 中简短。
我希望 L1 被解读为“包含 4 个项目的列表”,然后 L2 被解读为“包含 6 个项目的列表”。我只能通过 JavaScript 文件给元素添加属性。
【问题讨论】:
-
在 iPhone 上使用画外音,这 6 个项目都没有被读出,列表的开头和结尾也很奇怪
-
读起来好像每个新列表之前都有一个结束 标记,就好像浏览器在开始下一个列表之前自动完成每个 ul 一样
标签: javascript jquery list screen-readers