Crear Documentos Word Accesibles

Microsoft Word es actualmente el procesador de textos más común del mercado. Es tan común el formato de .doc que se ha convertido en el formato de predeterminado para los documentos de texto. Los archivos de Word se pueden también utilizar para crear otros formatos de archivo, tales como PDF y HTML. Hay varias cosas que se pueden hacer para crear un documento accesbile para lo usuarios que lo necesitan.

Crea Documentos Estructurados

Mucha gente no utiliza estilos “reales” en Word. Por ejemplo, al crear un título, cambian simplemente la fuente, agrandan el tamaño de fuente, lo ponen en negrita, etc… Si se hace esto, el documento no tiene ninguna estructura que se pueda discernir por un lector de la pantalla. En Word, la manera correcta de proporcionar la estructura es utilizar los estilos de Word.

Word 2000-2003

Los estilos desplegables de la lista permiten crear titulos con marcado semántico, así como aplicar cualquier estilo anteriormente creado.

Estilos de la Lista desplegable en Word 2000-2003

Hay un par de ventajas del tener estructura semántica en documentos de Word:

  • Primero, cuando el archivo se exporta a HTML, conservará la estructura, haciéndolo accesible a los lectores de pantalla.
  • En segundo lugar, la estructura también será conservada cuando sea exportada a PDF.
  • En ambos casos, la estructura agregada aumenta la legibilidad del documento para la gente que usa a lectores de pantalla.

Word 2007

En esta versión se ha hecho hincapié y un buen trabajo en el uso de “estilos apropiados” para el marcado del documento. Cerca de la mitad de la barra de herramientas por defecto, se dedica a los estilos. Ésta es indudablemente la mejora más destacada de la accesibilidad en Word 2007.

Barra de herramientas de estilos en Word 2007

Proporciona texto alternativo en las imágenes

Antes de exportar a HTML o a PDF, el texto alternativo se debe agregar en todas las imágenes.

Los elementos complejos deberían de proporcionar una descripción sin depedender del documento de texto.

Word 2000-2003

Para proporcionar el texto alternativo, click-Derecho en la imagen, y luego seleccionamos Formato de imagen/Format Picture.

Aparecerá una caja de diálogo. Selecciona la pestaña Web y después agregua el texto alternativo apropiado.

Pestaña Web del Formato de Imagen. La versión 4.0 de Wave aparece en el campo como ejemplo.

Word 2007

El agregar texto en el alt de las imágenes ha llegado a ser mucho menos intuitivo en Word 2007. Para agregar el texto alternativo, click-Derecho en la imagen y selecciona tamaño/size.

En la caja de diálogo o ventana. Seleccione la pestaña Texto Alternativo/Alt Text. Comprobaras que en este campo aparecera el nombre de la imagen como texto alternativo, como ya deberíamos saber este no es un texto alternativo correcto. Por lo tanto aplicaremos el arpopieado para la imagen que utilicemos. Sino sabes que texto aplicar puedes ver el artículo “Como usar el texto alternativo (alt) en imágenes”.

Pestaña del Texto Alternativo en Word 2007. La palabra logo.gif aparece en el campo de texto.

Para esta imagen el texto alternativo adecuado, sería algo como “WebAIM – Accesibility In Mind”.

Tablas de Datos y Temas de Accesibilidad

No hay forma de asignar el elemento encabezado a una tabla o el th a una celda de la tabla en Word.
Sin embargo puedes indicar que una fila “Se repita como encabezado en la parte superior de cada página” desde menú Propiedades de la tabla, tened en cuenta que esto no crea los encabezados apropiados en la tabla.
En cambio, las celdas estarán contenidas en el elemento thead. El <thead>, el <tfoot>, y el <tbody> se utilizan para dividir las tablas en las tres partes principales de una tabla de los datos.

Convertir Word a HTML

Guardar Archivo como HTML

Al guardar un documento Word como HTML, la estructura y el texto del alt se conservarán en el documento final. Para guardar como HTML, archivo y seleccionar Guardar como página Web..

Menu de archivo para Guardar un documento como Página Web

En el Office XP o posterior, hay dos opciones para exportar a HTML:

  • Guardar como página Web
  • Guardar como página Web, filtrada

Ventana con la opción 'Guardar como Página Web, Filrada' seleccionada

La ventaja de la opción “Guardar como página Web” es que la página se verá casi exactamente igual que el documento impreso. La ventaja de la opción “Guardar como página Web, filtrada” es que el código será mucho más limpio, el tamaño del archivo será significativamente menor, y en la mayoría, si no todos, la imagen y el aspecto del documento original se mantiene.

En términos de accesibilidad, ambas opciones son correcta, siempre y cuando el archivo de origen se haya creado con la estructura adecuada y con el texto alternativo para las imágenes, el documento no contiene tablas de datos, y otros se aplicarán los principios de accesibilidad. Debido a la reducción marcado en algunos navegadores, la opción “Guardar como Página Web Filtrada” tiene más probabilidades de ser soportado y compatible en varios navegadores.

“Pegado especial” en Dreamweaver

Si utiliza Dreamweaver, puede importar el contenido de Word utilizando la opción Pegado especial. Seleccione todo el contenido en el documento de Word y luego copiar en el portapapeles. A continuación, crea una página vacía en Dreamweaver y has clic con el botón derecho y selecciona Pegado especial …, o Ctrl + Shift + V.

Aparecerá un cuadro de diálogo o ventana nueva con las siguientes opciones:

  • Sólo texto
  • Texto con la estructura (párrafos, listas, tablas, etc)
  • Texto con la estructura más básica de formato (negrita, cursiva)
  • Texto con la estructura más completa de formato (negrita, cursiva, estilos).

También hay opciones para conservar los saltos de línea en el caso de que existan y Limpiar el espaciado de párrafos de Word. Utilizando cualquiera de los opciones anteriores serán los HTML más limpios, que si guarda como HTML en Word. Texto con estructura o Texto con estructura y el formato básico es generalmente la mejor opción.

También podemos guiarnos por una Web que nos enseña las mejores practicas para crear un documento de Word Accesible:

Las Mejores Prácticas para Word (en ingles)

CSS3 y sus Impresionantes Características

Introducción

Con la versión tres del CSS, muchas características emocionantes serán ejecutadas. CSS3 lleva a mayor flexibilidad y hace mucho más fácil reconstruir efectos previamente complejos. Muchas reglas para ahorrarnos tiempo se están aplicando para CSS3 como: text-shadow, box-sizing, opacity, multiple backgrounds, border-radius, border-image, multi-column layout, etc… Aunque solamente los navegadores más modernos soportan actualmente estos efectos.

En este artículo hecharemos una ojeada a algunas características interesantes de CSS3 que puedes poner en práctica en tus maquetas Web.

