I think divs sent a generation down the wrong track. It’s weakly semantic and omnipresent in every 101 tutorial; it makes the semantics overall seem weak/insufficient.

It’s just the default block-level containing element, so it serves its place but is not well explained in these tutorials (just as spans are the default inline element).

In my 25 years of experience writing HTML and CSS most engineers don’t understand semantic HTML, nor do they take the time to learn it; largely because companies don’t value it, unless they’re heavily SEO-focused companies.

I once worked at a company that would run an HTML5 validation test in our CI/CD pipeline. That was very helpful as it identified invalidly nested elements and taught proper semantic HTML.

I don’t know if it was the wrong track, it was a frame of reference with little before it.

Unless one likes using tables instead or spacer gifs.

It’s nice html has options beyond. divs now too