【发布时间】:2015-05-01 22:45:38
【问题描述】:
W3C 的 Accessible Rich Internet Applications (WAI-ARIA) 1.1 将拥有的元素定义如下(来自第 4 部分):
自有元素:“自有元素”是该元素的任何 DOM 后代、通过
aria-owns指定为子元素的任何元素,或拥有的子元素的任何 DOM 后代。
(让我们忽略aria-owns,该属性允许您通过元素 ID 在 DOM 中的任何元素之间指定父/子关系 [在可访问性树中]。)
了解什么是自有元素很重要,因为许多角色都有required owned elements(反之亦然:必需的上下文角色)。
该定义表明任何 DOM 后代都算数。然而,特别是在网格和树等复杂结构的情况下,可访问性树似乎无法识别多个级别的拥有元素——尽管很难说,因为所有屏幕阅读器都不同,所有浏览器也不同。此外,还有许多角色似乎没有添加任何无法从 DOM 树中推断出的值(例如,大多数 group 子类,尽管提到与本机 HTML 表的并行性作为 @ 的目的) 987654329@) 并且可能只是作为中介存在。此外,在示例代码中,我不记得曾见过所需元素相隔不止一层的复杂结构。在我遇到的少数情况下,中间元素通常具有presentation 角色。
随意在一般或特定级别上回答这个问题,但我个人关心的是主要由 <div>s 和 <span>s 组成的 DOM 层次结构,而不是原生 HTML 语义。 This page on ARIA practices 谈到表格小部件并确实提到:
如果您决定不使用原生 HTML
<table>元素并选择更灵活的元素,例如<div>和<span>s,在本节中应用了 WAI-ARIA 角色,您应该在结构上布局您的元素符合您对 HTML 的期望。您的所有rowheaders 都应该在row中,并且您的gridcells应该是每个后续行的子级,其格式与<td>s 和<th>s 内<tr>s 内的HTML 格式相同。
...但我不确定这是必要的还是只是建议;通常,文档使用“必须”来描述严格的规范。
【问题讨论】:
标签: html dom accessibility wai-aria