Master HTML From Scratch

Clear, interactive, and structured HTML lessons designed for beginners.

Semantic HTML

Semantic HTML uses HTML elements that clearly describe the meaning and purpose of their content. Instead of using generic containers for everything, semantic elements help describe the structure of a web page.

Key Point: Semantic elements describe the role of content. Examples include <header>, <nav>, <main>, <section>, <article>, <aside>, and <footer>.

1. What is Semantic HTML?

Semantic HTML means choosing HTML elements based on the meaning of the content they contain.

For example, a navigation area should use <nav>, the main content should use <main>, and the bottom section of a page can use <footer>.

Semantic Example

<header>
    Website Header
</header>

<nav>
    Home | About | Contact
</nav>

<main>
    Main Content
</main>

<footer>
    Website Footer
</footer>

2. Semantic vs Non-Semantic Elements

A semantic element communicates its purpose through its name. A non-semantic element generally does not describe what the content means.

Semantic Element Meaning Generic Alternative
<header> Introductory or header content <div>
<nav> Navigation links <div>
<main> Main content <div>
<section> Thematic section <div>
<article> Independent content <div>
<aside> Related or secondary content <div>
<footer> Footer information <div>

3. Why Use Semantic HTML?

Semantic HTML provides a clearer document structure and makes the purpose of different parts of a page easier to understand.

Main Benefits

  • Creates a more meaningful document structure.
  • Makes HTML easier to read and maintain.
  • Helps assistive technologies understand page structure.
  • Provides clearer relationships between different content areas.
  • Supports better organization of large web pages.
  • Can provide useful structural information to search engines.

4. Common Semantic Elements

Element Common Purpose
<header> Header or introductory content
<nav> Navigation links
<main> Primary page content
<section> Thematic grouping of content
<article> Self-contained content
<aside> Related or secondary content
<footer> Footer information
<figure> Self-contained media or illustration
<figcaption> Caption for a figure
<time> Represents a date or time

5. Basic Semantic Page Structure

A common semantic page structure can look like this:

<header>
    Website Header
</header>

<nav>
    Navigation Links
</nav>

<main>

    <section>
        Main Section
    </section>

    <aside>
        Related Information
    </aside>

</main>

<footer>
    Footer Information
</footer>

Visual Structure

<header>
<nav>
<section>
<article>
<aside>

6. header Element

The <header> element represents introductory content for a page or for a specific section.

<header>
    <h1>CIIT Training Institute</h1>
    <p>Technology Training and Learning</p>
</header>

7. nav Element

The <nav> element represents a section containing navigation links.

<nav>
    <a href="/home">Home</a>
    <a href="/courses">Courses</a>
    <a href="/contact">Contact</a>
</nav>

8. main Element

The <main> element represents the primary content of the document.

<main>

    <h1>HTML Tutorial</h1>

    <p>
        Learn HTML from basic concepts to advanced topics.
    </p>

</main>

9. section Element

The <section> element represents a thematic grouping of content.

<section>

    <h2>HTML Forms</h2>

    <p>
        Learn how to create and validate HTML forms.
    </p>

</section>
A section usually represents a meaningful part of a document and often has its own heading.

10. article Element

The <article> element represents self-contained content that can stand independently.

<article>

    <h2>Introduction to HTML</h2>

    <p>
        HTML is the standard markup language for creating web pages.
    </p>

</article>

11. aside Element

The <aside> element represents content that is related to the surrounding content but is not part of its main flow.

<aside>

    <h3>Related Topics</h3>

    <ul>
        <li>CSS</li>
        <li>JavaScript</li>
    </ul>

</aside>

12. footer Element

The <footer> element represents footer information for a page or section.

<footer>

    <p>
        © 2026 CIIT Training Institute
    </p>

</footer>

13. figure and figcaption

The <figure> element can contain self-contained media, while <figcaption> provides a caption.

<figure>

    <img src="html-diagram.png"
         alt="HTML document structure">

    <figcaption>
        HTML document structure
    </figcaption>

