JAWS 屏幕 Reader 在 FireFox 中重复树项
JAWS Screen Reader Repeats Tree Items in FireFox
我 运行 遇到 JAWS 屏幕 reader 和 Firefox 的问题。
我有一棵像下面这样的树。每当任何 <a>
元素获得焦点时,无论是通过从 window 还是从 <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>
非常感谢。
您至少应该使用 aria-owns
来显示父子关系。看看这个例子http://oaa-accessibility.org/example/42/
此外,实际上只使用您已有的分层列表项结构会更好。看这个例子:http://oaa-accessibility.org/example/41/
如果您已经这样做但仍然有问题,请尝试使用 NVDA 而不是 JAWS。 NVDA 比 JAWS 更符合标准。
再一次,我问完问题后找到了答案。 :(
显然,如果我将 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 中的错误。 I have opened a bug & 将关注事态发展。
我 运行 遇到 JAWS 屏幕 reader 和 Firefox 的问题。
我有一棵像下面这样的树。每当任何 <a>
元素获得焦点时,无论是通过从 window 还是从 <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>
非常感谢。
您至少应该使用 aria-owns
来显示父子关系。看看这个例子http://oaa-accessibility.org/example/42/
此外,实际上只使用您已有的分层列表项结构会更好。看这个例子:http://oaa-accessibility.org/example/41/
如果您已经这样做但仍然有问题,请尝试使用 NVDA 而不是 JAWS。 NVDA 比 JAWS 更符合标准。
再一次,我问完问题后找到了答案。 :(
显然,如果我将 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 中的错误。 I have opened a bug & 将关注事态发展。