0

role="main"在标有属性的页面上有多个元素是否可能是正确的?

有一个页面,搜索结果分为多个部分。部分类似于页面,但当 AJAX 提供更多数据时,页面上会出现一个新部分。

我希望 JAWS(等等)的用户了解文档的结构,并向他们提供信息,即他们面前有一个搜索结果页面,并且它被分成几个部分。

这个标记完全按照我的意愿由 JAWS 发音:

<div class="main" role="main" aria-label="Search results">

    <div class="main__portion" role="main" aria-label="Page 1">
        <a href="#">Link 1</a><br/>
        <a href="#">Link 2</a>
    </div>

    <div class="main__portion" role="main" aria-label="Page 2">
        <a href="#">Link 1</a><br/>
        <a href="#">Link 2</a>
    </div>

</div>

但是用role="main". 哪个角色更适合?并且要求 JAWS 在关注第一个链接时必须阅读“搜索结果页面 1”。

4

2 回答 2

2

将每个 div 标记为 main 将有效,但它不会为无视力的用户提供有用的信息。Main 用于将主要内容标记为与次要内容不同,因此在您已经拥有的外部 div 上使用它是合适的。把它放在所有的内部 div 上只会变成噪音,而且在他们到达实际内容之前还要听一件事。

屏幕阅读器用户会发现了解总共有多少个结果以及他们要达到哪个结果会更有用。这可以使用列表标记来完成,或者在页面顶部给出一个总数,然后将每个结果编号作为其标题/标题/链接文本的一部分。作为一般规则,任何对视力正常的用户来说显而易见的信息也应该出现在内容或标记中,ARIA 仅在必要时提供备用或额外支持。

于 2013-11-04T04:33:33.923 回答
0

WAI-ARIAmain角色

在任何文档或应用程序中,作者应该标记不超过一个具有主要角色的元素。

但这是一个应该,而不是一个必须

(请注意,HTML5 的main元素只能在文档中使用一次。)

于 2013-11-03T22:23:07.903 回答