Standards · ARIA

Role Landmark

contentinfo

The site-wide footer landmark — copyright, contact, legal links. The top-level <footer> element carries this role automatically. Only one contentinfo per page.

When to use

Use <footer> as a direct child of <body>. When <footer> is at the top level, the browser exposes it as a contentinfo landmark automatically. When nested inside <article>, <section>, <main>, or <aside>, it is just a generic group, not a landmark.

role="contentinfo" on a <div> is appropriate only when you cannot use <footer> (legacy CMS).

There must be no more than one contentinfo per page. If individual articles have their own footers (byline, share buttons), use plain <footer> nested inside <article> — they are not landmarks, which is the correct outcome.

When to label

A single contentinfo does not need a label — screen readers announce it as “content information”. If a label seems necessary, that’s usually a sign that you have two contentinfos and one of them shouldn’t be a top-level footer.

Common failures

  • Two <footer> elements at the top level. Two contentinfo landmarks; screen-reader users can’t tell which is the real one.
  • role="contentinfo" on a <footer> nested inside <article> or <main>. The role overrides the default-non-landmark behaviour and adds clutter.
  • Putting “secondary nav” links in <footer> as a flat list. Wrap them in <nav aria-label="Footer"> so they appear as a navigation landmark.
  • Site-wide cookie banner placed inside <footer> — it’s a dialog or a region, not part of contentinfo.
  • Empty <footer> left in the DOM as a layout placeholder — the contentinfo landmark exists with no content.

Example

<body>
  <header>…</header>
  <main>…</main>
  <footer>
    <nav aria-label="Footer">
      <a href="/about">About</a>
      <a href="/privacy">Privacy</a>
      <a href="/contact">Contact</a>
    </nav>
    <p>&copy; 2026 Disability World</p>
  </footer>
</body>