【发布时间】:2020-04-07 19:43:48
【问题描述】:
我在页面上有“可聚焦”的元素(按钮、带有 tabindex 的元素等),屏幕阅读器可以很好地阅读内容。
但是,我还有一些其他不可聚焦的元素(因为它们有很多 - 下拉列表结果等),所以我不希望用户无数次单击选项卡,但它们可以通过左侧导航/right/up/down 键,它们会被 CSS 类“选中”(尽管其他一些元素——它们的父元素——实际上是聚焦的)
我想让读者阅读那些特定的元素,并“选择”类。我该怎么做?
(我尝试将属性 aria-label="read this" 应用于它们,但它不起作用;它仅在元素实际聚焦时才起作用)
这里有更多细节可以帮助你理解我想要实现的目标:
<div tabindex="0" >
<span>title1</span>
<ul>
<li class="selected">item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
<div tabindex="0">
<span>title2</span>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
这是小提琴:https://jsfiddle.net/d5gbjst1/1/
您可以在这 2 个 div 之间来回切换,任何屏幕阅读器(我尝试使用 Windows Narrator、NVDA 和 JAWS)将读取“title1”以及第一个和“title2”的所有项目以及所有项目第二个,取决于焦点在哪里。
注意在第一个 ul 中的第一个项目上“选择”类。现在,我使用向上/向下箭头浏览我的 ul 列表,并且“选定”类相应地从一个项目转移到另一个项目。 (那是单独的 JS 代码,为简单起见,本示例中不包含)
当“选定”类应用于元素时,我想强制读者阅读它。有可能吗?
编辑:我也尝试将属性添加到 ul 和 li,仍然没有运气:
<ul role="list">
<li role="listitem">
【问题讨论】:
标签: javascript html css wai-aria