Inserta videos de youtube con HTML Válido

16 de Junio de 2009 | Etiquetas: , , , | Categoría: html

El código que indican en youtube para insertar el video en tu página web, es un completo desastre, intenta pasar tu web por el validador w3c cuando tengas un video de youtube insertado y verás como explota xD

El código que nos da youtube es el siguiente:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/5AFasYNOifk&amp;hl=es&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5AFasYNOifk&amp;hl=es&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Y algunos de los errores que nos devuelve el validador son:
- General entity hl not defined and no default entity.
- Attribute type exists, but can not be used for this element.
- Attribute allowscriptaccess is not a valid attribute.
- Attribute allowfullscreen is not a valid attribute.
- Attribute width exists, but can not be used for this element.
- Attribute height exists, but can not be used for this element.

El primer error aparece porque en la url al video se pasan parámetros enlazados con un &, pero en html el & indica el comiendo de una entidad, como puede ser por ejemplo &nbsp; (un espacio en blanco), para solucionar esto debemos sustituir los & que aparecen en la url por su entidad &amp;.

El resto de errores son causa de etiquetas con propiedades no reconocidas o en desuso, para solucionar esto tenemos el código que os copio a continuación, un código para insertar videos de youtube con html válido:

<object width="425" height="344" type="application/x-shockwave-flash" data="http://www.youtube.com/v/5AFasYNOifk&amp;hl=es&amp;fs=1">
<param name="movie" value="http://www.youtube.com/v/5AFasYNOifk&amp;hl=es&amp;fs=1" />
</object>

Tened en cuenta que debéis cambiar el ancho (width) y alto (height) a vuestro antojo, y la URL que escribo de ejemplo por la del video que queráis insertar :)

Twittea esto Guardalo en Delicious Compartelo en Facebook

HTML: Tablas accesibles y usadas donde tiene que ser

27 de Mayo de 2009 | Etiquetas: , , , | Categoría: html

Está mas que claro, que usar tablas para distribuir, organizar, maquetar un sitio es algo pasado de moda.
Para eso están los divs y el css que son mucho más molones y puedes hacer formas imposibles, recuerda los layouts que comentábamos hace unos meses.

Pero eso no significa que no podamos poner ninguna tabla en nuestra web, no os asustéis porque los diseñadores/maquetadores vayan chillando por medio mundo: ¡Muerte a las tablas! Sólo les deseamos la muerte a las tablas mal formadas, a las tablas no accesibles y a las tablas que no son usadas cómo tal.

Y es que si queremos mostrar datos de manera tabular, ¡Qué mejor que una tabla!

Para esas veces, en las que sí podemos incluir una tabla en nuestra web, vamos a crearlas de manera que sean accesibles y válidas para w3c.

Un ejemplo de estructura simple de una tabla sería el siguiente:

<table>
	<tr>
		<td></td>
	</tr>
</table>

Donde <tr> (table row) corresponde con una fila (row), y <td> (table data cell) con una celda (data cell). El número de celdas dentro de una fila, corresponderá con el numero de columnas de nuestra tabla.

Sabiendo esto, vamos a definir mejor nuestra tabla:

<table summary="Codigo de paises con color asociado.">

En la etiqueta <table> debemos indicar (si o si) el atributo summary, describiendo el contenido de la tabla.

<caption>ID de los paises RGB</caption>

<caption> nos sirve definir el titulo de la tabla.

	<thead>
		<tr>
			<th>ID</th>
			<th>Pais</th>
			<th>Color</th>
		</tr>
	</thead>

<thead> contiene las cabeceras de la tabla.
<th> corresponde a la celda ubicada en la cabecera de la página. Viene bien ponerle esta etiqueta ya que luego nos será más facil aplicarle un estilo específico al titulo y no a todas las celdas.

	<tfoot>
		<tr>
			<th>ID</th>
			<th>Pais</th>
			<th>Color</th>
		</tr>
	</tfoot>

<tfoot> contiene el pie de la tabla, esta etiqueta la tenemos que poner antes que <tbody> aunque se mostrará después, si no lo hacemos así, no será válida (es un poco raro, si).

	<tbody>
		<tr>
			<td>ES</td>
			<td>España</td>
			<td>#990000</td>
		</tr>
		<tr>
			<td>FR</td>
			<td>Francia</td>
			<td rowspan="2">#000099</td>
		</tr>
		<tr>
			<td>IT</td>
			<td>Italia</td>
		</tr>
	</tbody>

<tbody> contiene el cuerpo de la tabla, cuando una tabla solo tiene un cuerpo (un grupo de datos, por asi decirlo) se puede omitir y se interpreta como cuerpo, todo lo que no sea cabecera.

En las etiquetas <th> y <td> tenemos algunos atributos para aplicar:
- abbr: contiene la descripcion del contenido de la celda.
- headers: contiene la id (si la hemos especificado) de la(s) celda(s) que actúa como cabecera de esta.
- scope: puede ser col o row, indica si es cabecera de una columna de celdas, o de una fila, no es obligatorio definirlo.
- colspan: especifica el numero de columnas que ocupa esta celda.
- rowspan: especifica las filas que ocupa esta celda.

Los demás atributos, como pueden ser el alto (height), el borde (border), la alineación (valign), etc, debemos definirlos aplicando estilos (css).

Y con esto ya deberíamos ser capaces de crear una tabla bien chula :D