MÓDULO DEL COLOR CSS3

CSS3 soporta más color y una gama más amplia de las definiciones del color. Los nuevos colores que proporciona CSS3 es HSL, CMYK, HSLA y RGBA. Este PowerPoint explica con detalle los colores en CSS3 y cómo usarlos.

Nuevo formato de colores en CSS3

Ver otro ejemplo

BORDES CON DEGRADADOS

Puedes obtener bordes con degradados usando: -moz-border-radius / -webkit-border property.

Bordes con degradados

BORDES CON IMAGEN

Las propiedades generalmente de los bordes en CSS no son suficientes. Si quieres utilizar las imágenes para los bordes, CSS3 soporta imagen en los bordes a través de las porpiedades border-image y border-corner-image.

Bordes con imagen

ESQUINAS REDONDEADAS O BORDES REDONDEADOS

A continuación se demuestra cómo crear fácilmente las esquinas redondeadas para cualquier caja usando border-radius y background position.

Esquinas redondeadas

Ver otro ejemplo

CAJAS CON SOMBRA

La propiedad de CSS3 box-shadow permite agregar un efecto de sombra sin usar imágenes a un elemento seleccionado. Box-shadow es soportado actualmente del Safari 3+ y Firefox 3.1+.

Cajas con sombra

Ver otro ejemplo

MÚLTIPLES IMÁGENES DE FONDO (MULTIPLE BACKGROUND IMAGES)

Si quieres agregar al de una caja o a un párrafo, CSS3 te permite aplicar múltiples imágenes de fondo a un elemento.

Múltiples imágenes de fondo

MÚLTIPLES COLUMNAS (MULTIPLE COLUMNS)

Este módulo de CSS3 permite colocar los textos en varias columnas de forma mucho más simple usando las propiedades: -moz-column-count and -moz-column-width. Si tienes un texto en tu págia Web demasiado de largo, esta propiedad de CSS3 podría serte realmente útil.

Múltiples Columnas

SOMBRA PARA TEXTO

¿Necesitas usar Photoshop o Fireworks para crear sombras para el texto? La propiedad text-shadow de CSS3 permite agregar una sombra a cada letra del texto. Esta propiedad no es nueva en CSS3, fue propuesto originalmente en CSS2, pero quitado en CSS 2.1.

Sombra para Texto

BOX-SIZING Y BOX-MODEL

La propiedad Box-sizing de CSS3 permite especificar el comportamiento del navegador calculando el ancho de un elemento y controlando si una caja es redimensionable.

Box-sizing y Box-model

Ver otro ejemplo

OPACIDAD EN CSS3 (OPACITY)

Aunque, la propiedad opacity de CSS se usa actualmente, CSS3 desarrolla más el uso de esta propiedad. Puede fijar la transparencia de la caja, de la imagen y del texto usando la propiedad Opacity.

Opacity CSS3

SELECTORES CSS3

¿Estás confuso con todos los nuevos selectores CSS3? Este artículo proporciona la explicación más útil de los selectores CSS3.

Selectores CSS3

CSS3 TEMPLATE LAYOUT CON JQUERY PLUGIN

Este plugin permite que los Maquetadores Web usen: W3’s CSS Template Layout Module usando jQuery

CSS3 Template Layout con jQuery Plugin

PERSONALIZANDO FUENTE CON CSS3

Hoy en día utilizamos formas alternativas para personalizar la fuente como por ejemplo: typeface.js. Pero ahora con CSS3 lo tendremos mucho más facil y accesible.

CSS3 Personalizando Fuente con CSS3

CREANDO UNA GALERÍA POLAROID CON CSS3 AND JQUERY

El diseñador Marco Kuiper nos demuestra cómo crear una galería polaroid combinando CSS3 y JQuery.

Creando un Galería Polaroid con CSS3 and jQuery

Ver Demo

TOOLTIP CON CSS3

Este artículo demuestra como crear un tooltip usando pseudo-elementos :before (or :after) combinados con pseudo-clases :hover.

Tooltip con CSS3

Ver Demo

Mozilla crea Open Web Tools Directory

Se acaba de lanzar Open Web Tools Directory, un directorio muy “fashion” lleno de interesantes herramientas para los desarrolladores web. Esta web ha sido diseñada para funcionar con HTML 5, por lo que solo se verá bien con Safari, Chrome, Opera y Firefox, marginando a IExplorer.

Previsualización de Open Web Tools Directory

Todos los usuarios podrán enviar las herramientas que ellos consideren útiles a la comunidad, y así hacer poco a poco el directorio más completo

Además de este directorio, Mozilla estrena nuevo look y nueva funcionalidad en su sitio web de complementos, ahora permite que los usuarios creen sus colecciones de complementos, esto permite una mejor clasificación y organización de ellos, siendo más fácil encontrar por ejemplo, colecciones para desarrolladores web, diseñadores o complementos que mejoran la accesibilidad. La web ahora también nos permitirá marcar como favoritas las colecciones que nos gusten e incluso suscribirnos a ellas para recibir noticias de los últimos complementos.

Modelo de Caja (Box Model Hack)

Como ya sabemos todos no todas las versiones de los navegadores tienen los mismos parámetros de referencia para trabajar con algunas de las propiedades y valores de las hojas de estilo. Todos nos hemos “roto” la cabeza más de mil veces con las propiedades de CSS en distintos navegadores y con su comportamiento en cada uno de ellos. En especial nuestro amigo Internet Explorer 6.

Modelo de caja

El caso más común de todos es el famoso modelo de cajas. Debido a que los “cajas” o DIVs es lo que más usamos a la hora de maquetar en distintos navegadores.

Aclarando el problema…

Recordad que los problemas comienzan cuado trabajamos con diseños estáticos. Nuestra caja tendrá un ancho dado, pero no todos los navegadores interpretarán ese ancho de la misma manera. Según el W3C el ancho de una caja se mide desde el límite interno del relleno izquierdo (left-padding) hasta el límite interno del relleno derecho (right-padding).

En caso de no existir relleno se toman los límites internos izquierdo y derecho del borde (border-right y border-left). Cuando Microsoft lanzó su Internet Explorer 5 para Windows (IE5/win) no respetó éste estándar, interpretando la propiedad width como el ancho comprendido entre los límites exteriores del borde (border-left y border-right).

Para verlo con más claridad supongamos un ejemplo sencillo: una caja de 100 pixeles de ancho, 10 de relleno, 5 de borde y 10 de márgen, todos ellos uniformes.

El elemento DIV


Aquí el contenido de la caja

Aplicando CSS

div {
width: 100px;
padding: 10px;
border: 5px solid #000;
margin: 10px;
}

