We doctors are a bunch of chums using HTML5 and writing about how we do it. Apart from spurious requests for medical advice, the questions we receive most are about using the
section element, and we realise that we’ve been using the
section element incorrectly all this time.
What we’ve been doing wrong is using
section to wrap content in order to style it, or to demarcate the main content area from the
footer etc. These are jobs for
The section spec says
The section element represents a generic document or application section…The section element is not a generic container element. When an element is needed only for styling purposes or as a convenience for scripting, authors are encouraged to use the div element instead.
section is a blob of content that you could store as an individual record in a database. It generally looks like this (and note that the heading goes inside the section element, not immediately before it):
<h1>Any level of heading</h1>
rest of the content </section>
With very few exceptions, section should not be used if there is no natural heading for it. Check your work in the HTML 5 outliner tool. If you see any instances of “untitled section” that corresponds to a section, you’re probably doing it wrong. (It’s fine for a nav or aside element to be untitled, however).
Section is also the most generic of the sectioning elements. Make certain that you don’t really need an
article, which is defined as
a composition that forms an independent part of a document, page, application, or site. This could be a forum post, a magazine or newspaper article, a Web log entry, a user-submitted comment, an interactive widget, or any other independent item of content
What about main content?
In HTML 5 you can specifically mark up all the “secondary” content on a page such as navigation, branding, copyright notices, so it feels odd that you can’t specifically mark up the most important part of your page—the content.
But what would be the purpose of marking it up specifically, anyway? If you need to style it, use a
div. An assistive technlogy like a screenreader can find the main content because it is the first thing inside a page that isn’t a header, nav or footer.
Rules of thumb for using
Of course, there are always exceptions, but these should give useful guidance for 99% of cases:
- Don’t use it just as hook for styling or scripting; that’s a
- Don’t use it if article, aside or nav is more appropriate
- Don’t use it unless there is naturally a heading at the start of the section
- The revised spec (as of ) says:
Authors are encouraged to use the article element instead of the section element when it would make sense to syndicate the contents of the element.
As blogposts and comments are often syndicated (by being pulled into other blogs or being linked via twitter, reddit etc) they should be articles.
Thanks to Opera’s Lachlan Hunt for fact-checking this article.
Please also note that we haven’t yet changed the WordPress theme to get rid of extra sections, so for now please do as we say and not as we do!