5.1.1.

22 febrero 2005

El mito de la semántica en la web

Categoría

Lo que digo a continuación puede ser fácilmente refutado, pero nada me impedirá el placer de decirlo. A los fines del post entiendase semántica como significado o información que se transmite.

Ahora, y ya desde hace rato, muchos se preocupan por estandares (principalmente XHTML y CSS) y cada tanto (ya no tanto) escucho (y respondo) preguntas sobre que elemento HTML es el más adecuado para cada caso. Tenemos que usar Hx para los títulos, ABBR para las abreviaturas, P para los párrafos y tantas otras cosas; ¡y pobre del que oce usar algo como <div class="titulo"> Título </div>!

Pués les recuerdo algo: la semántica no es algo mágico ni salvará la vida de Brian. ¡La semántica en los elementos no es algo intrínseco! El significado o el mensaje (que más importa) es que finalmente termina recibiendo (ó interpretando) el usuario. Creo que es posible distinguir en este blog los títulos de los parrafos, pero ¿alguien se fija que elemento usé para marcarlos (o etiquetarlos como he oido)?

Si fuera por ahorrarme conocer cada elemento bien podría hacer con los títulos algo como esto

div.titulo {font:30px arial;}

Entonces los títulos resaltarían lo suficiente como para que fueran facilmente identificables.

Humor nerd: Incluso podría usar sólo SPAN y tener una hoja de estilos como ésta:

span.titulo, span.parrafo {display:block;}
span.li {display:list-item;}

Y en el fondo no es tan descabellado.

Los títulos son grandes, los párrafos tienen un interlineado, los links son azules… Lo que debería causarnos asombro son nuestros propios sentidos. Nuestros ojos pueden etiquetar y dar significado a estas convenciones. O sea que al ver una palabra en azul y subrayada, nuestro mouse corre desesperado para ver de qué se trata (obviamente guiado por nuestra curiosidad) porque sabemos que hay más información escondida detrás.

Si vamos al ya repetido hasta el hartazgo grupo de usuarios que usan lectores de pantalla tampoco habría problemas porque todavía tienen uno de sus sentidos para que etiquete la información. Sería solo cuestion de usar CSS (aural stylesheets para ser más específico) para hacer que los DIV de clase titulo sean leidos con más énfasis. Si el programa lector practicamente grita una oración es porque debe ser importante, pensaría el usuario.

¿Entonces podemos prescindir completamente de toda la ensalada de elementos y dedicarnos a disfrutar de una sencilla divitis (entiendase divitis como el abuso de DIV)? Sería divertido pero personalmente lo desaconsajería por una simple razón: los elementos de HTML los conocen todos (los que esten metido en el asunto). El ejemplo clásico es Google. Se supone que este buscador es capaz de diferenciar títulos y texto con énfasis del resto del resto del texto.

La otra razón aún más importante está relacionada con el abuso de CSS. Suponiendo que todos los elementos fueran puros DIVs, si por alguna razón CSS está desactivado, todo el texto se vería igual. Pero por otro lado, usando los diferentes elementos (y usandolos inteligentemente), el navegador (sea gráfico o no) siempre puede recurrir a los valores recomendados de fábrica. Si desactivan las hojas de estilo en este sitio, verán que los títulos resaltan con respecto al resto del texto. Para el navegador cada elemento es exactamente igual, pero en un ataque de altruismo para con el usuario, incluye ayudas (visuales en un navegador gráfico) para intentar transmitir la misma idea que el diseñador planificó.

Por lo tanto, si querés podés usar puros DIV. En mi caso he visto que la mayoria usar navegadores bastante avanzados (lease IE y Firefox) por lo que poco importa lo que hay detrás, pero como no puedo estar complementamente seguro que el host de mi CSS funcione siempre, no viene mal tener una pequeña ayuda de los navegadores en caso de tragedia.

Una continuación para este artículo en La importancia de los elementos en HTML.

Powered by Blogger