En la imagen siguiente (en la que se ha aplicado un color al padding únicamente con fin ilustrativo) puede verse una representación de la diferente interpretación entre el IE5/IE6 y los demás navegadores y anticipar las perjudiciales consecuencias para el diseño final.

Problema modelo de caja en navegadores

Solución

La solución y especificación del modelo de caja la proporcionamos en una página externa para mejor visualización, el enlace es el siguiente:

Modelo de Caja (Box Model hack)

Las novedades de HTML 5 (Parte 2)

Después de la primera entrega de este repaso a HTML5 (parte 1), llegamos a la parte dinámica del estándar, lo que se añade al DOM y a Javascript para conseguir aplicaciones web avanzadas. Por un lado tenemos diversas APIs, es decir, conjuntos de funciones y herramientas que implementan un propósito concreto. Por el otro lado tenemos varias funciones y atributos que sirven a propósitos más generales y que no se pueden enmarcar en una API concreta.

Nuevas APIs

No está claro que todas las APIs siguientes se vayan a incluir en el estándar HTML5 propiamente, de hecho seguro que alguna de ellas se separará creando un estándar propio dedicado. De cualquier forma, estas son las nuevas APIs que nacen o se desarrollan en HTML5:

  • Una API para dibujar en 2D, que se podrá usar junto al nuevo elemento canvas. Básicamente, se pueden pintar elementos sobre un lienzo, de manera similar a lenguajes como Java.
  • Una API para controlar los nuevos elementos multimedia, video y audio. Así podremos controlar la reproducción con código Javascript, algo interesante pero que puede dar más de sí.
  • Una API para guardar datos localmente, utilísimo para que las aplicaciones web puedan trabajar sin necesitar conexión a Internet. Ese DOM storage está ya implementado en las últimas versiones de los grandes navegadores, así que dentro de poco podremos disfrutar de esta clase de aplicaciones sin necesidad de extensiones como Google Gears.
  • Una API para que las aplicaciones web puedan enlazarse a protocolos o tipos de archivos MIME, otro añadido extremadamente útil. Esto permitiría abrir las fotos de tu disco duro directamente en una aplicación de retoque online, o un archivo mp3 en una biblioteca online, etc…
  • Una API para editar los campos que sean editables, valga la rebuznancia. Esto permite controlar los elementos HTML que son editables por el usuario, tipo Word. Por ejemplo, Google Docs o editar HTML en emails será muy sencillo, y con esta API es trivial cambiar ese contenido con Javascript.
  • Una API para controlar las acciones Drag & Drop sobre los elementos que se puedan arrastrar. Esto se puede conseguir actualmente con algunas librerías, pero con esta API el navegador lo permite de manera nativa y más poderosa.
  • Una API para controlar el historial desde una aplicación web. Esto permitirá a las aplicaciones web que se muevan con Javascript añadir páginas al historial para que los botones Atrás-Adelante funcionen siempre.
  • Una API para habilitar la comunicación entre varias “páginas web”. Es decir, si tenemos varios iframes externos en una web, podemos comunicarnos con ellos y compartir información de manera segura, por ejemplo con gadgets de Facebook o similares.

Guía Referencia Canvas HTML 5Guía de Referencia Canvas HTML 5

Novedades en el DOM

Se han añadido a los elementos del DOM nuevas funciones y atributos que facilitan su uso y permiten realizar acciones muy usadas. Aquí comentaré los más interesantes, que trabajan sobre el documento (HTMLDocument) o sobre cualquier elemento (HTMLElement).

  • La función getElementsByClassName() se añade a todos los elementos y al documento. Su funcionamiento es similar a getElementsById(), pero en este caso selecciona todos los elementos del documento o de cierto subárbol del documento que contengan esa clase. Su definición es tan amplia que incluso elementos que contenga SVG o MathML pueden ser encontrados.
  • El atributo classList está disponible para cualquier elemento, y contiene una lista con todas las clases que tiene ese elemento. Además contiene varios métodos que facilitan trabajar con esa lista: buscar, modificar, borrar, etc. Muy útil para trabajar con elementos que puedan tener más de una clase, es muy sencillo y muy conveniente de usar. Los enlaces también tienen un elemento similar adicional llamado relList que permite lo mismo pero con el atributo rel (como el famoso rel=”nofollow”).
  • El atributo innerHTML se añade, por fin, al estándar. Prácticamente usado por todas las aplicaciones web y soportado por todos los navegadores, creo que todos los desarrolladores web lo conocen de sobra. Para aquellos que no lo conozcan, este atributo permite trabajar con el contenido de un elemento en texto plano, incluso cambiando elementos HTML que pueda haber. Igualmente, se añade a todos los elementos y al propio documento, pudiendo cambiar TODO el contenido de una web.
  • Los atributos activeElement y hasFocus están disponibles sobre un documento, y permiten conocer qué elemento está activo y si el documento tiene el foco, respectivamente.
  • La función getSelection() se aplica también al documento y devuelve un objeto con el texto y elementos que están seleccionados.
  • El atributo designMode es otra novedad sobre el documento e indica/modifica que el documento pueda o no ser editado.
  • La función execCommand() se aplica sobre el documento y permite ejecutar acciones o “comandos” típicos de edición de documentos. Por ejemplo, con este método se llamaría a los útiles copiar/pegar, pero también a otros típicos como crear un enlace o cambiar el color de un elemento. Como el anterior, la mayoría de estos comandos trabajan sobre elementos editables.

Con esto ya hemos acabado con todas las novedades de HTML5, al menos las más importantes e interesantes para los desarrolladores web. Pero aún nos queda una parte muy importante: los elementos y atributos que se eliminan del estándar y que formaban parte de HTML4 y anteriores. Son muchos y variados, y algunos pueden causar más de un dolor de cabeza.

Terminamos este especial sobre HTML5 con la parte más desagradable (o agradable) del estándar: lo que se elimina. Es curioso que un montón de elementos comunes pasan a estar prohibidos en HTML5, por razones diversas que ahora veremos. Por esas mismas razones bastantes atributos han sido eliminados bien de un elemento concreto o de todos los elementos.

Sin embargo hay que aclarar estas prohibiciones, ya que hay dos caras en esta moneda. Por un lado los desarrolladores no pueden usarlos, si quieren que sus documentos sean HTML5 válidos. Por el otro lado, los navegadores tienen la obligación de implementarlos y soportarlos, para ser compatible hacia atrás con HTML4 y anteriores. Esta dualidad es muy interesante y nos ahorra bastantes problemas de una manera limpia definida en el estándar.

Elementos eliminados

