<section>: The Generic Section element

The HTML <section> element represents a standalone section — which doesn't have a more specific semantic element to represent it — contained within an HTML document. Typically, but not always, sections have a heading.

As an example, a navigation menu should be wrapped in a <nav> element, but a list of search results and a map display and its controls don't have specific elements, and could be put inside a <section>.

Note: If the contents of the element would make sense syndicated as a standalone piece, the <article> element may be a better choice.

Content categories Flow content, Sectioning content, palpable content.
Permitted content Flow content.
Tag omission None, both the starting and ending tag are mandatory.
Permitted parents Any element that accepts flow content. Note that a <section> element must not be a descendant of an <address> element.
Implicit ARIA role region if the element has an accessible name, otherwise no corresponding role
Permitted ARIA roles alert, alertdialog, application, banner, complementary, contentinfo, dialog, document, feed, log, main, marquee, navigation, none, note, presentation, search, status, tabpanel
DOM interface HTMLElement

Attributes

This element only includes the global attributes.

Usage notes

  • Each <section> should be identified, typically by including a heading (<h1>-<h6> element) as a child of the <section> element.
  • If it makes sense to separately syndicate the content of a <section> element, use an <article> element instead.
  • Do not use the <section> element as a generic container; this is what <div> is for, especially when the sectioning is only for styling purposes. A rule of thumb is that a section should logically appear in the outline of a document.

Example

Before

<div>
  <h1>Heading</h1>
  <p>Bunch of awesome content</p>
</div>

After

<section>
  <h1>Heading</h1>
  <p>Bunch of awesome content</p>
</section>

Specifications

Browser compatibility

BCD tables only load in the browser

See also