当前位置: 首页 > 知识库问答 >
问题:

ARIA角色:“拥有的元素”可以嵌套在DOM的任意深处吗?

熊锐进
2023-03-14

W3C的可访问的富Internet应用程序(WAI-ARIA)1.1定义了一个拥有的元素如下(来自第4部分):

Owned元素:“Owned元素”是该元素的任何DOM子体、通过aria指定为子元素的任何元素或所属子元素的任何DOM子体。

(让我们忽略aria拥有的,该属性允许您通过元素id在DOM中的任何元素之间[在可访问性树中]指定父/子关系。)

重要的是要知道什么算作拥有的元素,因为许多角色都有必需的拥有元素(反之亦然:必需的上下文角色)。

定义表示任何DOM子代都是重要的。然而,特别是在网格和树等复杂结构的情况下,可访问性树似乎并不能够识别几个层次的自有元素——尽管很难区分,因为所有的屏幕阅读器都不同,所有的浏览器都不同。此外,还有许多角色似乎没有添加任何无法从DOM树推断的值(例如,大多数子类,尽管与本机HTML表的并行性被称为行组)的目的,并且可能只是作为中介存在。此外,在示例代码中,我不记得见过复杂的结构,其中所需的元素之间的间隔超过一级;在我遇到的少数情况下,中间元素通常具有表示角色。

您可以随意回答这个问题,无论是一般的还是特定的级别,但就我个人而言,我关心的是主要由<代码>组成的DOM层次结构

如果您决定不使用本机HTML

...但是我不确定这是必要的还是仅仅是一个建议;通常,文档使用“必须”来描述严格的规范。


共有1个答案

左丘元徽
2023-03-14

除非在临时结构上使用role=“presentation”,否则所有子关系都必须是直接关系。如果不这样做,可能/将导致计数和数值混乱。

一般来说,当存在过渡结构时,它们是样式或脚本的挂钩,您可以重新构造代码以摆脱它们(这肯定会使HTML更干净)。

您提到的关于表的示例使用了“应该”一词,但不是规范性的。它真的应该说“必须”。您不能错过网格中的任何结构,仍然希望公告和导航正常工作。这意味着您最好拥有规范文档规范部分中所需的父角色和子角色中列出的所有结构。

 类似资料:
  • 问题内容: 我试图找出所有可以嵌套在段落元素中的有效HTML5元素,以使w3验证程序不会显示任何错误。我的意思是我正在尝试找出所有可以替换以下代码中的点的标记,以便w3验证程序不显示任何错误: 有这样的清单吗?我尝试在Google上搜索时没有任何运气。 即使有相反的列表,即不能嵌套在段落元素中的元素,对我来说也足够了。 问题答案: HTML5规范告诉我们,元素的内容模型正在对content进行措辞

  • 在Chrome Developer中运行aXe可访问性工具时,我在和元素上遇到以下错误 ARIA角色必须适合该元素 我的超文本标记语言如下。 如果我删除了角色,我会得到一个错误,说一个页面必须有一个地标角色,但如果我将main添加回html、head或body,我仍然会得到错误 对于头部和身体来说,与地标相关的可接受的ARIA角色是什么?

  • 如何使用JAXB生成以下结构?在我的例子中,我有一个动态属性列表,它可能有3种类型:整数、字符串或列表。但是,列表属性具有嵌套元素。我怎样才能做到这一点?

  • 我有问题,因为我想在内部包围一些,所以我需要知道。 哪些DOM元素可以是tr的子元素?(我知道div不能。)

  • 我使用Parse(JavaScript)开发了一个privat聊天应用程序,其中“Message”对象在两个用户组内交换。(稍后可以增加,以允许组中有更多用户。)用户只能是一个组的一部分。 我看到以下选项可确保对邮件的访问: 使用Parse Roles和ACL-为每个组创建一个Parse对象,将两个用户分配给该组,并在每个新Message对象上设置一个ACL,以仅限制该组的读/写访问。 这意味着,

  • 问题内容: 我有一个:before开头的’quote’和一个:after结束的报价。 现在,我想要的是一个:after:after供“引用”参考,但我无法使其正常工作。 有人知道这是否可能吗? 到目前为止,我的代码: 问题答案: 已经提出了嵌套和伪元素的想法;请参阅“生成和替换的内容”模块的这一部分。但是,该模块已被放弃,等待完全重写,因此在重新发布该文档之前,我不会屏息。即便如此,嵌套内容伪元素