Consideraciones a tener en cuenta con XHTML

– Los documentos deben ser gramaticalmente correctos:

  • Todos los elementos deben tener una apertura y un cierre.
  • Debe respetarse el anidamiento jerárquico durante el cierre de etiquetas: <p><b>x</b></p>

– Los nombres de los elementos, los atributos y sus valores por defecto deben escribirse en minúsculas:

<input type=’submitvalue=’Enviar’ />

– Los valores de los atributos deben ir entre comillas, ya sean sencillas ( ‘ ) o dobles ( ” ).

<table rows=5class=tabla_principal></table>

– Los atributos no pueden ser minimizados, es decir, su valor no puede omitirse por ningún motivo.

<input type=”checkbox” checked=”checked” id=”caja_verificacion” />

– Todas las etiquetas deben cerrarse de una de las dos formas válidas.

Etiquetas vacías:

  • <hr></hr>
  • <hr />

Etiquetas no vacías:

  • <p>Este es un parrafo</p>

– Los elementos de bloque no pueden ser declarados dentro de elementos en línea. El siguiente ejemplo es inválido: <b><div class=’ejemplo’>Error</div></b>

– El atributo alt siempre debe estar presente en un elemento img. Los textos deben ir enmarcados en etiquetas p.

– Los siguientes carácteres: &, <, ]]> y, interfieren con el documento XHTML motivo por el cual deben reemplazarse, incluso en URLs, por sus correspondientes entidades: & y <.

– Para bloques extensos de código que adolecen de la situación anterior es posible enmarcar dichos códigos entre un bloque CDATA, por ejemplo para el uso de script y style en línea. Esta necesidad no aplica para documentos externos.

<script>
<![CDATA[
// … contenido del script
]]>
</script>

– Los elementos deben usar el atributo id como su identificador de fragmento, incluso los que históricamente habían tenido el atributo name.

– Los atributos desaprobados por HTML 4.01 no son incluidos por XHTML. Por ejemplo, la siguiente expresión es inválida: <font color=”red”>texto</font>, debe escribirse de la siguiente manera: <span style=”color: red”>texto</span>.

– Los siguientes elementos no pueden estar compuestos por los dispuestos a continuación.

  • <a> no puede contener elementos <a>.
  • <pre> no puede contener elementos <img>, <object>, <big>, <small>, <sub>, <sup>.
  • <button> no puede contener elementos <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe>, <isindex>.
  • <label> no puede contener elementos <label>.
  • <form> no puede contener elementos <form>.

Para preservar la compatiblidad se realizan las siguiente recomendaciones.

– Para los elementos vacíos cuyo cierre es inmediato, incluya un espacio antes de la terminación: />. Ejemplo: <br />.

– Para los elementos no vacíos utilice la forma ampliada de cierre, en lugar de la minimizada, aunque estos no tengan contenido. Ejemplo: <p> </p>.

– Se debe evitar el encerrar los fragmentos de código JavaScript y las hojas de estilo entre comentarios (<!– –>) toda vez que su contenido se ignorará y no serán tenidos en cuenta.

– Deben evitarse los espacios extra en blanco y los saltos de línea en el valor de los atributos ya que son interpretados de manera incosistente por los diferentes clientes.

– Los posibles carácteres a utilizarse para crear los nombres de los atributos id deben ser: las letras minúsculas y mayúsculas, los números del 0 al 9, los guiones (-), los guiones bajos (_), los dos puntos (:) y el punto (.). El valor debe empezar siempre con una letra.

– Utilice conjuntamente los atributos lang y xml:lang entendiéndose que xml:lang tiene precedencia. Ejemplo: <a href=”enlace.html” lang=”es” xml:lang=”es”>

– Para las entidades que así lo requieran utilice atributos id y name sabiendo que XHTML es compatible con el primero y no con el segundo.

– Para especificar la codificación de carácteres de un documento se sugiere utilizar las dos formas posibles: en la declaración XML y como una sentencia meta http-equiv.

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<meta http-equiv=”Content-type” content=’text/html; charset=”UTF-8″‘ />

– Algunos atributos booleanos tienen tienen problemas con la forma ampliada que requiere XHTML en clientes que soportan especificaciones anteriores a HTML 4.0.

compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

– Para efectos de manipulación DOM, HTML retorna los nombres de los elementos y atributos en mayúsculas, XML tal y como fueron escritos y en XHTML se escriben en minúsculas.

Leave a Reply

Your email address will not be published. Required fields are marked *