Markup, not programming.
WHAT IT IS
A markup language describing the structure and meaning of content.
WHAT IT IS NOT
A programming language. It has no logic, no conditions and no loops.
WHAT IT DESCRIBES
That this is a heading, this is a paragraph, this is a list, this is a link.
WHAT IT DOES NOT DESCRIBE
How things look. That is the role of stylesheets.
WHY THAT SEPARATION MATTERS
Structure can then be presented differently on different devices, and read by software that does not display anything.
WHAT AN ELEMENT IS
A piece of content, marked with tags indicating what it is.
WHAT AN ATTRIBUTE IS
Additional information about an element: its address, its identifier, its description.
WHAT A BROWSER DOES WITH IT
Parses it into a structure, applies styles, and renders the result.
WHAT HAPPENS WITH INVALID MARKUP
Browsers attempt to recover, and different browsers recover differently.
WHAT THAT PRODUCES
Inconsistent rendering that is difficult to diagnose.
WHAT TO DO
Write valid markup, and validate it.