- You may omit the
<header>
and it's decendants if it's only a sole headline and replace it with<h1>
. - In this example the navigation
<nav>
is a page specific navigation, hence after the page header<header>
. If the<nav>
is a global navigation, it might also be before the first page header<header>
.
-
-
Save thomd/9220049 to your computer and use it in GitHub Desktop.
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8" /> | |
<title>Title</title> | |
<link href="stylesheets/main.css" rel="stylesheet" /> | |
</head> | |
<body> | |
<header> | |
<hgroup> | |
<h1>Header</h1> | |
<h2>Subheader</h2> | |
</hgroup> | |
</header> | |
<nav> | |
<ul> | |
<li><a href="#">Menu Option 1</a></li> | |
<li><a href="#">Menu Option 2</a></li> | |
</ul> | |
</nav> | |
<section> | |
<article> | |
<header> | |
<h1>Article #1</h1> | |
</header> | |
<section> | |
This is the first article. | |
</section> | |
</article> | |
<article> | |
<header> | |
<h1>Article #2</h1> | |
</header> | |
<section> | |
This is the second article. | |
</section> | |
</article> | |
</section> | |
<aside> | |
<section> | |
<h1>Links</h1> | |
<ul> | |
<li><a href="#">Link 1</a></li> | |
<li><a href="#">Link 2</a></li> | |
</ul> | |
</section> | |
<figure> | |
<img width="85" height="85" | |
src="http://domain.tld/path/to/image.jpg" | |
alt="foobar" /> | |
<figcaption>Foobar</figcaption> | |
</figure> | |
</aside> | |
<footer>Footer</footer> | |
</body> | |
</html> |
+-----------------------------------+ | |
| header | | |
+-----------------------------------+ | |
| nav | | |
+---------------------+-------------+ | |
| | | | |
| section | aside | | |
| | | | |
| | | | |
| +-----------------+ | | | |
| | article | | | | |
| +-----------------+ | | | |
| | article | | | | |
| +-----------------+ | | | |
+---------------------+-------------+ | |
| footer | | |
+-----------------------------------+ |
Sadly, it could not be considered best practice anymore as the HTML 5.1 specification
requires developers to use h1-h6 to convey document structure. The simple reason for this change is that the HTML5 document outline is not implemented and despite efforts to get it implemented, the general response from user agent developers has not been enthusiastic.
References:
Computer says NO to HTML5 document outline
HTML 5.1 specification
You're going to want to use main for ARIA accessibility reasons
BTW
The only section in this example have to have some meaningful content besides the articles inside it. Otherwise articles will not add any value to the web sites content. You have to consider article as an independent content which will never change the meaning of a web page if removed completely.
if your page telling something about an "A subject", having articles about "A Subject" will add a value. However if you remove the articles, your page should still needs to tell about the "A subject". Otherwise the page will not be considered as a page that gives information about "A Subject". It will be considered as a page that lists articles about "A subject".
This is very important that you need to consider articles as independent content.
Also sections inside a page needs to tell about different things. Every section needs to have a heading that defines what it is telling about. do not afraid to use div's for your layouts. all the html5 tags has meanings and you have to use them correctly to receive its rewards.
hgroup - depricated html tag
Where is main tag
@TheDefinitionist, I was just about to ask the same. According to W3C, "A main
landmark identifies the primary content of the page."
What about
<main>
element?http://www.w3schools.com/html/html5_semantic_elements.asp said Specifies the main content of a document
Html5doctor also use
<main>
element for content area (section in your example).http://html5doctor.com/the-main-element/
Which one is better for use in main column position?