我可以在嵌套上下文中多次使用 aria-current 吗?

问题描述 投票:0回答:1

假设我有一个包含不同

<section>
的页面。某些
<sections>
中可能包含其他
<sections>
等等。现在,假设我想创建一个非主导航,以允许轻松导航所有这些部分并且还突出显示用户正在滚动的当前部分(当然是通过JavaScript完成的)。

由于,通过阅读嵌套部分,您仍在阅读父部分,因此我最终遇到了一种情况,即父部分和“最多”一个(如果其直接子项可能都有)。我想知道这是否格式不正确或有问题。 这是所处理的层次结构类型的简单演示。最多

一个
链接到一个部分可能会以

aria-current="true"

每层嵌套结束。

aria-current
(在实际代码中,我已在 

<nav> <ol> <li> <a href="#sec1" aria-current="true">Section 1</a> <nav> <ol> <li><a href="#sec1_1">Section 1.1</a></li> <li><a href="#sec1_2" aria-current="true">Section 1.2</a </li> </ol> </nav> </li> <!-- Other Sections (can be arbitrarily nested) --> </ol> </nav>
 中添加了 aria 标签。为清楚起见,此处省略)

根据

nav

上的

MDN 文档:

仅使用 aria-current

将一组元素中的一个元素标记为当前元素。

然而,
“一组元素”

的措辞有点过于模糊,无法回答我的疑问。嵌套导航中的项目是否会被分类为足够独立的上下文,或者它们最终仍属于其父级的
“元素集”

(就好像它们在逻辑上被扁平化一样)? 这最终就是我的问题所在:每个列表是否可以有自己的aria-current来突出显示

自己的

上下文中的当前项目?或者嵌套列表会共享其父列表的逻辑上下文,因此整个嵌套结构只能允许一个

aria-current
?更具体地说,aria-current
Section 1
都可以是当前的吗?
    
是的,“元素集”可能不明确,但在我看来,这里有一个目录,因此所有链接都是目录的元素。因此,我认为将每个嵌套链接列表视为一个单独的集合可能是可行的。

html accessibility wai-aria semantic-markup
1个回答
0
投票
ARIA 1.3文档

,它说“作者

应该

仅使用Section 1.1将一组元素中的一个元素标记为当前元素。”这个“应该”很重要。这意味着它受到强烈鼓励并被认为是最佳实践,但它并不“非法”。因此从技术上讲,集合中允许有多个 aria-current 属性,因此您“可以”这样做,但是否应该这样做是另一个问题。

大多数辅助功能专业人士会告诉您,真正确定最有效的方法的唯一方法是与用户进行测试。我的建议是从尽可能简单的开始,如果您通过反馈/测试发现需要做更多事情,则只会使其变得更加复杂。因此,我建议您一次只使用一个 
aria-current
,并将其放在当前查看的实际部分的链接上。


© www.soinside.com 2019 - 2024. All rights reserved.