Como decía, estos son los elementos eliminados y las razones de por qué son prohibidos:

  • Los siguientes elementos (muy usados hace pocos años) se quitan de HTML5 porque son puramente presentacionales (no tienen semántica) y todo el tema estético se debe tratar con CSS:
    • basefont
    • big
    • center
    • font
    • s
    • strike
    • tt
    • u
  • Los elementos para trabajar con frames (frame, frameset y noframes) se quitan del estándar por razones obvias: afectan negativamente a la usabilidad y accesibilidad de la web. Además, prácticamente rompen la web, y si se necesita algo similar se puede acudir a los iframe, más potentes y mejor pensados.
  • El elemento acronym se elimina simplemente porque crea confusión sobre su uso, y los desarrolladores no entienden demasiado bien para qué usarlo. Las abreviaciones y acrónimos se pueden marcar con abbr, que sí se mantiene en el estándar.
  • El elemento applet se ha declarado obsoleto y hoy en día no se utiliza. El elemento object reemplaza sus funciones y es lo común hoy en día.
  • El elemento isindex se quita definitivamente. En la era de las cavernas se utilizaba para mandar información al servidor, pero con la llegada de los formularios su uso es arcaico y poco útil.
  • El elemento dir también se declara obsoleto (ya lo era en HTML4), y simplemente se recomienda usar listas normales con ul.
  • El elemento noscript se mantiene en HTML pero no en XML/XHTML, ya que su contenido está en HTML. No estoy muy de acuerdo con este movimiento, pero así será.

Atributos eliminados

Para empezar, todos los atributos referentes a la presentación han sido eliminados, por la misma razón de antes: CSS sirve mejor ese propósito. Recuerdo que el atributo style (que contiene CSS) es ahora universal y puede ser aplicado a todos los elementos, así que si queremos indicar su presentación sin añadir una hoja de estilos aparte, tendremos que usar este atributo. Atención a la lista porque esto sí que es importante, ya que algunos de estos elementos son muy usados, aunque otros están muy obsoletos:

  • Atributo align en todos los elementos.
  • Atributos alink, link, text y vlink en el elemento body.
  • Atributo background en el elemento body.
  • Atributo bgcolor en los elementos table, tr, td, th y body.
  • Atributo border en todos los elementos.
  • Atributos cellpadding y cellspacing en el elemento table.
  • Atributos char y charoff en los elementos col, colgroup, tbody, td, tfoot, th, thead y tr.
  • Atributo clear en el elemento br.
  • Atributo compact en los elementos dl, menu, ol y ul.
  • Atributo frame en el elemento table.
  • Atributo frameborder en el elemento iframe.
  • Atributo height en los elementos td y th.
  • Atributos hspace y vspace en los elementos img y object.
  • Atributos marginheight y marginwidth en el elemento iframe.
  • Atributo noshade en el elemento hr.
  • Atributo nowrap en los elementos td y th.
  • Atributo rules en el elemento table.
  • Atributo scrolling en el elemento iframe.
  • Atributo size en el elemento hr.
  • Atributo type en los elementos li, ol y ul.
  • Atributo valign en los elementos col, colgroup, tbody, td, tfoot, th, thead y tr.
  • Atributo width en los elementos hr, table, td, th, col, colgroup y pre.

Como veis, algunos de estos atributos sí que se mantienen para ciertos elementos, como la anchura y altura en las imágenes. Sin embargo estos no son los únicos atributos que se eliminan, también hay otros que se quitan por redundancia, por evitar confusiones, por su bajo uso o porque simplemente se han quedado obsoletos.

  • Atributo accesskey en los elementos a, area, button, input, label, legend y textarea.
  • Atributos rev y charset en los elementos link y a.
  • Atributos shape y coords en el elemento a.
  • Atributo longdesc en los elementos img y iframe.
  • Atributo target en el elemento link.
  • Atributo nohref en el elemento area.
  • Atributo profile en el elemento head.
  • Atributo version en el elemento html.
  • Atributo name en los elementos img y a. Para obtener un comportamiento similar se recomienda usar id.
  • Atributo scheme en el elemento meta.
  • Atributos archive, classid, codebase, codetype, declare y standby en el elemento object.
  • Atributos valuetype y type en el elemento param.
  • Atributo language en el elemento script.
  • Atributo summary en el elemento table.
  • Atributos axis y abbr en los elementos td y th.
  • Atributo scope en el elemento td.

Para ver los cambios de una versión a otra, aparte de la guía de referencia de w3school, os adjunto un PDF Cheatsheet sobre HTML5: Guía de Referencia HTML5 en PDF

Otros cambios

Hay diversos elementos que no se eliminan por su extendida fama, pero que siendo un tanto ortodoxos deberían eliminarse. Para evitar esto los que están escribiendo el estándar han tenido que redefinir su definición, de tal forma que se tratan de manera similar pero semánticamente son diferentes.

Un ejemplo muy claro es u e i, muy usados pero que progresivamente pierden importancia frente a strong y em. Estos dos elementos, que indicaban negrita y cursiva respectivamente, pasan a definirse de una manera muy vaga para indicar un texto diferente en alguna manera al texto normal. Otros elementos se redefinen, particularmente me resulta curioso que se mantenga small mientras big se elimina. De cualquier manera, no es demasiado relevante para los desarrolladores web, en el sentido de que podrán seguir usándolos como ahora.

Os dejo un enlace dónde podéis ver ejemplos claros de la capacidad que tiene HTML5:
Ejemplos demos HTML5 (Podras seleccionar el que quieras ver).

Conclusiones

Tal y cómo habéis ido viendo, las novedades de HTML5 se centran en facilitar la implementación de aplicaciones web, avanzar hacia la web semántica y limpiar un poco toda la basura heredada de las anteriores versiones de HTML. Aunque todo eso parezca lejano, lo cierto es que muchos navegadores ya implementan algunas partes sueltas de HTML5, y ya existen varias páginas experimentales que juegan con estos elementos. Por ejemplo, cerramos este minucioso especial precisamente en el día en que Firefox 3.5 es lanzado, pero Safari, Opera, Chrome e incluso IE8 ya soportan algunas cosas.

Ahora queda preguntarnos, ¿cuándo se acabará este estándar? Precisamente no hay ninguna fecha, y la condición para que HTML5 se considere estándar es, según la W3C, que al menos un navegador implemente todo HTML5 correctamente. De esta manera se asegura que todo el estándar es factible, que puede ser implementado. Para esto puede quedar dos o tres años, si todo va bien, pero nada es seguro.

Fuente: Anexom

Las novedades de HTML 5 (Parte 1)

HTML5 está llamada a ser el reemplazo del actual (X)HTML. Precisamente en un momento en el que la web está lo suficientemente madura, este estándar aprende de los errores cometidos e intenta solucionar la mayoría de problemas con los que un desarrollador web se encuentra. Como muchas de sus novedades son interesantes y afectan directamente a la futura web, vamos a comentar en varios artículos los cambios más importantes, empezando por este artículo donde comentaremos los nuevos elementos.

