SVG的默认ARIA角色是什么?

5

我一直在试图确定,如果文档包含可见图形但没有role属性,SVG标签的默认角色应该是什么。

使用Chrome的辅助工具,它告诉我角色是SVGRoot

然而,这不是有效的ARIA角色,它是Chrome内部使用的角色之一。

通过这个文档,我能够找到更多信息:WAI-ARIA Graphics Module,它指出了哪些角色可以用于SVG标签,但我似乎无法确定默认角色是什么。

如果没有提供有效的role属性,用户代理应该假定SVG的角色是什么?


1
我认为没有默认值,因为SVG是用于图形/图表的,已经有足够的角色可以满足graphicdiagramchart等,再加上标题/描述,应该就可以了。 - Napoli
@Napoli,那么屏幕阅读器如何决定它们将如何处理它们或任何其他没有默认角色的元素?它们通常会决定将其映射到默认角色吗? - Godwin
@Godwin,不是的。如果一个HTML元素没有角色,或者您将角色设置为“presentation”,那么屏幕阅读器就不知道该元素的目的。它不会映射到任何默认角色。创建可访问的SVG是一个巨大的研究领域。 - slugolicious
2个回答

8
SVG没有固有的aria角色,但开发人员可以(并且可能应该)分配以下角色之一: application document img
如果您的SVG具有需要用户输入的可聚焦元素,请使用 application
如果您的SVG主要包含不可交互的信息性文本,请使用 document
如果您的SVG纯粹是可视的或使用多个元素组成单个图像,请使用 img
来源:https://www.w3.org/TR/html-aria/#docconformance

5
根据HTML文档中的ARIA,SVG没有默认的对应角色
“无对应角色”状态定义如下:
引用: 标记为表格第二列中“无对应角色”的元素没有任何隐含的ARIA语义,但它们确实有意义,并且这个意义可以通过未提供ARIA的角色、状态和属性来表示,并通过辅助技术的可访问性API向用户公开。因此,建议Web开发人员向语义中立的元素(如div或span)添加角色属性,而不是覆盖列出的元素的语义。
正如@josh所回答的那样,SVG元素允许使用的角色是“application”、“document”或“img”。

太棒了。对于我们的用例,我不会假设一个角色,而是将没有角色的SVG视为一个独立的指示器。我认为这与W3C和WCAG所规定的最符合。 - Godwin
1
根据链接的文档(其转而链接到SVG-AAM),现在SVG具有隐式的“graphics-document”角色。 https://www.w3.org/TR/svg-aam-1.0/#details-id-66 - ericgio
@ericgio - 虽然您说的没错,规范确实指出SVG默认应映射到“graphics-document”,但这是SVG-AAM规范相对较新的更改。大多数浏览器实际上并不遵循该规范。坦白地说,规范没有很清楚地说明这种默认映射。我认为映射也部分取决于SVG是否具有可访问名称,例如<title>。在撰写本文时,我建议不要依赖任何SVG元素的默认语义映射。明确添加您打算使用的角色。 - brennanyoung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接