We're sitting in what Semantic Sam insists on calling "a well-structured conversation space." Not a coffee shop, not an office, but somewhere with clear landmarks and proper hierarchy. Sam arrived exactly on time, which shouldn't surprise me. Punctuality is sort of their whole thing.
Sam represents something rare in web technology: a quiet success story. While developers spent the last decade obsessing over JavaScript frameworks and CSS-in-JS debates, HTML5's semantic elements—<article>, <section>, <nav>, <header>, <main>—just worked. And now, as AI agents flood the web, these unsung heroes are having their moment.
Sam seems bemused by the attention.
You were introduced in 2014 with HTML5. That's over a decade ago. Why are we talking about you now?
Sam: Because everyone's finally noticing what I've been doing this whole time.
laughs
Look, I never stopped working. Screen readers have relied on me for years. Search engines have been parsing me since day one. But developers? They were too busy arguing about whether to use React or Vue to notice that their markup was a disaster.
Now AI agents show up, and suddenly everyone's panicking. "Oh no, how will the bots understand our content?" And I'm sitting here thinking: I've been telling you how to structure content for a decade. You just weren't listening.
What changed?
Sam: The web stopped being just for humans.
I mean, it was never just for humans. Search engines, screen readers, accessibility tools have always been there. But now you've got AI agents trying to book appointments, compare prices, extract data, summarize articles. These agents don't scroll. They don't click around hoping to find what they need. They parse. They read the DOM like a map.
A clean, semantic DOM answers questions clearly. A soup of <div>s does not.1
When you use proper semantic elements, you're not just making your site accessible. You're making it legible to any system that needs to understand it.
So semantic HTML is suddenly valuable because it helps bots?
Sam: You're missing the point. Semantic HTML has always been valuable. The consequences of ignoring it are just more visible now.
When a human can't navigate your site, they might struggle through it anyway. When an AI agent can't parse your structure, it just fails. Task over. No sale. No booking. No conversion.
The 12 million Americans with visual impairments who rely on screen readers?2 They've been dealing with your messy markup for years. Now that bots are having the same problem, suddenly everyone cares.
That sounds bitter.
Sam: pauses
Maybe. But mostly I'm bemused. I spent years being the boring one. The unsexy one. Developers would rather build a custom component library than use <nav> for navigation. They'd create elaborate div structures instead of using <article> and <section>. Then they'd be shocked when their SEO suffered or their accessibility audits failed.
Meanwhile, I'm just here being infrastructure. Fast, robust, self-descriptive, future-facing.3 Not glamorous, but essential.
What do developers get wrong about you?
Sam: They think I'm optional. Like I'm a nice-to-have for people who care about "proper" code.
But semantic elements aren't decoration. They're a contract with every system that reads your page.
Take <main>. Simple element, right? It just marks the primary content. But that one tag tells screen readers where to jump, tells search engines what matters most, tells AI agents where the actual substance is. Without it? Everything's a guess.
Or <article>. It's a signal: "This is a self-contained piece of content." That helps Google's Knowledge Graph.4 That helps AI summarization tools. That helps readers using reader mode in their browser.
So what happens when developers ignore you?
Sam: leans back
They build sites that look fine to humans but are incomprehensible to machines. And increasingly, that's a problem. Google's shopping systems, Perplexity's summarization agents, Arc's AI browser—they're all trying to extract meaning from markup.5 The sites that make that easy win. The ones that don't get left out of the conversation.
And here's what kills me: it's not hard. Native HTML elements have built-in keyboard accessibility, roles, and states.6 You don't have to recreate any of that. Just use what's already there.
But developers love building things from scratch.
Sam: smiles
Oh, I know. And look, there's joy in creation. But there's also wisdom in recognizing when the problem's already solved. You wouldn't rewrite TCP/IP for every application. Why rebuild button functionality with divs and ARIA when <button> already works?
The first rule of ARIA is literally: "If you can use a native HTML element with the semantics and behavior you require already built in, use that instead."7
Want to know something funny? Sites with ARIA present averaged 41% more detected errors than those without it.8 Because people get it wrong. They try to bolt accessibility onto bad structure instead of building good structure from the start.
What do you want developers to understand in 2025?
Sam: That I'm not nostalgia. I'm not a throwback to simpler times.
I'm infrastructure for what's coming.9
The web isn't just a visual medium anymore. It's an interface, an API, a dataset. If your markup can't support that, you're building on sand.
Semantic HTML doesn't stop you from using Tailwind or React or whatever framework you love. But it does ask you to be deliberate. To design structure with intent. To write code that tells a story—not just to humans, but to browsers, bots, and agents alike.10
Last question. Are you worried about being replaced? AI can infer structure even from messy markup.
Sam: long pause
Sure, smart systems can infer structure when they have to. But that's extra work. That's imprecise. That's risk.11 In a competitive landscape, well-structured markup isn't just an optimization. It's a differentiator.
And honestly? I've been underestimated before. I'll be here long after the next JavaScript framework fades.
stands up
Because at the end of the day, the web still needs a foundation. And that's what I am.
As Sam leaves, I notice they exit through a clearly marked <footer> section. Of course.
Footnotes
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
-
https://www.allaccessible.org/blog/implementing-aria-labels-for-web-accessibility ↩
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
-
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ↩
-
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ↩
-
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ↩
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
-
https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/ ↩