Antes de seguir habría que aclarar que HTML5 sigue en borrador y lo seguirá estando durante algunos años más. El enfoque general ha cambiado bastante respecto a versiones anteriores de HTML, añadiendo semántica y accesibilidad implícitas, especificando cada detalle y borrando cualquier ambigüedad. También se tiene en cuenta que muchas páginas web actuales son dinámicas, pareciéndose más a aplicaciones que a documentos. Algo básico es que HTML5 está definido en base al DOM (la representación interna de una web con la que trabaja un navegador), dejando de lado la representación “real”, definiendo a la vez un estándar HTML y XHTML.

Mejor estructura

Hoy en día se abusa bastante del elemento div, que nos permite estructurar una web en bloques. En HTML5 hay varios elementos que sirven para estructurar mejor una página web, estableciendo qué es cada sección, y reemplazando en muchas ocasiones a div. Con este extra de semántica, será mucho más coherente y fácil de entender por otras personas. Y lo que es más importante, será trivial de entender para una máquina, dándole más importancia a unas secciones y pudiendo jugar con esos datos automáticamente. Concretamente, la tarea de un buscador será mucho más fácil, pero cualquier aplicación que “lea” páginas web se beneficiará. Estos son los elementos:

  • section representa una sección “general” dentro de un documento o aplicación, como un capítulo de un libro. Puede contener subsecciones y si lo acompañamos de h1-h6 podemos estructurar mejor toda la página.
  • article representa un contenido independiente en un documento, el caso más claro son las entradas de un blog o las noticias de un periódico online. Así, dentro de la portada podremos tener varios artículos demarcados semánticamente, por lo que una herramienta puede extraerlos fácilmente.
  • aside representa un contenido que está muy poco relacionado con el resto de la página, como una barra lateral. Esencial para delimitar el contenido “importante” del contenido “de apoyo”, haciendo más caso al primero que al segundo.
  • header representa la cabecera de una sección, y es de suponer que se le dé más importancia que al resto, sobre todo si la sección es un artículo.
  • footer representa el pié de una sección, con información acerca de la página/sección que poco tiene que ver con el contenido de la página, como el autor, el copyright o el año.
  • nav representa una sección dedicada a la navegación entre el sitio, como la típica barra superior de los periódicos.

HTML5 estructurado

En la anterior imagen vemos un ejemplo de cómo cambiaría un documento escrito en HTML normal a HTML5 con estos elementos.

Mejores formularios

El elemento input ha sido ampliado y ahora permite todos estos tipos de datos:

  • datetime, datetime-local, date, month, week, time, para que indicar una fecha/hora.
  • number para que el usuario indique un número.
  • range para indicar un rango entre dos números.
  • email para indicar un correo electrónico.
  • url para indicar una dirección web.
  • search para indicar una búsqueda.
  • color para indicar un color.

Lo más interesante de esto es que los navegadores podrán implementar interfaces específicas para cada tipo de dato, por ejemplo una fecha o un color se podrán indicar de manera directa e intuitiva. Otro ejemplo sería el teclado del iPhone, que muestra unos símbolos u otros dependiendo de si es un texto normal, un email (añade @ y el punto) o una url (añade la barra y el punto com), y que por tanto gana mucho con este estándar.

Otros elementos importantes

  • audio y video sirven para incrustar un contenido multimedia de sonido o de vídeo, respectivamente. Sin duda uno de los añadidos más interesantes, ya que permite reproducir/controlar vídeos y audios sin necesidad de plugins como el de Flash. Se tratan de manera totalmente nativa como cualquier otro elemento, por ejemplo se pueden incluir enlaces o imágenes dentro de un vídeo. Aunque las implementaciones actuales son un tanto ineficientes, se espera que en un futuro próximo se optimicen. Portales de vídeo como Youtube o Dailymotion ya están empezando a mostrar que un futuro sin Flash es posible (¡y necesario!).
  • embed sirve para contenido incrustado pero no nativo, sino ejecutado por plugins como el de Flash. Aunque embed está soportado por casi todos los navegadores desde hace tiempo, es ahora cuando entra parte del estándar y evita el infierno/pelea entre object y embed.
  • canvas es un elemento complejo que permite generar gráficos, dibujando elementos dentro de él. Aunque nunca hayas oído hablar de él, seguro que lo has usado alguna vez, por ejemplo de Google Maps. Es un elemento muy potente que dará bastante que hablar en el futuro, y que será el culpable de aplicaciones web espectaculares.

Más elementos

  • dialog se plantea para escribir conversaciones, por ejemplo para transcripciones de chat.
  • figure se plantea para asociar un contenido multimedia (una foto, un vídeo, etc) a un título o leyenda.
  • mark representa un texto resaltado, por ejemplo para resaltar una búsqueda.
  • meter representa una medida, como el número de KB. Tiene más sentido si lo unimos con…
  • progress representa el estado de una tarea, y se puede usar por ejemplo al subir un documento o al realizar varias tareas pesadas. Esto permitirá barras de tareas personalizadas y potentes.
  • time representa una fecha o una hora.
  • command representa un comando que el usuario puede ejecutar en su navegador.
  • output representa una salida de un programa, probablemente ejecutado directamente en el navegador, como una calculadora.
  • datagrid representa datos de manera interactiva y permite trabajar dinámicamente con información y cambiar la página respecto a esa información. Será útil sobre todo si se quiere trabajar con aplicaciones que necesiten de bastantes datos a la vez en el lado del cliente.

Ahora vamos a comentar los nuevos y mas interesantes atributos HTML 5 en esta nueva versión. También hay que tener en cuenta que estos no son todos los cambios, solo he seleccionado los relevantes para el día a día de un desarrollador web. Por último, habría que distinguir entre los atributos que solo afectan a un subconjunto de los elementos y los globales, que afectan a cualquier elemento.

Nuevos atributos

