The true value of a website is its content.
Data — until semantics and presentation turn it into information. If that value is true we can therefore infer that semantics reign supreme in front-end website production.
The thing is, not all content is created equally. There needs to be a pragmatic interpretation of how content is represented. For most users of a web browser its all about what is visible. For those using screen readers it’s all about what is audible.
We have multiple layers of content, and multiple presentations of the same content. We have semantic information that can be aggregated from HTML alone and visual content that offers support for visual users (which make up the majority of users, but not everyone). The visual style applied with CSS often changes content into a different form. For example, it can change a simple hyperlink into a visual button with a graphical icon. That icon would have little value in the raw HTML where a link will suffice. We can also provide multiple versions of the same content, e.g. a video or animation with an alternative description, or better yet, a more thorough written transcript. In this case both versions of the content can be marked up in HTML and prove useful.
There is nothing wrong with being a purist in terms of HTML semantics. That’s commendable. That’s future proofing your content, which is why I strongly disagree with the notions suggested in Divya Manian’s Smashing Magazine article. You just have to realise that semantic HTML is just the first layer of accessible content.
Website design is moving more and more towards visual, interactive presentation of content. That makes the accessible semantic HTML layer all the more important.