We avoid using
spans and try to choose more meaningful HTML elements instead. If unsure which element to use this list by MDN can be of help.
semantic markup is crucial for accessibility
it makes the code more readable for other developers
it benefits our SEO
For more background see this article.
This doesn’t mean you can’t ever use a
div – just think twice before you do!
HTML is used to structure content on the page and should therefore reflect its complexity. Not more and not less. Most content does not require deep nesting of HTML elements – if you find yourself wrapping
container or adding an element just to correctly position another element on the page this calls for the use of CSS instead!
deep nesting makes it hard to understand, style and maintain components
it can lead to performance issues
For a deeper dive into the WHY and HOW have a look at the following resources: