Html ARIA内部的辅助导航“;“主要”;

Html ARIA内部的辅助导航“;“主要”;,html,accessibility,wai-aria,Html,Accessibility,Wai Aria,我对咏叹调完全陌生,所以如果这是一个愚蠢的问题,请温柔一点。如果一个容器div包含一个侧栏,那么将其角色指定为“main”是否合适?如果我在容器div中浮动了一个nav元素,那么在容器div中添加一个ARIA角色“main”会让屏幕阅读器感到困惑吗?或者这样可以吗 下面是一个要进一步解释的HTML示例 <div id="container" role ="main"> <h1>Content Here</h1> <nav id="sid

我对咏叹调完全陌生,所以如果这是一个愚蠢的问题,请温柔一点。如果一个容器div包含一个侧栏,那么将其角色指定为“main”是否合适?如果我在容器div中浮动了一个nav元素,那么在容器div中添加一个ARIA角色“main”会让屏幕阅读器感到困惑吗?或者这样可以吗

下面是一个要进一步解释的HTML示例

<div id="container" role ="main">
    <h1>Content Here</h1>
    <nav id="sidebar">
        <ul>
            <li><a href="foo.com">Foo Item 1</a></li>
            <li><a href="foo.com">Foo Item 2</a></li>
            <li><a href="foo.com">Foo Item 3</a></li>
        </ul>
    </nav>
    <p>More content</p>
</div>

满足于此
更多内容


这取决于导航栏的“不便程度”以及导航栏的内容。“主要”角色背后的意图是通过为ATs提供给定页面“内容”开始的地标来避免导航跳过链接的需要。导航跳过链接(另一种选择)通常很笨重,或者破坏页面的视觉效果,或者创建奇怪的键盘导航,这些链接除非有焦点,否则是隐藏的。如果您的侧边栏很短,并且/或者通过提供页面内其他内容的概要来增加页面内容,我建议您可以接受。但是,如果侧边栏中有很多链接,而这些链接不是您认为是页面“内容”一部分的链接,那么您应该将主要角色放在页面内容段附近。一般来说,考虑可访问性是可用性的延伸,并用你最好的判断来确定你的“主要”角色最适合的位置。只要你为了正确的目的而使用一个给定的角色,你的问题就没有事实上正确的答案。Aria角色肯定有不恰当的用法,但您概述的这两种用法对于“main”来说都是完全可以接受的。

我提供了一个链接,指向刚才提出的一个问题,其中大部分是

因为您使用的是HTML5,所以会自动使用HTML5.1,它有
标记。由于某些HTML5标记默认具有某些WAI-ARIA属性,因此它可以替换

正确的HTML标记

<div id="container" role ="main">
    <h1>Content Here</h1>
    <nav id="sidebar">
        <ul>
            <li><a href="foo.com">Foo Item 1</a></li>
            <li><a href="foo.com">Foo Item 2</a></li>
            <li><a href="foo.com">Foo Item 3</a></li>
        </ul>
    </nav>
    <p>More content</p>
</div>

满足于此
更多内容

会是

<main>
 <nav role="navigation"> 
  <ul>
   <li><a href="foo.com">Foo Item 1</a></li
   <li><a href="foo.com">Foo Item 2</a></li>
   <li><a href="foo.com">Foo Item 3</a></li>
  </ul>
 </nav>
 <section>
  <h1>Content</h1>
  <p>....</p>
 </section>
</main>


  • 可能的副本。请看我的答案。谢谢你的详尽回答。我试图避免在我的网页中添加额外的元素(比如容器中的div),但这似乎是最安全的方法。另外,我看到你把我的帖子标记为可能的重复,你想让我删除这个问题吗?我认为我的问题(尽管与你链接的问题非常相似)是有用的,因为它的结构、视觉示例以及更“可搜索”的标题。虽然我遵从你的判断;如果你觉得应该删除,我会的。再次感谢!不,不要删除它,它可能会有帮助。我不太明白你所说的额外容器是什么意思
    相当于
    感谢您的回复。让我澄清一下,因为从可访问性的角度来看,在元素中有一个侧栏/nav(或者一个具有main角色的div)似乎不是一个好主意,我认为保留container div、将侧栏向左浮动并让标记占据页面的其余部分是有意义的。这将嵌套我的主要内容(因为将在一个div中)。这就是我的全部意思,这不是一个问题,我只是尝试将页面上的元素保持在最低限度,尽管在这种情况下,添加元素似乎完全合理和正确。更新了答案以涵盖这一点感谢Ryan的精彩解释!