首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能在< role="main">元素中使用<aside>元素吗?

你能在< role="main">元素中使用<aside>元素吗?
EN

Stack Overflow用户
提问于 2013-07-09 21:42:43
回答 4查看 15K关注 0票数 18

我正在使用HTML5和WAI-ARIA改进我的超文本标记语言的可访问性。

可以进行以下设置吗?

代码语言:javascript
复制
<!-- main content -->
<section id="main" role="main">
    <h1>The main content</h1>

    <!-- This div needs to be here for styling reasons -->
    <div class="the-content">    
         <p>All the text that goes with the main content</p>
    </div>

    <!-- the sidebar -->
    <aside id="sidebar" role="complementary">
        <h2>A title</h2>
        <p>Some text</p>
    <aside>
</section>

我不确定的是,我是否应该将<aside>元素放在<section>role="main"容器之外。这很重要吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-09 21:49:29

是的,这很重要。放置位置由aside标记中的内容与主section的关系定义。

例如:

如果aside中的内容与正文相关,那么它应该在main section中。但是,如果sidebar aside tag中的内容与main不同,我会将其放在main section之外

http://html5doctor.com/aside-revisited/

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside

票数 17
EN

Stack Overflow用户

发布于 2013-07-09 21:50:09

是的,如果您担心的是<section>中的<aside>是完全有效的标记,那么它将通过W3C验证。

<section>元素,它可能包含<aside>元素-但是,如果您只使用部分来设置样式,那么您可能应该使用一个div。

除此之外,我怀疑role=main部分是否有效- ,<section>元素上唯一允许的角色属性值如下所示:

默认ARIA语义:

role=region

还可以使用哪些其他ARIA角色、状态和属性?

alertalertdialogapplicationcontentinfodialogdocumentlogmarqueesearch或<代码>D23。

适用于允许的角色的任何全局aria-*属性和任何aria-*属性。

值得注意的是,其中不包括main角色。

票数 8
EN

Stack Overflow用户

发布于 2013-07-10 00:35:24

该规范(已经包含maineditor's draft)不允许在articleasidefooterheadernav中嵌套main元素,但是它没有提到在main中嵌套这些元素。它还提供了两个在main中使用articlenav (文档内导航)的示例。因此,至少应该允许嵌套在articlesection中的aside (因此范围限于其级别)。我也可以想象这样一种情况,一些内容的某些部分和一些补充信息(比如WCAG Wiki中的aside usage examples )可能一起构成页面的主要内容,所以我认为不允许它是合理的。

另一方面,大纲算法(现在似乎是所有sectioning content存在的主要原因,包括aside)仍然被标记为as being 'at risk',因此这些元素的定义可能会更改,可能会添加一些说明。

也许我们应该问HTML5规范编辑这个问题?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17549780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档