NVDA在Microsoft Edge中无法读取角色为“ dialog”的div上的aria标签

时间:2018-07-18 17:55:34

标签: html accessibility microsoft-edge wai-aria nvda

在我们的网站中,有一个div元素,具有“ dialog”(对话)和aria-label属性的作用。

它可以很好地用于以下组合:

Voice Over + Google Chrome / Mozilla Firefox / Safari
NVDA + Google Chrome / Mozilla Firefox / Internet Explorer

但是,当我们使用它时,它会被完全忽略:

NVDA + Microsoft Edge(*)

(*)实际上可以在旧版本的Edge(38)上运行,但不适用于最新版本:42。

这是元素:

<div role="dialog" aria-label="name">
 <a title="Hide Dialog" href="#" id="eg"></a> 
</div>

在所有成功的情况下(例如:NVDA + Chrome),它先读取"name dialog",然后再读取"hide dialog link"

在NVDA + Edge(42)中:

"Hide dialog link, hide dialog"

在NVDA + Edge(38)中: "Clickable link hide dialog"然后"name dialog"

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否已通过JAWS测试过?如Paciello Group网站上的Scott O'Hara's blog所述,Internet Explorer在role="dialog"上遇到了一些麻烦。阅读整个内容,但要特别注意查找名为“ IE11的部分,该标题为模式对话框的第一个元素”。

  

IE11需要模式对话框的第一个元素作为其标题

     

模式对话框的第一个元素应该是其标题(提供其可访问的名称)。此要求是为了专门补偿Internet Explorer 11 + JAWS。通过这种配对,将焦点设置到对话框元素本身将宣布对话框的可访问名称,对话框角色,然后JAWS将重新宣布对话框的可访问名称以及对话框的第一个子元素的角色。

     

例如,如果对话框的标题提供了该对话框的可访问名称,则JAWS + IE11将宣布“标题文本,对话框”。标题文字,标题级别为“”。但是,如果第一个子元素是与对话框的可访问名称不匹配的另一个元素,例如带有“关闭”文本的按钮,则它将宣布为:“标题文本,对话框”。标题文字,按钮”

现在,您在问的是Edge而不是IE,但您也没有说有关使用JAWS进行测试的任何事情。 Edge 可能上的NVDA可能与IE上的JAWS有相同的问题,但这只是您需要检查的暗处。描述问题的方式,听起来和IE一样,都是必须解决的问题(也就是说,这是IE和/或Edge中的错误,而不是代码中的错误,但是您仍然必须如果您希望它起作用,请在其周围添加代码)。

答案 1 :(得分:0)

NVDA与Firefox更兼容,Jaws与Internet Explorer和Edge更兼容。

Narrator与Edge更加兼容。

通常,如果您使用锚标记,则必须在锚内提供一些文本。同样,使用空的锚标记也不是一个好习惯。

如果我们使用基本的html语义标准,那么它将正常工作。

此外,如果我们使用role =“ dialog”,我们会将焦点发送到对话框的容器,并将使用aria-labeled-by与对话框标题相关。