In Geir Wavik’s Table Layouts vs. Div Layouts: From Hell to… Hell? article, he says
Too many div tags is code smell that content isn’t being described as it should. It means divs are being used when semantic block-level tags would better describe the content; for instance, headings should be wrapped in
h5tags. Writing semantic code usually reduces the code base; and less divs with floats helps keep browser bugs away.
A quick way to check if you’re on the right track is to disable styles on your page. If it flows properly – a big main title of the site, lists of navigation items, smaller subheadings for sections, news – and makes sense, then you’re doing fine. [ref]