Esta pregunta me ha surgido estos primeros días del año. Andaba yo maquetando mi primer proyecto de este 2007, cuando me asaltó la duda… ¿cuál era la mejor fórmula? La mas correcta semánticamente, la más accesible… así que me puse a leer y a comentar con compañeros de profesión. Y aquí las conclusiones…
¿Para qué reemplazar imágenes por texto?
En muchas ocasiones las limitaciones en el uso y opciones tipográficas de la Web hacen que por motivos de diseño necesitemos sustituir un título por una imagen. A partir de aquí siempre surge la duda de si esa imagen es presentación o contenido. Si lo consideramos contenido, la discusión está terminada. Ponemos la imagen directamente en el código mediante la etiqueta <img />.
¿Dónde está el problema?
El problema lo encontramos si lo consideramos como presentación. En este caso necesitamos de alguna técnica. Descartando, por motivos de accesibilidad, las que utilicen JavaScript o Flash.
Técnicas
La que siempre he utilizado es la conocida FIR. Esta técnica consiste en ocultar mediante CSS un elemento span contenido dentro del bloque y colocar una imagen de fondo para bloque.
Veamos un ejemplo
<!-- XHTML -->
<h1><a href=?#?><span> ¿Por qué maquetar con CSS?</span></a></h1>
/* css */
h1 a { width: 300px; height: 174px; background: url(maquetar-con-css.gif) no-repeat; display: block; color: #033D6E; }
h1 a span { display: none; }
En este caso estamos utilizando la técnica FIR, mira el ejemplo.
Inconvenientes
Accesibilidad. El texto no es leído por los lectores de pantalla, por estar oculto. Esto se podría solucionar mediante el uso de hojas de estilo independientes para cada dispositivo. Así, si se navega mediante lectores de pantalla, cargamos otra hoja de estilos y solucionado.
El problema que realmente tiene es…
¿Y si navegamos con las imágenes desactivadas?
En este caso el navegador no muestra nada, desactiva las imágenes de tu navegador y mira el ejemplo ahora.
Entonces… ¿Qué hacemos?
Bueno pues después de compartir con mis compañeros, de buscar y de leer, llegamos a la conclusión de que la mejor manera era jugar a posicionar los elementos uno sobre otro
/* css */
h1 { width: 300px; position: relative; z-index: 1; }
h1 a { width: 300px; height: 174px; background: url(maquetar-con-css.gif) no-repeat; display: block; color: #033D6E; }
h1 a span { position: absolute; z-index: -1; }
¿Que tal ahora? ¿Mejor?
mira este ejemplo
Lo que estamos haciendo con esta técnica es ocultar bajo la imagen el texto del titular, siempre que la imagen no sea transparente, así para un usuario que navegue con imágenes activadas no apreciará que bajo la imagen hay texto. Sin embargo un usuario que tenga desactivadas las imágenes podrá ver el texto. Y si, además, damos formato a este texto podrá hasta verlo de una manera similar.
Autor: César García
http://www.alzado.org/articulo.php?id_art=623
Usuarios que han visto este tema también han visto...
- Cómo enviar los ficheros a la imprenta
- Aprenda a identificar sitios web seguros. No caiga en trampas.
- 8 lenguajes de programación que deberías aprender
- ¿Es un buen negocio Internet?
- Programaciones Obstáculo
- Versión imprimible de este documento
- Enviar por e-mail este documento