But it’s all so amorphous! Everything is so unclear! We don’t know exactly when to use these tags!
First, calm down.
Second, they are intentionally broad in scope. This is called flexibility.
Third, this is where your team comes in.
Decide how you plan to use the tags.
Leaving some flexibility is ok and probably preferable.
Giving your team time to learn is ok, in fact, it’s expected.
Fourth, to some small extent, the standard is still being developed.
This is normal in web development and does not negate the value that using the standard provides.
Fifth, this is not moral.
This is not a situation of right and wrong. No one dies if you do this “wrong” (primarily because there is no wrong). These are HTML tags for crying out loud!
Do I replace all divs with sections?
No!
A section is a set of elements you wish to group.
Most likely your section will contain many divs.
Are these nestable? How many times can I use them?
All are nestable (although probably not nav and button).
There is no limit to how many times you can use them.
Why? You probably have more than one nav, more than one article or section, etc.
Principle of the matter: each set of content is wrapped in something which accurately describes the purpose of the content inside.
What about header tags?
Inside sectioning elements (article, aside, section, and nav), these restart (i.e. you start over at H1).
They should still be used.
Didn’t they provide structure before?
No, they didn’t. Read the smashing magazine article below.
Just make it easy for me so I don’t have to read anything:
Article – stuff about one topic and where it can stand alone and still make sense
Aside – peripheral information
Header – stuff that is not main content that goes at the top
Footer – stuff that is not main content that goes at the bottom
Nav – self explanatory
Button – self explanatory
Section – stuff you wish to group which doesn’t fit any of the above tags
Why does this matter?
We have a worthless DOM otherwise.
A primary purpose of the DOM is to communicate the meaning of the content. Since, by definition, divs mean nothing, making divs the backbone of your page means your DOM is communicating nothing.
With a non-worthless DOM, we give parsers what they’ve always needed: a DOM which actually communicates the meaning of primary parts of the page.
There’s also CSS and JS benefits we can get into later.
It still doesn’t make sense!
Give yourself time to learn (and also fix anything I may have gotten wrong above).