My message, yesterday, sparked this doozy from PJ:
“If you just stuck to tables this entire time, imagine the years of frustration you could have avoided by ignoring floated divs, Bootstrap, flexbox and now CSS Grid! These ‘new’ methods add no additional benefit to the client or user, and the syntax is not any better either! I use floated divs and flexbox only because I was gullible enough to drink the koolaid. But if I had used tables all this time, really nobody would have noticed, and I would have been more productive.”
Wait. No. Don’t do it. Straight face. Be nice.
Let me tell you why this is horribly wrong.
He’s talking about using tables for layouts.
Yes… sigh… this used to be a thing. Back in 2009, Smashing Magazine wrote an article about this and in it they referenced this thing called MAMA.
Metadata Analysis and Mining Application.
Say that three times fast.
Anyhow, this was a structural search engine that returned the details of a pages HTML structure. The table element was found on over 80% of the pages crawled.
Table, td and tr were all on the top 10 tags.
We did this.
I did this.
(Hangs head in shame.)
Then, divs came along.
And, it was all a progression toward semantic markup.
And, PJ has a small, if very narrow-minded, point that the average site visitor probably doesn’t care about most of this… until they do.
The point of semantic mark up is adding meaning.
And, primarily that meaning is for machines…
But, it’s for the benefit of users.
Let’s take the nav tag.
You use it to define navigational elements.
Why is it any better than <div id=”nav”> or putting a <ul> inside of a table cell? Because, when we use nav, we are telegraphing that this is indeed a navigational element.
And, a screen reader can safely skip this element.
If you’re not blind, who cares?
But, if you are… not having to listen to: “Home, about, contact” in robot voice is quite nice. Especially, on those mega menus with dozens of different list items.
That’s real-world value to real people.
You may not care, but they sure do.
And, that’s just one example.
Search engines use semantic markup to better understand what a web page is about. So, if SEO and, ya know, getting website traffic matters to you…
Not to mention…
All the different ways machines will use this in the future.
Semantic markup helps create a better, more useful and accessible internet, helps search engines better understand your website…
And, future-proofs your code…
For when the machines take over.
Maybe, they’ll appreciate your semantic markup…
And, not kill you… right away.
Anyway, table-based layouts was always a hack.
A horrible, horrible hack.
That you think what’s happened over the last decade or so is all about responsive design and we could’ve skipped it all by just “sticking to tables”…
Because it has “no additional benefit to the client”…
Just shows that you don’t really understand it. Not that the rest of us are crazy for embracing it. But, hey, do your table thing, my dude.
You can build ’em how you want.
That said, if you want to learn more about all of this and how to do it properly, when to use certain tags, when not to… all of it…
It’s inside my new Beginner’s Guide to HTML course.
I break it all down Barney-style.
And, help you master…
“Dis herr new-fangled aH eM eeeL Tees.”
The link to get started for nada on SkillShare is right hrr: https://skl.sh/2Lqhh1v