HTML Markup. To the end user, it's pretty much invisible. Usually we take it for granted or forget that it's there, doing its thing behind the scenes. It's easy forget that there is so much more to a web page than just visible content. What we see in our browsers is only a part of what the computer sees.
So, if we don't always see what HTML tags do, what are they doing?
Tags — like <title>, <h>, <p>, and others — but all have a common purpose: they are containers that define the function and hierarchy of their contents. Some of these tags have attributes. Those attributes can further define the role, relationship, or unique identity of that particular element.
Tags can even serve meta information — content about content — an abstraction of the document itself, much like the synopsis on the back of a novel.
HTML Markup tells browsers what a container is. A title? A paragraph? Emphasised text? A link? CSS markup (or rules) tells the browser how to display each of those containers.
When a web page has logical HTML markup that follows the flow of the document it displays, you can remove all the CSS (styling) and it would still remain readable. On other sites that follow a less logical, less organized markup, entire pages could end up terribly messy, making the site difficult to navigate.