Course

HTML from the ground up

Learn markup by writing it

  • Beginner
  • 13 chapters
  • 196 min read

A hands-on introduction to HTML, from your first tag to structured data: every idea comes with an example you can edit and run in the page, a few checks on your own code, and a short quiz at the end of each chapter. Markup only — the page you build here says what things are.

What You'll Learn

  • Write a well-formed HTML document from an empty editor
  • Choose the element that means what you mean, instead of a box that merely looks right
  • Structure text, links, images, lists, tables and forms so they survive being read aloud
  • Label and validate a form the way the browser and a screen reader expect
  • Embed media and third-party content deliberately, knowing what each choice costs
  • Give a page landmarks and names that a screen reader can navigate
  • Reserve an image’s space and load it at the right time
  • Draw crisp, colour-following icons with inline SVG
  • Reach for the widgets the browser already ships before building your own
  • Declare what a page is with structured data a search engine can read

Prerequisites

  • No prior programming experience — the whole course is markup
  • Any modern browser; the editor and the preview run everything for you

Vocabulary

The terms the chapters assume, in plain words.

accessible name
What a browser tells a screen reader an element is called, taken from its text, its label, or an alternative description.
aria-label
An attribute that gives a control an accessible name when no visible text can serve as one.
attribute
A name, sometimes with a value, inside an opening tag that describes the element further, such as where a link goes.
control
An interactive part of a page, such as a text box, checkbox, or button, that a person can operate.
element
One complete piece of a page: an opening tag, its content, and a closing tag, or a single tag when it holds nothing.
empty element
A tag that holds nothing and has no closing partner, such as an image or a line break.
for attribute
An attribute on a label that names the control it describes, so clicking the text operates that control.
form action
The address a submitted form sends its values to, declared in the opening tag of the form.
id attribute
An attribute that gives one element a unique name, which a link or a label can point to.
label
The text attached to a control that says what it is for; clicking it focuses or operates the control it belongs to.
landmark
A page region with a recognised purpose, such as header, nav, or main, that a screen reader can jump to directly.
markup
The tags and attributes that describe the structure of a document, as opposed to its styling or behaviour.
method
The attribute that says whether a form's values travel in the address or in the request body.
name attribute
An attribute that gives a form control a key for its value when the form is submitted.
regular expression
A pattern of characters used to test or match text, such as the shape an email address must have.
request body
The part of a form submission that carries the field values, separate from the address.
reset button
A button that puts every control in a form back to the value it had when the page loaded.
sandbox
An isolated place where a page runs without reaching the rest of the site or the network.
screen reader
Software that speaks a page aloud or shows it in braille, so someone who cannot see the display can still use it.
tag
The name of an element written in angle brackets, such as p or img, which marks where that piece of the page begins or ends.

Course Content

  1. 01
    How HTML works

    What markup actually is: elements, attributes and the skeleton every document shares — and what the browser does with it.

    Beginner · 12 min read

    Not started
  2. 02
    Text, links and images

    The three things almost every page is made of: headings and paragraphs that carry meaning, links that go somewhere, and images that everyone can understand.

    Beginner · 15 min read

    Not started
  3. 03
    Lists and page structure

    Lists that announce themselves, and the landmark elements that let a reader — or a screen reader — jump straight to the part they want.

    Beginner · 15 min read

    Not started
  4. 04
    Tables and data

    Tabular data deserves a table — and a table deserves headers. Why the markup around the numbers decides whether anyone can read them.

    Intermediate · 14 min read

    Not started
  5. 05
    Forms and inputs

    Collecting something from a visitor: the elements that make a form usable, the labels that make it accessible, and the attributes that catch mistakes before they are sent.

    Intermediate · 18 min read

    Not started
  6. 06
    Media and embedding

    Audio, video and images that adapt to the screen — plus when a frame around someone else’s page is the right answer, and when it is not.

    Intermediate · 16 min read

    Not started
  7. 07
    Accessibility in depth

    What a screen reader actually announces, why landmarks and names carry the whole page, and how to test your own work in five minutes.

    Advanced · 16 min read

    Not started
  8. 08
    Metadata and social tags

    The invisible head: the title and description a search engine shows, and the tags that decide how a shared link looks.

    Intermediate · 14 min read

    Not started
  9. 09
    Responsive images and performance

    Images are most of a page’s weight. Learn to reserve their space, load them at the right time, and serve the size that fits.

    Intermediate · 15 min read

    Not started
  10. 10
    SVG and icons

    Pictures made of instructions rather than pixels: crisp at any size, coloured like text, and cheap to ship.

    Advanced · 14 min read

    Not started
  11. 11
    Widgets without JavaScript

    Interaction the browser already ships: a disclosure, suggestions for an input, and progress you can see — no script required.

    Intermediate · 14 min read

    Not started
  12. 12
    Structured data

    Telling a search engine what the page is, not just what it says: schema.org in a JSON-LD block, and the rules that keep it honest.

    Advanced · 15 min read

    Not started
  13. 13
    A complete page, end to end

    Everything at once: one small page that has to pass every rule the course has taught, and what to do before you ship it.

    Advanced · 18 min read

    Not started