HTML: The Full Guide

Every webpage you've ever opened, no matter how polished it looks, started as a plain text file full of tags. A heading here, a paragraph there, a button somewhere else. That's HTML, and it's the very first thing the browser article back in the Foundation chapter turns into the DOM.
It's easy to assume HTML is "the easy part," something to rush through on the way to CSS and JavaScript. It isn't. Bad HTML quietly causes real problems later: broken accessibility, poor search rankings, forms that don't actually work right. This part is where you learn to write it properly, the first time.
Every Webpage Starts Here
Before a single style is applied, before any JavaScript runs, there's HTML. It's the layer that decides what something is, a heading, a list, a button, a form field, not just what it looks like.
Get this layer right, and everything you build on top of it, CSS, React, whatever comes later, has something solid to stand on. Get it wrong, and you'll spend the rest of this wiki fighting problems that were never really about styling or frameworks at all, they were about the HTML underneath them.
What You'll Learn Here
We'll start with a cheat sheet and the basic document structure every HTML page needs, then walk through every tag actually worth knowing. From there, we'll cover semantic HTML, why choosing the right tag matters far more than it seems, and metadata, the invisible information that decides how your page shows up in search results and when it's shared.
Then we'll get practical: forms, tables, and a proper, dedicated look at accessibility, ARIA roles, screen readers, and alt text, not as an afterthought, but as a core skill. We'll cover embedding video, audio, and SVG, handling images properly on the web, and how to actually inspect HTML using your browser's DevTools instead of guessing. We'll close with a look at Web Components, and finish on a bonus most people never expect: why HTML email is still, genuinely, a nightmare.
Why This Part Matters
A page built with <div> tags for everything might look fine, until a screen reader user can't navigate it, or a search engine can't understand what it's actually about, or a form silently fails to submit because a label wasn't connected to its input. None of these are CSS or JavaScript problems. They're HTML problems, hiding in plain sight.
Getting comfortable with real HTML, not just enough to make something appear on screen, is what separates a page that merely works from one that's actually accessible, discoverable, and solid underneath. Everything else in this wiki builds on top of what you learn here. Let's get started.