Los elementos ya existentes añaden nuevos atributos que permiten hacer cosas muy interesantes. Los más importantes o novedosos son:

  • Atributo ping para el elemento a. Este atributo contiene una lista de URLs, las cuáles serán llamadas cuando un usuario haga click en ese enlace. Por ejemplo, un uso práctico sería para estadísticas.
  • Atributo autofocus para los elementos de un formulario. Indica qué elemento de un formulario debe ganar el foco al cargar una página. Por ejemplo, en la página principal de Google la cajita de texto gana el foco automáticamente para ayudarnos a escribir sin usar el ratón.
  • Atributo form para los elementos de un formulario. Indica a qué formulario pertenece este elemento, y permite poner un elemento de un formulario en cualquier parte de una página. Tal y como está ahora, todos los elementos deben ir dentro de <form>.
  • Atributo required para los elementos de un formulario. Indica que es obligatorio rellenar un valor para enviar ese formulario, algo que hoy en día se comprueba con Javascript o en el servidor.
  • Atributos autocomplete, min, max, multiple, pattern y step para los elementos input. Estos atributos indican que el valor del input debe cumplir ciertos requisitos, por ejemplo seguir cierto patrón.
  • Atributo novalidate para el elemento form. Esto deshabilitará la validación de sus elementos, algo útil si se usa dinámicamente (es decir, con Javascript, activando y desactivándolo).
  • Atributos formaction, formenctype, formmethod, formnovalidate, y formtarget para los elementos de un formulario. Estos atributos modifican los atributos del formulario si el elemento es usado (por ejemplo un botón es pulsado o un input es rellenado). Esto permite que dependiendo qué botón usemos podemos tratar el formulario en diferentes páginas usando solo un formulario, algo complicado en HTML4.
  • Atributo scoped en el elemento style. Esto permite aplicar estilos solo a cierto subárbol del documento. Por ejemplo, imagina que tenemos un elemento con id igual a “cabecera”; si añadimos el atributo scoped a un style, los estilos contenidos en él solamente se aplicarán a ese elemento y a sus hijos.
  • Atributo async en el elemento script. Con este atributo especificamos que el código interno se puede ejecutar en cualquier momento de la página, mejorando la velocidad de carga.
  • Atributo manifest en el elemento html. Esto permite indicar nuevos elementos, sobre todo será útil en aplicaciones web.
  • Atributo reversed en el elemento ol. De esta forma la lista será numerada en orden descendiente (3, 2, 1…).

Nuevos atributos globales

Además de los anteriores tenemos otros atributos que pueden ser aplicados a todos los elementos de un documento. Esto lo hacen especialmente conveniente si vamos a usar Javascript para modificarlos dinámicamente, ya que no tenemos que comprobar el tipo de elemento para usar los atributos comunes.

  • Atributos id, class, style, title, lang y tabindex, ya existentes pero ahora permitidos en todos los elementos. Pues eso, los atributos más usados se vuelven universales.
  • Atributo contenteditable, para indicar que el elemento es editable por el usuario. Muy interesante, ya que ahora podremos editar cualquier cosa de manera trivial para el desarrollador, no solamente los elementos de un formulario.
  • Atributo contextmenu, para indicar un menú contextual sobre un elemento. Como veis, está todo muy pensado para las aplicaciones web.
  • Atributos data-*, donde el asterisco puede ser cualquier nombre. Esto permite atributos personalizados, que luego podremos obtener con Javascript.
  • Atributo draggable, para indicar que un elemento se puede arrastrar.
  • Atributo hidden, para ocultar un elemento que ya no interesa.
  • Atributo spellcheck, para indicar si el contenido de un elemento debe ser pasado por el corrector ortográfico.

Os dejo con una guía de referencia de HTML 5 muy completo de W3Schools. Dónde también se pueden ver las diferencias entre la antigua versión HTML 4 y la nueva:
Guía de Referencia HTML 5

Fuente: Anexom

Recomendaciones de accesibilidad web en páginas dirigidas a personas mayores

Una página web poco usable es un obstáculo para todos los usuarios. Sin embargo, una persona joven, que disponga de un buen equipo, buena conexión y experiencia en el uso de Internet, tal vez pueda superar los obstáculos sin excesivos contratiempos. No ocurre lo mismo con las personas mayores. Además de su poca familiaridad con la tecnología, tienden a acumular varias barreras de acceso a la información, si bien son más pacientes y persistentes que los jóvenes, lo que compensa en parte su desventaja frente a ellos (El País, 2005)

En este estudio presentado en el año 2008, se analizan los principales problemas que se encuentran las personas mayores en su acceso a Internet.

Algunos de los problemas que suelen encontrarse las personas mayores sin experiencia previa en el uso de Internet, y que para otros sectores de la población tal vez no tuvieran especial trascendencia, son:

  • Las ventanas emergentes (pop ups) les desconciertan, al igual que cualquier elemento que actúe autónomamente. Tienden a culparse y pensar que han hecho algo mal, y tratan de interactuar en la nueva ventana en lugar de hacerlo con la original.
  • Tienden a bloquearse ante una película de introducción en flash de bucle infinito, especialmente si la única forma de comenzar la interacción es descubrir un enlace poco visible que les lleve a los contenidos de la página en cuestión.
  • La barra de scroll les desconcierta. Les cuesta intuir que hay más información en una página que la que se ve en ese momento en la pantalla y que han de usar la barra de scroll para visualizarla. Si esa barra de scroll, además, no es estándar, se agudiza el problema.

Del análisis de estos problemas se desprende la necesidad de seguir algunas recomendaciones de diseño orientadas a sitios para personas mayores:

Estas son algunas recomendaciones

  • Hay que cuidar los aspectos cognitivos, especialmente evitar distracciones provenientes de: abuso de colores llamativos o animaciones; utilización de imágenes no relevantes para el texto; sobrecarga de elementos en la página. El texto ha de ser sencillo, directo, breve, visible y legible.
  • Los mayores pueden no estar familiarizados con el hipertexto. Por ello se debe ofrecer ayudas a la navegación; brindar una alternativa de navegación secuencial (“Atrás” “Adelante”). Existen varias recomendaciones para un corecto uso de los enlaces:
    • Señalar bien los enlaces usando botones grandes o reforzándolos con iconos
    • Usar palabras de acción (decir lo que va a pasar al pinchar).
    • Hay que intentar hacerlos consistentes y obvios y emplear terminología simple
    • Usar tipos de letra escalables
    • que la navegación sea sencilla y no posea accesos redundantes.
  • No se debe emplear menús desplegables. Lo que los usuarios mayores no ven expresamente (la existencia de un submenú oculto), es difícil que lo puedan imaginar. Se debería utilizar el atributo de cambio de estado al pasar el ratón sólo para ayudar a identificar los enlaces.
  • Presentación de la información: Emplear lenguaje positivo, claro, familiar; usar voz activa; lenguaje simple, ofrecer glosario de términos técnicos; crear secciones y ofrecer organización estándar, usar bloques de contenido cortos.

El estudio completo está en la siguiente página web http://www.nosolousabilidad.com

60 Buenas prácticas Web Móvil

Cuando se habla de Web Móvil se está haciendo referencia a una Web en la que el usuario puede acceder a la información desde cualquier lugar, independientemente del tipo de dispositivo que utilice para ello.

Dispositivo móvil mostrando la Web de la W3C

La Web móvil se presenta como un auténtico reto tanto para usuarios como para desarrolladores ya que, por un lado, el usuario encuentra problemas al intentar acceder a los sitios Web desde los dispositivos móviles, y por otro, los proveedores de contenido encuentran dificultades para crear sitios Web que funcionen adecuadamente en todos los tipos de dispositivos y configuraciones. Con la Web Móvil se intenta llegar a más usuarios y que ellos puedan acceder desde cualquier dispositivo móvil a la Web.

