@h3rald kinda fair, yeah. This one, however, is contradictory:
> And again, simplicity and lack of browser support are the main reason why I am against semantic elements: a div with a class works just fine, you don't have to learn the semantics of aside vs section etc.
Semantic elements are almost fully gracefully degrading and working everywhere even without explicit support (ignoring the block vs. inline display for now.) _However_, wherever they work, they add another useful dimension (semantic, duh) to the page. That’s a clear win in my book—you don’t need to support anything extra but get nice things if you do. Simple and useful.
I’m coming from the scraping background, so I do care about how a machine (in the most forgiving and benign interpretation, of course) perceives the page and extracts the information from it. Screen readers are “machines” too, for me. Semantic elements are important, because they enable easier processing and (again, in my broad interpretation) bigger net benefits for humanity.
A concrete use-case I long to implement for a long time now: parsing <nav>-s and presenting them as an Omnibar™-type menu instead of whatever the web designer made them look like. With fuzzy search and all. This use-case would be impossible to implement if there weren’t <nav>-s—heuristically parsing the page to guess where the navs are is… not trivial.
<main> is a huge help in fulltext extraction akin to what FullTextRSS does, while <section> is the basic block for structured TOC creation (headings are purely linear, so it’s not enough information.)
But I digress. Just that I care about these semantics as both an a11y person and parsing kid.