我正在使用HTML5和WAI-ARIA改进我的超文本标记语言的可访问性。
可以进行以下设置吗?
<!-- 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"容器之外。这很重要吗?
发布于 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
发布于 2013-07-09 21:50:09
是的,如果您担心的是<section>中的<aside>是完全有效的标记,那么它将通过W3C验证。
<section>元素,它可能包含<aside>元素-但是,如果您只使用部分来设置样式,那么您可能应该使用一个div。
除此之外,我怀疑role=main部分是否有效- ,<section>元素上唯一允许的角色属性值如下所示:
默认ARIA语义:
role=region。
还可以使用哪些其他ARIA角色、状态和属性?
alert、alertdialog、application、contentinfo、dialog、document、log、marquee、search或<代码>D23。
适用于允许的角色的任何全局aria-*属性和任何aria-*属性。
值得注意的是,其中不包括main角色。
发布于 2013-07-10 00:35:24
该规范(已经包含main的editor's draft)不允许在article、aside、footer、header或nav中嵌套main元素,但是它没有提到在main中嵌套这些元素。它还提供了两个在main中使用article和nav (文档内导航)的示例。因此,至少应该允许嵌套在article或section中的aside (因此范围限于其级别)。我也可以想象这样一种情况,一些内容的某些部分和一些补充信息(比如WCAG Wiki中的aside usage examples )可能一起构成页面的主要内容,所以我认为不允许它是合理的。
另一方面,大纲算法(现在似乎是所有sectioning content存在的主要原因,包括aside)仍然被标记为as being 'at risk',因此这些元素的定义可能会更改,可能会添加一些说明。
也许我们应该问HTML5规范编辑这个问题?
https://stackoverflow.com/questions/17549780
复制相似问题