The <strong>/<b> and <em>/<i> tags have exactly the same effect in most
web browsers, but there is a fundamental difference between them: <strong> and <em> have a semantic meaning
whereas <b> and <i> only convey styling information like CSS.
While <b> can have simply no effect on a some devices with limited display or when a screen reader software is used by a blind
person, <strong> will:
- Display the text bold in normal browsers
- Speak with lower tone when using a screen reader such as Jaws
Consequently:
- in order to convey semantics, the
<b> and <i> tags shall never be used,
- in order to convey styling information, the
<b> and <i> should be avoided and CSS should be used instead.
Noncompliant code example
<i>car</i> <!-- Noncompliant -->
<b>train</b> <!-- Noncompliant -->
Compliant solution
<em>car</em>
<strong>train</strong>
Exceptions
This rule is relaxed in case of icon
fonts usage.
<i class="..." aria-hidden="true" /> <!-- Compliant icon fonts usage -->