HTML - semantic HTML tags

Using semantic HTML tags like <article>, <section>, <nav>, <aside>, <header>, and <footer> correctly 


What “using them correctly” actually means

<header>

  • Introductory content for a page or a section

  • Can contain headings, logos, navigation (but is not navigation itself)

  • Can appear multiple times (per section)

<nav>

  • Only for primary or secondary navigation blocks

  • Should not wrap random links

  • Screen readers identify this as a navigation landmark

<section>

  • A thematic grouping of content

  • Must have a heading (h1–h6)

  • Do not use it just for styling

<article>

  • Self-contained, reusable content

  • Examples: blog post, news item, product card, comment

  • Can stand alone if moved elsewhere

<aside>

  • Indirectly related content

  • Examples: sidebar, related posts, ads, author bio

  • Screen readers treat it as complementary content

<footer>

  • Metadata for a page or section

  • Examples: author info, copyright, related links

  • Not for main content


Why this improves SEO

  • Search engines understand content hierarchy

  • Clear distinction between main content and supporting content

  • Articles can be indexed independently

  • Better crawling and ranking context than generic <div> usage

Result: search engines know what matters on the page.


Why this is critical for accessibility

  • Screen readers use landmark roles created by these tags

  • Users can jump directly to navigation, main content, or side content

  • Proper heading + section structure improves reading flow

  • Reduces cognitive load for visually impaired users

Without semantic tags, assistive tools fall back to guessing.


How screen readers and search engines benefit

  • Both build a document outline

  • Landmarks allow fast navigation

  • Content meaning is explicit, not inferred

  • Less reliance on CSS or JS to understand structure

In short:
Semantic HTML communicates intent, not just layout.


One practical rule

If removing CSS still leaves your page logically readable, your semantic HTML is correct.

If you want, I can:

  • Show a real bad vs good semantic layout

  • Map semantic tags to ARIA roles

  • Explain common semantic misuse that hurts SEO