By this point people don't appear to have any real clue how to write HTML anymore. Writing semantic HTML isn't significantly harder than say writing Markdown. You copy some HTMl skeleton and you literally just stack your elements into the body. I managed to do that as a 13 year old on MySpace without any deep instruction. Sure you have to close elements as well so the syntax is slightly harder than markdown, but that allows you to differenciate between for example <article>, <section> and <aside>.
I am convinced the one single thing that made HTML unusable over the time was that people wanted or needed a way to re-use parts of the page across multiple pages, like headers, navigational elements and footers.
This meant people used frames, PHP, templating engines or any other new technology mainly for the purpose of creating shared elements, simply because HTML failed (and to this day: fails) to offer a way to include one HTML file in another without having it suck (like frames definitely did, since the browser treated each subpart of the page like its own entity including caching).
<div><div><div><div><div><div><span></div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>></div></div></div></div></div></div></div></div></div>
writing straight html and css sucked. building reddit css themes sucked
But I believe the point is: if you were writing HTML by hand, you would never have written the above.
> (and to this day: fails)
The `<template>` tag has gotten very close. Right now you still need JS (optionally wrapped as a Web Component) to load a `<template>` from an outside HTML file (at which case, yeah, it's so easy to just use a JS-based HTML renderer instead of a template today), but discussions are ongoing about closing that loop for simpler "JS-free Web Components".
I don't know when that will be accepted into the web platform, but it still feels more like a matter of time that it may happen eventually.
I've found at least some of my static page generation has moved to just dumbly appending `<template>` tags to the bottom of a page rather than use some other template language, so it feels like we are closer every day to finally having "HTML-native" simple part reuse.
Large websites resorted to PHP and server side includes to get headers and footers. Smaller websites resorted to frames and copy/paste. It wasn't perfect, but it also wasn't horrible or unusable either.
I think it was... SHTML? that allowed for server includes. My recollection from... 25ish years ago was that it was generally quite well supported and worked quite well (and was dead simple to implement). Not sure why, if that was the issue, the fix didn't quite catch on (but it's totally possible I'm mis-remembering the state of browser support).
Server-side includes worked fine but weren't enabled by default in any of the mainstream web servers. I think the lack of default-enabled status hampered their adoption. Joe User couldn't just FTP a bunch of ".shtml" files up to their shared web space and expect it to work right.
I certainly used the heck out of them in the late 90s, though.
It would have been very cool if HTML had been created with the ability to do client-side includes without having to resort to using a Turing-complete VM in the client to do it.
[delayed]
yeah editing all the footers and navigation parts in html is too annoying to me so i've resorted for my websites to just a back button to a page that has links to everything else lmao