[Indice]


¿Qué es el XHTML?

En el año 2000 la W3C lanzó la primera especificación del XHTML, que no es otra cosa que una reformulación del HTML 4.0, utilizado todavía en millones y millones de páginas. Nace el nuevo estándar para suplir las carencias que con el tiempo ha ido mostrando el HTML, que inicialmente no fue diseñado para lo que ahora se le demanda, razón por la que durante toda su historia no ha parado de incluir nuevas prestaciones, y han sido éstas precisamente las que han provocado algunos problemas de compatibilidad entre las distintas nuevas plataformas. En efecto, las páginas web ya no se ven solamente desde confortables pantallas de ordenador de 15 ó 17 pulgadas, han surgido multitud de nuevos receptores de minúsculo tamaño, con diferentes sistemas operativos y nuevas necesidades de navegación, lo que ha obligado a establecer un estándar más rígido a la hora de programar, y a que los estilos sean fácilmente modificables. Otra razón para adoptar unas normas de escritura más estrictas, se debe a que los nuevos dispositivos han abierto el acceso a internet a personas con discapacidades muy variadas, y los programas especiales que se utilizan para convertir las páginas normales a sus específicas necesidades, tienen serios problemas sin una sintaxis más respetuosa con los estándares. En suma, que la gran facilidad que existía para escribir páginas web, tiende a desaparecer.

Así pues, el XHTML es prácticamente igual que el HTML, y tal como su nombre indica, es simplemente una versión eXtendida del mismo, pero observando algunas modificaciones de sintaxis y eliminando algunos elementos de estilo que pasan a definirse por otros medios en la CSS, que se convierte en una compañera inseparable del nuevo estándar.

Estas son las reglas de sintaxis más notables:

Los navegadores más conocidos actualmente no estan todavía específicamente diseñados para trabajar con XHTML, y es por esto por lo que las nuevas normas de sintaxis que hemos visto, en realidad no son como debieran ser. El poner la barra de cierre después de un espacio, es simplemente para conseguir la compatibilidad con estos navegadores, que no sabrían, de momento, qué hacer con <br/> sin escribir el espacio antes de la barra. Dado el enorme número de páginas escritas en HTML que existe, los navegadores tendrán que soportar durante bastante tiempo esta sintaxis ambivalente, ya que no sería práctido tener que utilizar un navegador diferente para cada tipo de páginas.

Buena prueba de esto es el enredo que hay que escribir para poder incrustar un bloque JavaScript en una página XHTML que deba validar código estricto. Por supuesto, se utiliza también una nueva sintaxis para el elemento <SCRIPT>, pero además habrá que "adornarla" un poco para que no genere errores de JavaScript ni de validación XHTML. Sea, por ejemplo, este JavaScript en una página HTML:


<SCRIPT LANGUAGE="JavaScript">
function mensaje() {
  alert('Prueba de JavaScript con XHTML')
}
</SCRIPT>
En XHTML tendremos que escribirlo asi:

<script type="text/javascript"><!--//--><![CDATA[//><!--
function mensaje() {
  alert('Prueba de JavaScript con XHTML')
}
//--><!]]></script>
Como puedes ver, es un poco engorroso. Una posible solución para ahorrarse esto es pasar todo el código JavaScript a un fichero externo a la página (si es posible, claro), en cuyo caso no hay que escribir la etiqueta <script>, tal como se explica en la sección de JavaScript de esta guia.

Exactamente igual habrá que resolver el problema si se trata del elemento <STYLE>, que como ya sabrás, puede estar tanto embebido en la propia página HTML como en un fichero separado (las famosas CSS).

Al igual que en HTML, el estándar recomienda incluir al principio de cada página una identificación de tipo de documento. Es una recomendación, y no tiene ningún efecto práctico en la visualización de la página. Pueden ser varios, aunque solamente hay que poner una:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
La primera, strict, indica que se ha utilizado la forma más estricta de escribir, y debiera validar sin ningún error. Obliga a separar los contenidos de la presentación y no admite ningún elemento de estilo, que deben definirse en la inseparable CSS.

La transitional o código de transición hacia la estricta, permite incluir algunos elementos ya en desuso en XHTML, pero válidos en HTML 4.0. No obliga a utilizar CSS.

Por último la frameset, que está reservada a las páginas que incluyan frames, muy desaconsejados últimamente, ya que generan problemas de usabilidad, vocablo de nuevo cuño que viene a significar que no todo el mundo puede usar (ver u oir) tu página tal cual, sino por medio de programas y/o aparatos adaptadores.

La etiqueta <HTML> típica del principio de todas las páginas, tampoco ha escapado a la reconversión, y debe escribirse así:


<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
Donde el parámetro lang indica la lengua o idioma en que está escrita la página: es = español, en = inglés, fr = francés, etc.

La etiqueta <head> permanece sin cambios (escrita en minúsculas, por supuesto), pero las instrucciones meta que van en su interior sí han resultado afectadas por la nueva sintaxis. Además de ir en minúsculas, como todas, hay que añadirles la barra de cierre, y existe la recomendación de incluir al menos una con el código de caracteres utilizado.


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Hay varios charset, es decir la tabla de codificación de caracteres En los web de habla hispana suelen utilizarse mayoritariamente el ISO 8859-1 y el UTF-8. Este último, es el llamado formato unicode, y es válido para todos los caracteres de las lenguas occidentales. Se recomienda su uso para escribir páginas XHTML.


[Indice]