Este documento especifica las Mejores Prácticas para el contenido Web de dispositivos móviles. El objetivo principal es mejorar la experiencia del usuario de la Web cuando se accede desde estos dispositivos.

Las recomendaciones se refieren a la entrega de contenido y no a los procesos por los cuales se crea, ni a los dispositivos o agentes de usuario al que se entrega.
Principalmente a los desarrolladores y operadores de sitios Web. Con este documento se intenta familiarizados con la creación de sitios Web, y tener una familiaridad con las tecnologías que intervienen, tales como servidores Web y HTTP.

Buenas prácticas Web Móvl

  • Consistencia temática: Mantener una temática coherente para los distintos dispositivos móviles.
  • Capacidades: Explotar las capacidades del dispositivo para proporcionar una mejor experiencia al usuario.
  • Deficiencias: Toma las medidas oportunas para evitar implementaciones deficientes.
  • Pruebas: Lllevar a cabo las pruebas sobre los dispositivos, así como los emuladores.
  • URLs: Usar URLs cortas.
  • Barra de Navegación: Oferecer como mínimo un menú navegación en la parte superior de la página.
  • Equilibrio en los enlaces: Tener en cuenta el equilibrio entre tener demasiados enlaces en una página y pedir al usuario a seguir demasiados enlaces para llegar a lo que están buscando
  • Navegación: Proporcionar mecanismos de navegación coherentes.
  • Claves de Acceso (Acces Keys): Asignar claves de acceso a los enlaces en los menús de navegación y a los enlaces que son visitados frecuentemente.
  • Identificar los enlaces: Identificar claramente el objetivo de cada vínculo.
  • Mapa de imágenes: No usar mapa de imágenes a menos que sepas que el dispositivo lo soporta eficazmente.
  • Pop-Ups o Ventanas emergentes: No utilices Pop-Ups sin informar al usuario.
  • Auto Refresh: No utitlizar auto refresh (auto refrescar página) en la página a menos que se le haya informado al usuario.
  • Redireccionamiento: No utilices marcar para redirigir las páginas automaticamente. Configura el servidor para que el mismo lo haga de forma automática.
  • Recursos externos: Mantén el número de recursos externos al mínimo.
  • Contenedido conveniente: Asegúrese de que el contenido es conveniente para su utilización en un contexto móvil.
  • Claridad: Utiliza un lenguaje claro y sencillo.
  • Limitación del contenido: Limite el contenido a lo que el usuario ha solicitado.
  • Tamaño de páginas usable: Mantener el peso de página limitado para que no ralentice la navegación del usuario.
  • Tamaño de páginas limitado: Asegurarse de que el tamaño global de la página es adecuado para las limitaciones de memoria del dispositivo.
  • Desplazamiento o Scroll: Límite el desplazamiento de la página en una dirección, en el caso de que el desplazamiento secundario se pueda evitar.
  • Imágenes para el espaciado: Nunca utilicemos imágenes para el espaciado.
  • Tamaño de imágenes: No utitlizar imágenes con una alta resolución y peso elevados. Para una mayor prestación y carga del dispositivo.
  • Uso del color e imágenes: Asegurarse que la información que proporcionamos con colores e imágenes también esta disponible sin el uso de estas.
  • Contraste de color: Mantener un contraste claro entre el color de fondo y el color del contenido.
  • Imágenes de fondo: Cuando utilices imágenes de fondo aseguúrate de que el contenido sigue siendo legible en el dispositivo.
  • Título de página: Ofrecer un breve pero descriptivo título de la página.
  • No Frames: No utilizar frames (marcos) en ninguna página.
  • Estructura: Usar las características del lenguaje para crear una estructura lógica en el documento.
  • Tablas: Antes de usar las tablas asegúrate de que el dispositivo las soporte eficazmente.
  • Tablas anidadas: No utilizar tablas anidadas.
  • Tablas para diseño: No utilices las tablas para diseñar la página.
  • Tablas alternativas: Siempre que sea posible, utiliza una alternativa a la presentación de datos o presentación tabular.
  • Texto alternativo: Proporcionar un texto alternativo para todo elemento no textual.
  • Objects o Scripts: No utilizar objetos incrustados o script, ya que actulamente la mayoría de los dispositivos no los soportan.
  • Especificación en el tamaño de las imágenes: Especifica el tamaño de las imágenes a descargar para aquellas que tengan un peso alto.
  • Redimensionamiento de imágenes: Cambiar el tamaño de las imágenes en servidor para aquellas que tengan un peso demasiado alto.
  • Marcado Válido: Crea documentos que validen satisfactoriamente.
  • Medidas: No utilizar medidas en píxeles ni unidades absolutas..
  • Uso de CSS: Utiliza una hoja de estilos para controlar la presentación y disposición de la página, a menos que el dispositivo no lo soporte.
  • Soporte CSS: Organiza los documentos de modo que si es necesario puedan ser leídos sin hojas de estilo.
  • Tamaño de la hoja de estilos CSS: Mantener y minimizar el tamaño de la hoja de estilos.
  • Minimizar: Utilizar un marcado conciso y eficiente.
  • Soporte de formatos: Enviar contenido en un formato que se sepa que es soportado por el dispositivo.
  • Formato preferido: Siempre que sea posible, enviar el contenido en un formato preferido.
  • Codificación de caracteres: Asegúrese de que la codificación de caracteres del documento es soportado por el dispositivo.
  • Uso de la codificación: Indicar la codificación de caracteres que se utilice.
  • Mensajes de Error: Proporcionar información útil en los mensajes de error.
  • Cookies: No se basan en cookies disponibles.
  • Caché: Proporcionar la información en caché de las respuestas HTTP.
  • Fuentes: No contar con la herencia en estilo de fuente.
  • Minimizar acciones del teclado: Matener el número de pulsaciones o acciones del teclado del dispositivo al mínimo, para una mayor rapidez del usuario.
  • Inputs o entradas de texto libre: Evitar la entrada de texto libre, siempre que sea posible.
  • Valores por defecto: Ofrecer pre-seleccionado los valores por defecto cuando sea posible.
  • Inputs: Especifique un modo de entrada de texto por defecto, el lenguaje y/o formato de entrada, si el dispositivo se sabe lo soporte.
  • Orden de tabulación: Crear un orden lógico a través de los enlaces, controles de formulario y objetos.
  • Cotrol de Labels: Etiqueta todos los controles de forma adecuada y explícitamente asociados con las etiquetas..
  • Posición de controles: Posicionar las etiquetas de modo que se establecen correctamente en relación a la forma que se refieren a los controles.

