Every year, usually after breaking something I didn’t mean to, I like to remind myself (and anyone within tweeting distance) that HTML is semantically awful — by design.
HTML is like that old friend who can’t tell a story without five tangents, two unrelated photos, and a Wikipedia link from 2007. And yet somehow, you get the point. It’s not elegant. It’s not consistent. But it works.
And that, dear reader, is the web’s original superpower.
Once Upon a Time, There Was SGML
Back in the digital Jurassic period, there was SGML, the Standard Generalized Markup Language. It was powerful. It was structured. It was logical. It was also about as approachable as a tax return written in Klingon.
Then along came HTML — SGML’s scruffy, underachieving cousin who couldn’t be bothered with all that structure. HTML didn’t want to define the entire universe of meaning. HTML just wanted to show you a picture of a cat, underline some words, and call it a day.
Semantics? Schmementics.
People like to say HTML is “semantic.” That’s adorable. Sure,
<H1> means “this is a heading,” but it doesn’t tell you anything useful about what kind of heading. Is it a headline? A chapter title? A warning about dragons? HTML doesn’t care. HTML just shrugs and says, “You’ll figure it out.”
And yet, the web didn’t collapse.
In fact, it thrived, because HTML was forgiving. It was human-readable. You could view source, poke it with a stick, and it would still mostly work. HTML degraded gracefully, even if you accidentally nested a <font> tag inside your <blink> tag inside your <marquee> . (And some of us did.)
WordPress: The HTML of Platforms
Which brings me to WordPress.
WordPress is the HTML of publishing platforms: semantically imperfect, gloriously messy, and endlessly forgiving. It’s a system built on compromise, a stack of backwards compatibility, plugins duct-taped together, and themes that somehow still render after a decade of updates.
And it works not in spite of that chaos, but because of it.
It’s human-readable in its own way. You can open a WordPress site, dig around, and eventually make sense of it, even if you don’t know what you’re doing (which, statistically, most of us don’t). It’s designed for the real world, the same messy, half-structured world that made HTML work.
The Beauty of Compromise
SGML wanted perfection. HTML gave us the web instead.
Pure systems break. Forgiving systems evolve.
That’s the lesson. WordPress works not because it’s perfect, but because it bends. It lets people build, experiment, and, when necessary, break things in gloriously recoverable ways.
So yes, HTML is semantically awful. WordPress is beautifully human.
And thank goodness for that.
Because if either of them had insisted on elegance, you and I wouldn’t be here, we’d still be arguing over DTDs and MIME types, wondering why no one reads our blog.
Leave a Reply