How did we get here?
I think some of this had to do with prioritization; the web standards movement pushed CSS and tables-for-tabular-data first, and that was absolutely necessary at the time. It wasn’t until things were really in full swing that there was even much focus on semantic HTML — at first, ditching table layout for CSS was the battle cry, and many sites went from a layout chock full of meaningless
table elements to a layout chock full of equally meaningless
div elements. The pushback against “div-itis” came eventually, but re-structuring with meaningful HTML was something that logically couldn’t happen until people had ditched their layout tables and come over to the CSS side of things.
The red herring of browser bugs
Closing the gap
For people coming from non-programming backgrounds, I can think of a few options:
Wrap it all up in a nice package
And I’m spent