Por útlimo os proprociono el validador de las Buenas Prácticas en Web Móvil:
Validador Web Móvil

Fuente: W3C Web Móvil

Reseteadores de estilos para CSS

Todos nos hemos encontrado con el problema de la diferencia de estilos por defecto que hay entre los distintos navegadores. Sobretodo con “nuestro amigo” IE6. Para evitar minimizar ese problema, podemos establecer una serie de estilos que reseteen la página y la dejen con unos estilos iguales de partida para todos los navegadores.

Con el reseteo de estilos, nos aseguramos un comportamiento parecido en los distintos navegadores. Por supuesto, esto no va a hacer que si maquetamos para el navegador X, se vea todo correcto en el navegador Y. Pero si nos aseguramos que los elementos partan con unos estilos iguales.

Por ejemplo, ¿como se comporta por defecto una lista no numerada tipo “ul” en los distintos navegadores? Pues cada uno hace las cosas a su manera, cambia el bullet, los margenes, el padding, etc. Con el reseteo, podemos dejar la lista “limpia” para aplicar nuestros propios estilos.

Yo uso el de Eric Meyer’s CSS Reset y me va bastante bien.

Aqui tienen una buena colección de reseteadores.

Prácticas penalizadas por google

El modelo de negocio de google, consiste en ofrecer a sus usuarios enlaces pertinentes y buenos contenidos, por ello si permite que sus páginas de resultados estén llenas de sites poco pertinentes, posicionadas allí por administradores de webs con intenciones poco éticas, podría perder a sus usuarios. Por ello, Google y en general el resto de buscadores, se afanan por descubrir estos abusos y pueden penalizar algunas de las páginas que utilizan métodos fraudulentos para posicionarse, hasta el punto de eliminar webs completos de sus bases de datos. Ahora veremos algunas de estas malas praxis o malas prácticas:

  • Texto oculto (o invisible): consiste en añadir palabras clave con el mismo color que el fondo o uno muy similar para aumentar la densidad de palabras clave. El primer problema es que los buscadores analizan el código, de manera que si detectan que el fondo es del mismo color que el texto, se dan cuenta de que es una práctica engañosa y pueden penalizarnos o, en el mejor de los casos, no tener en cuenta esas palabras clave. Si hacemos contenidos de calidad, podemos aumentar esta misma densidad mediante textos visibles.
  • Enlaces ocultos: similar a la anterior, pero con enlaces. Se trata de crear enlaces con otras páginas para “recomendarlas” a Google sin ser vistos por los internautas, de manera que podamos posicionar o bien nuestros nuevos sitios web desde sitios que controlamos y ya tenemos indexados o bien sitios de terceros que nos pagan por ello. No se recomienda.
  • Spam en foros, blogs o libros de firmas: se trata de añadir enlaces a nuestra web a los comentarios que podamos hacer en blogs, foros o libros de firmas que poco o nada tengan que ver con nuestro site y sin resultar pertinentes. No hay nada de malo en intervenir en un foro relacionado con nuestros contenidos y recomendarlos allí (de hecho, es una buena línea de trabajo), pero sí en conseguir enlaces fáciles, a base de hacer comentarios del estilo “Mola” con el único objetivo de firmar con un enlace a nuestro web. Este tipo de spam está cada día más penalizado.
  • Abuso de palabras clave (keyword stuffing): se trata de diseñar una página con el objetivo de posicionarla en el buscador, cuyo contenido sea nicamente las keywords que nos interesan . Esta práctica está severamente penalizada. Se puede aplicar también cuando abusamos de la densidad de texto. Es decir, si repetimos las palabras clave de manera forzada (por ejemplo, repitiendo mucho la misma palabra en el título o title)
  • Cloaking: trata de generar una programación en el principio de la página que haga que cuando la visita Googlebot genere unos contenidos diferentes a los que genera cuando la visita una persona. De este modo, no veremos lo mismo desde un navegador que si accediéramos a ella siendo la araña de un buscador, en cuyo caso encontraríamos una retahíla de palabras clave y enlaces sin sentido para un internauta, pero con una gran densidad de palabras clave para un robot.
  • Páginas doorway: También conocidas como ‘gateway pages’. Es muy parecido al cloaking, pero, en lugar de generar un contenido u otro según si detectamos la visita de una araña o de una persona, lo que hacemos es redireccionar a otra página cuando detectamos que quien nos visita es una persona. Por tanto, la página se convierte en una página diseñada expresamente para buscadores, con una alta densidad de palabras clave. La regla sigue siendo ésta: debemos diseñar nuestras páginas para personas, no para buscadores.
  • Granjas de enlaces o link farms: puesto que una de los elementos mas importantes para posicionar es conseguir enlaces, algunas compañías los comercializan desde webs que sólo han sido creadas, con este objetivo. Es decir, webs que únicamente contienen enlaces (granjas de enlaces). No debemos recurrir a ellas. Cuando buscamos enlaces, debemos intentar conseguirlos en sitios con buenos contenidos que puedan gustar a Google, con un buen rango de pagina y si es posible con afinidad temática respecto a nuestro site.
  • Dominios sombra: Algunas firmas ‘SEO’ crean diversos sitios web -utilizando diferentes dominios- para apuntar desde ellos a las páginas web de los clientes, mediante redireccionamientos engañosos. Una vez que la relación con el cliente ha finalizado, la firma ‘SEO’ apuntará a otro de sus clientes, quizá al de la competencia del primero. De esta manera, el primer cliente no solo ha pagado la construcción de varios sitios web que en realidad son propiedad de la firma ‘SEO’, sino que en un futuro podrá ver cómo su competencia consigue mejor posicionamiento. Debemos evitar este tipo de prácticas. Si somos una firma ‘SEO’, porque seguramente Google eliminará estos sitios web (y los de nuestros clientes) de sus resultados. Si somos una empresa que ha contratado los servicios de un ‘SEO’, deberemos fijarnos dónde está consiguiendo los enlaces hacia nuestras páginas.

Conclusiones: en publicidad se dice que “cuesta mucho vender un buen producto, vender un mal producto es imposible”, lo mismo pasa en el web. En este momento los PageRank son cada vez más fácilmente manipulables por SEO con pocos escrúpulos. En mi opinión, para diferenciarnos de el resto, lo mejor que podemos hacer es no obsesionarnos tanto con posicionar nuestra página y ofrecer a los usuarios páginas semánticas y con buenos contenidos, ese es el secreto. Por supuesto hay una serie de recomendaciones y buenas prácticas que ayudarán a los buscadores a indexar mejor nuestros contenidos, son cosas lógicas, que no cuesta mucho aplicarlas y que no dañarán la estructura semántica de nuestro site. Estás pequeñas técnicas y trucos los veremos en próximos post.