</figure>

14. time Element

The <time> element represents a specific date or time.

<p>
    Course starts on
    <time datetime="2026-10-01">
        October 1, 2026
    </time>.
</p>

15. Nested Semantic Elements

Semantic elements can be nested together to create a meaningful page structure.

<main>

    <section>

        <h2>Latest Courses</h2>

        <article>
            <h3>.NET Full Stack</h3>
            <p>
                Learn C#, .NET, SQL, Web API and frontend technologies.
            </p>
        </article>

        <article>
            <h3>Python Programming</h3>
            <p>
                Learn Python programming from the fundamentals.
            </p>
        </article>

    </section>

</main>

16. Semantic HTML Page Example

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Semantic HTML</title>
</head>

<body>

    <header>
        <h1>My Learning Website</h1>
    </header>

    <nav>
        <a href="#">Home</a>
        <a href="#">Courses</a>
        <a href="#">Contact</a>
    </nav>

    <main>

        <section>

            <h2>HTML Course</h2>

            <article>
                <h3>Introduction</h3>
                <p>
                    Learn the fundamentals of HTML.
                </p>
            </article>

        </section>

        <aside>
            <h3>Related Topics</h3>
            <p>CSS and JavaScript</p>
        </aside>

    </main>

    <footer>
        <p>
            © 2026 My Learning Website
        </p>
    </footer>

</body>
</html>

17. Semantic HTML and Accessibility

Semantic elements provide meaningful structure that can help assistive technologies understand the organization of a page.

For example, using <nav> for navigation makes the purpose of that section clearer than using a generic <div>.

18. Semantic HTML and SEO

A well-structured HTML document provides clearer information about the organization of the page. Semantic elements can contribute to a meaningful document structure that search engines can process.

Important: Semantic HTML is not a replacement for proper content, headings, accessibility practices, or other SEO techniques. It is one part of creating a well-structured page.

19. Common Mistakes

Mistake 1: Using div for everything

<div>
    Header
</div>

<div>
    Navigation
</div>

<div>
    Main Content
</div>

This structure does not communicate the specific role of each area. Semantic elements can make the intended structure clearer.

Mistake 2: Using section without meaningful content

A <section> should represent a meaningful thematic grouping, not simply be used as a generic replacement for every container.

Mistake 3: Multiple main elements

A page should normally have one main content area represented by <main>.

20. Best Practices

  • Use semantic elements according to the meaning of the content.
  • Use <main> for the primary page content.
  • Use <nav> for major navigation links.
  • Use <section> for meaningful thematic groups.
  • Use <article> for independent or self-contained content.
  • Use <aside> for related secondary content.
  • Use <header> and <footer> appropriately.
  • Do not use semantic elements only for visual styling.

21. Practice Example

Create a semantic web page using the following structure:

  • Header with website title
  • Navigation with three links
  • Main content area
  • Section containing two articles
  • Aside containing related information
  • Footer with copyright information
<header>
    <h1>Learning Portal</h1>
</header>

<nav>
    <a href="#">Home</a>
    <a href="#">Courses</a>
    <a href="#">Contact</a>
</nav>

<main>

    <section>

        <h2>Popular Courses</h2>

        <article>
            <h3>HTML Course</h3>
            <p>
                Learn HTML fundamentals.
            </p>
        </article>

        <article>
            <h3>CSS Course</h3>
            <p>
                Learn how to style web pages.
            </p>
        </article>

    </section>

    <aside>
        <h3>Related Topics</h3>
        <p>
            JavaScript and Web Development
        </p>
    </aside>

</main>

<footer>
    <p>
        © 2026 Learning Portal
    </p>
</footer>

Summary

Semantic HTML uses meaningful elements such as <header>, <nav>, <main>, <section>, <article>, <aside>, and <footer> to describe the structure and purpose of web page content. It makes documents clearer, easier to maintain, and more meaningful for users and assistive technologies.