ref:http://stackoverflow.com/questions/271743/whats-the-difference-between-b-and-strong-i-and-em
They have the same effect on normal web browser rendering engines, but there is afundamental difference between them.
As the author writes in a discussion list post (which unfortunately isn‘t online anymore):
Think of three different situations:
- web browsers
- blind people
- mobile phones
"Bold" is a style - when you say "bold a word", people basically know that it means to add more, let‘s say "ink" around the letters until they stand out more amongst the rest of the letters.
That, unfortunately, means nothing to a blind person. And on mobile phones and other PDAs, text is already bold because screen resolution is very small. You can‘t bold a bold without screwing something up.
<b>
is a style - we know what "bold" is supposed to look like.
<strong>
however is an indication of how something should be understood. "Strong" could (and often does) mean "bold" in a browser, but it could also mean a lower tone for a speaking program like Jaws (for blind people). And strong on a Palm Pilot may be an underline (since you can‘t bold a bold).
HTML was never meant to be about styles. Do some searches for "Tim Berners-Lee" and "the semantic web". <strong>
is semantic - it describes the text it surrounds ("this text should be stronger than the rest of the text you‘ve displayed") as opposed to describing how the text it surrounds should be displayed("this text should be bold").
What's the difference between <b> and <strong>, <i> and <em> in HTML/XHTML? When should you use each?