Why semantic HTML matters more than it looks
Teams tend to reach for this after something has already gone wrong. Semantic HTML is easy to treat as a detail, and that is exactly why it is worth a few minutes of attention.
Most development decisions are really maintenance decisions wearing a different hat. Doing this properly once is usually cheaper than doing it approximately three times.
Why this earns attention
The right element gives you behaviour and accessibility for free. That sounds obvious written down. It is still the thing most often skipped. The teams that stay on top of it are the ones who put it on a calendar rather than a wish list.
A div with a click handler is not a button. The teams that handle this well are rarely the ones with the biggest budgets. The version that survives contact with a real deadline is the simple one.
Warning signs
Semantic markup is the cheapest accessibility work available. Getting it slightly wrong is survivable. Ignoring it entirely is not. The practical test is whether someone new to the project could tell, in a minute, that it had been handled.
In practice
Code gets read far more often than it gets written, and usually by someone with less context than the author had. Three things worth confirming about semantic HTML before you move on:
- Someone can say what the current setup is without going to look
- A div with a click handler is not a button — and you know whether that is true here
- There is a way to tell whether the last change to this helped
Pick the one that would hurt most if it failed, and start there.