我遇到了JAWS屏幕阅读器的问题。 Firefox浏览器。
我有一棵如下的树。每当<a>
元素中的任何一个获得焦点时,无论是通过窗口标签还是<button>
,JAWS 都会对元素进行三次叙述。据我所知,Firefox是唯一能够做到这一点的浏览器。
这里的标记有问题吗?
<nav role="tree">
<ol role="group">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Parent Link 1</a>
<ol role="group">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 1</a>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 2</a>
</ol>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Parent Link 2</a>
<ol role="group">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 3</a>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 4</a>
</ol>
</ol>
</nav>
<button>Something else to focus on</button>
非常感谢。
答案 0 :(得分:0)
您至少应该使用aria-owns
来显示父母和孩子之间的关系。看一下这个例子http://oaa-accessibility.org/example/42/
此外,实际上只使用您已有的分层列表项结构会更好。请参阅此示例:http://oaa-accessibility.org/example/41/
如果您已经这样做但仍有问题,请尝试使用NVDA而不是JAWS。 NVDA比JAWS更符合标准。
答案 1 :(得分:-1)
再一次,我在提出问题后找到了答案。 :(
显然,如果我将role="tree"
从外部<nav>
移到第一个<ol>
,Firefox会按预期进行叙述。标记现在看起来像这样:
<nav>
<ol role="tree">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Parent Link 1</a>
<ol role="group">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 1</a>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 2</a>
</ol>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Parent Link 2</a>
<ol role="group">
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 3</a>
<li role="presentation">
<a href="javascript:void(0)" role="treeitem">Child Link 4</a>
</ol>
</ol>
</nav>
<button>Something else to focus on</button>
这闻起来像Firefox中的一个bug。 I have opened a bug&amp;将跟随发展。