Twittea esto Guardalo en Delicious Compartelo en Facebook

HTML: Crear un formulario estructurado, validado y accesible.

20 de Mayo de 2009 | Etiquetas: , , , | Categoría: Formularios

Me he dado cuenta de que tengo muchos artículos sobre cómo enviar y validar un formulario de contacto, pero en ninguno explico como se debe crear la estructura de éste. Ya sabéis, la parte en html.
Así que voy ha hacerlo aquí.

La etiqueta para indicar que vamos a crear un formulario es <form> y debe llevar los siguientes atributos:
name: para nombrarlo, identificarlo
method: indica el metodo elegido para enviar los datos, puede ser get (a través de la url) o post (de manera interna).
action: indica la ruta del archivo que va a recibir los datos enviados
enctype: indica el tipo de contenido, la añadimos solamente si trabajamos con recogida de archivos

<form name="contacto" method="post" action="#"><!-- contenido del formulario --> </form>

Dependiendo de si nuestro formulario tiene uno o varios temas, deberemos añadir la etiqueta <fieldset> para clasificar los apartados, y a su vez etiquetas <legend> para añadirle titulos a esos apartados.
Por ejemplo, un formulario de registro que pida información personal, información profesional e información de contacto.

<fieldset>
  <legend>Informacion personal</legend>
  <!-- aqui irian los campos -->
</fieldset>
<fieldset>
  <legend>Informacion profesional</legend>
  <!-- aqui irian los campos -->
</fieldset>
<fieldset>
  <legend>Informacion de contacto</legend>
  <!-- aqui irian los campos -->
</fieldset>

Como último paso de la estructura de nuestro formulario, pasamos a las etiquetas para relacionar los campos, cada campo debe tener una etiqueta <label> asociada con un texto de información sobre éste.
Para relacionar una etiqueta con un campo, debemos añadir al campo el atributo id con un nombre y a la etiqueta el atributo for con el nombre dado al campo a relacionar.

<label for="nombre">Nombre:</label> <input type="text" id="nombre" name="nombre"  />

En los campos del tipo input, textarea, select la etiqueta es recomendable que aparezca a la izquierda, en el resto (checkbox, por ejemplo) a la derecha. En los botones (submit, reset) no es obligatorio poner una etiqueta, de hecho es mejor no ponerlas.

Una vez aprendido esto ya podemos empezar a rellenar nuestro formulario, los campos mas utilizados son: campos de texto (1), casillas de verificación (2), botones de opción (3), áreas de texto (4), desplegables (5), campo de imagen (6), botón de reinicio del formulario (7), botón de envio del formulario (8).

<input type="text" id="" name="" />
<input name="" type="checkbox" id="" value="" />
<input name="" type="radio" id="" value="" />
<textarea name="" id=""></textarea>
<select name="" id=""><option value="">A<option><option value="">B<option></select>
<input type="image" name="" id="" />
<input type="reset" name="" value="Borrar" />
<input type="submit" name="" value="Enviar" />

Para conseguir un formulario un poco mas accesible, debemos colocar en todos los campos, los siguientes atributos:
accesskey: Asocia una tecla a un campo de nuestro formulario, por lo que podremos acceder a ese campo de manera más fácil / rápida.
tabindex: indica el orden por el que se desplazará el usuario al pulsar la tecla tabulación de su teclado.
Acceskey solo puede ser asociado en los campos: button, input, label, legend y textarea, para el resto de campos deberemos de agregar este atributo en su etiqueta <label>.

<input type="text" id="nombre" name="nombre" accesskey="n" tabindex="1" />

Y juntando todos los pasos, ya tenemos un formulario bien estructurado, validado con los estándares w3c y lo más importante, accesible.

Puedes ver un ejemplo online.

Podría contaros un poquito más, como que si tenemos muchas opciones en un select podemos agruparlas segun categorias con la etiqueta <optgroup>, pero cómo sé que la mayoría de vosotros ya estáis aburrido (o directamente no habéis llegado hasta aqui xD), doy por finalizado este artículo :D

Mas adelante explicaré un poquito como darle estilo (css) a los formularios, sin tener que usar etiquetas externas a las explicadas aquí, usease, sin tener que añadir tablas, ni párrafos, etc.

Twittea esto Guardalo en Delicious Compartelo en Facebook

Dale vida a tus formularios con LiveValidation

23 de Febrero de 2009 | Etiquetas: , , , , | Categoría: Formularios

LiveValidation es una pequeña biblioteca javascript, de código abierto, que permite darle un poco de vida a tu formulario.
En sólo dos líneas podrás validar los campos que quieras y con una multitud de condiciones.

Lo que hace, en general, es: valida el input que tu elijas con la condición que tú quieras, si no se cumple la condición muestra un mensaje indicándolo, y si sí se cumple muestra otro mensaje, pero está vez dándote las gracias.

live validation

Desde su web podéis ver los distintos ejemplos que nos ofrece y la forma de integrarlo en nuestro formulario, los mensajes que muestra se pueden cambiar fácilmente.
Yo ya lo he implementado en varios formularios y es muy fácil hacerlo, si alguien no lo consigue, comentarlo e intentamos solucionarlo.

Me ha encantado toparme con este recurso, seguro que más de uno le saca provecho ;)

Twittea esto Guardalo en Delicious Compartelo en Facebook

2 pages