That's because the DOM is mostly used as a render target instead of a semantic document.

I think semantic HTML is a great idea but it's kind of jaded to expect it at this point.

It also doesn't help that semantic elements have styling. That right there gives people good reason to use a neutral container as a baseline. In fact I would go as far as to say that having both div and span is a bad design decision. They are just aliases for css `display` values.

The semantic web never took off because companies don't want to make their content easy to scrape.

Just look at how they salivate for WASM where everything is closed up and inaccessible, including a11y.

That is one reason. Another reason is everybody’s way of organizing content is different. There would need to be an infinite set of semantic tags to really make it work.