Ya se discutió (y bien) este tema en otros lugares, pero a raíz de un post en Kabytes y viendo que no está muy clara cual es la diferencia entre los tags <b> vs. <strong> y <i> vs. <em> voy a tratar de explicarla. Aclaro que ésto es de interés solo para los Talibanes de la Accesibilidad y los Maestros del SEO.
Supongamos que quiero poner un texto en negrita, ¿utilizo <b> o <strong>? La respuesta es ninguno de los dos, hay que usar la propiedad CSS font-weight. Veamos:
El código XHTML:
<p>Este texto lo quiero en negrita</p>
y el código CSS correspondiente:
p { font-weight: bold; }
El caso de la itálica es similar, debemos usar la propiedad CSS font-style:
p { font-style: italic; }
Entonces, ¿para qué sirven <i> y <b>? Estos tags sirven para dar formato, pero como enseña el Tao del CSS el formato debe darse a través de las hojas de estilo, por lo que en su lugar hay que usar las propiedades CSS font-style y font-weight.
En cuanto a <em> (emphasis) y <strong> (strong emphasis) son elementos estructurales que deben utilizarse en sentido semántico, da la casualidad (o no) que por defecto los navegadores los muestran, respectivamente, como itálica y negrita. Un Talibán de la Accesibilidad nos dirá que un texto con em será leído por un lector de pantalla con más énfasis, y un Maestro del SEO dirá que si ponemos strong a las keywords, Google indexará nuestra página en primer lugar.
Espero que se haya entendido la diferencia. Yo por mi parte no hago mucho caso de todo lo anterior y uso lo que más cómodo me queda.