Semantic Structure
You have probably used <div> to group things — it is a neutral container with no meaning of its own. HTML also gives you a set of containers that do carry meaning. These are called semantic elements, and they map almost perfectly to the regions you already define in your Figma designs.
“Semantic” just means “meaningful”. When you use <header> instead of <div class="header">, the browser, screen readers, and search engines all understand what that region is — not just what it looks like.
The main regions
Section titled “The main regions”| HTML element | What it means | Figma equivalent |
|---|---|---|
<header> | Introductory content for a page or section — usually logo, site name, top nav | Top-level frame with branding |
<nav> | A block of navigation links | Navigation component frame |
<main> | The primary, unique content of the page (use once) | Main content area frame |
<section> | A thematic group of content, typically with its own heading | A section frame on your canvas |
<article> | A piece of content that makes sense on its own — a blog post, a card, a news item | A card or post component |
<aside> | Content tangentially related to the main content — a sidebar, a callout | A sidebar frame |
<footer> | Closing content — copyright, secondary links, contact info | Bottom frame |
Why it matters
Section titled “Why it matters”- Screen readers use these landmarks to let users jump directly to
<main>content, skipping the header and nav on every page. That is a massive usability improvement for blind users. - Search engines understand that content in
<article>is the primary text of the page and weight it accordingly. - Your own team can read the HTML and understand the page layout at a glance, without decoding class names.
Look at how clearly each region maps to a named element. Try changing <section> to <div> — the page looks identical, but the meaning is lost. That invisible difference is what semantics is about.