How to properly markup the title of a site in HTML5? Usually I markup a website's name with:
<h1>
<a href=#>Website Name</a>
</h1>
Recently I've come across with the HTML5 Document Outlining Algorithm. I have also read that it seems like marking your site's name in h1 tag don't make sense, since every page probably will have different main heading (h1), in addition to the website name.
What if let's say on Facebook, if the markup of the Facebook's logo/title is wrapped in <h1>
tag. Then if every post is wrapped in <article>
tags. For example:
<article class="post">
<h5 class="post-header">
<a href="#">Someone has shared Blah Blah's photo</a>
</h5>
<div class="post-body">...</div>
</article>
I think the document outline would be
Facebook
1.1 Someone has shared Blah Blah's photo
1.2 Other Posts
1.3 Other Posts
Is that okay?
Especially because of the outline it makes sense to use
h1
.If your webpage is part of a website, each page should have a site header
h1
, which contains the site title, the site logo, or both. It's important that this site header is not a child of a sectioning element (section
/article
/aside
/nav
).So the toplevel heading for a page will always be the site heading. And the site navigation, the main content of the page, sidebars with secondary content etc. will all be "children" of that toplevel heading.
So a simple structure for a blog post page could be:
This would create an outline like:
If you wouldn't use the site title/logo in
h1
, the page would have an untitled toplevel outline entry:And if you wouldn't use a
h1
for the site title/logo and no sectioning element for your main content …… you’d get an outline with two top-level entries:
I'd put that in a
header
element:Like this: