miércoles, 23 de abril de 2014

 

Preguntas frecuentes sobre HTML y XHTML

  

Tabla de contenidos

  1. �Por que es necesario XHTML?, �no es HTML lo suficientemente bueno?
  2. �Cuales son las ventajas de usar XHTML en lugar de HTML?
  3. �Es posible poner simplemente la declaración XML al inicio de los documentos HTML ya existentes?, se pueden entremezclar documentos HTML 4.01 y XHTML?
  4. �Cual es la manera mas sencilla de convertir documentos HTML a XHTML?
  5. �Por que los navegadores son tan rigurosos con el XML y eran mas permisivos con el HTML?
  6. �Por que deberia prestar especial atención a que mi documento sea HTML válido si ya se muestra correctamente en mi navegador?
  7. �D�nde puedo verificar que mi documento usa el etiquetado correctamente?
  8. �Por que se hace referencia continuamente a los "agentes de usuario" en lugar de a los "navegadores"?
  9. �Por que tengo que usar en XHTML eso que llamis "namespace" (espacio de nombres)?
  10. �Por que esta permitido servir documentos XHTML 1.0 como text/html?
  11. �quenavegadores aceptan el tipo de medio application/xhtml+xml?
  12. �Acepta Internet Explorer de Microsoft el tipo de medio application/xhtml+xml?
  13. CSS tiene un mont�n de reglas especiales que sólo se aplican a HTML, �Se aplican también a XHTML?
  14. �Funciona document.write en XHTML?
  15. �Por que no esta permitido servir documentos XHTML 1.1 como text/html?
  16. �Por qué se elimin el atributo "target" (destino) en XHTML 1.1?
  17. �cual es la utilidad de la Modularizacion de XHTML?
  18. �Por qu� es XHTML 2 necesario?, �no es XHTML 1 lo suficientemente bueno?
  19. �Se sustituye <img> por <object> en XHTML 2?
  20. �Por qu� XHTML 2 no utiliza XLink?
  21. �Por que XHTML 2 no es compatible con versiones previas?
  22. �Por qu� est� xml:space establecido como "preserve" (conservar) en todos los elementos de XHTML? No quiero que se vean espacios extras en mis documentos.

�Por que es necesario XHTML?, no es HTML lo suficientemente bueno?

HTML es probablemente el lenguaje de etiquetado de documentos m�s exitoso del mundo. Pero cuando se present� XML, se organiz� un taller de dos d�as de duraci�n para analizar si era necesaria una nueva versi�n de HTML basada en XML. La opini�n general del taller fue un rotundo "S�": con un HTML basado en XML, otros lenguajes XML podr�an incluir porciones de XHTML, y los documentos XHTML podr�an incluir porciones de otros lenguajes de etiquetado. Incluso se podr�a aprovechar el redise�o para limpiar algunas de las partes m�s descuidadas de HTML, y a�adir algunas funcionalidades nuevas y necesarias, tales como mejores formularios.

�Cuales son las ventajas de usar XHTML en lugar de HTML?

Si sus documentos son XHTML 1.0 puro (sin incluir otros lenguajes de etiquetado) entonces las diferencias no ser�n muy significativas actualmente. Sin embargo, a medida que proliferan las herramientas XML, como XSLT para la transformaci�n de documentos, las ventajas de usar XHTML ser�n m�s visibles. XForms por ejemplo, permitir� editar documentos XHTML (u otros tipos de documentos XML) de forma sencilla. Las aplicaciones de Web Sem�ntica ser�n capaces de sacar provecho de los documentos XHTML.
Si sus documentos son algo m�s que XHTML 1.0, por ejemplo si incluyen MathML, SMIL, o SVG, entonces las ventajas son inmediatas: ese tipo de combinaciones no son posibles con HTML.

�Es posible poner simplemente la declaracion XML al inicio de los documentos HTML ya existentes?, se pueden entremezclar documentos HTML 4.01 y XHTML?

No. HTML no tiene formato XML. Hay que realizar los cambios necesarios para hacer que el documento sea conforme a XML antes de que se pueda aceptar como XML.

�Cual es la manera mas sencilla de convertir documentos HTML a XHTML?

HTML Tidy ofrece la opci�n de transformar cualquier documento HTML en uno XHTML. Amaya es un navegador/editor que guarda documentos HTML como XHTML.

�Por que los navegadores son tan rigurosos con el XML y eran mas permisivos con el HTML?

Est� hecho a prop�sito. Los navegadores HTML aceptan cualquier entrada, ya sea correcta o no, e intentan mostrar algo perceptible con lo que reciben. Dicha correcci�n de errores hace que los navegadores sean muy dif�ciles de implementar, especialmente si se espera que todos los navegadores act�en de igual manera. Esto tambi�n supone que una enorme cantidad de documentos HTML sean incorrectos, ya que, al mostrarse correctamente en el navegador, el autor no es consciente de los errores. Todo ello hace que sea realmente complicado implementar nuevos agentes de usuario, puesto que los documentos que se supone son HTML, frecuentemente tienen errores.

�Por que deberia prestar especial atencion a que mi documento sea HTML valido si ya se muestra correctamente en mi navegador?

Todos los navegadores saben interpretar HTML correcto. Sin embargo, si no es correcto, el navegador tiene que reparar el documento, y como los navegadores reparan los documentos de distintas formas, esto da lugar a diferencias, con lo cual el documento podr�a mostrarse y funcionar de diferente manera en navegadores distintos. Puesto que hay cientos de navegadores diferentes, y continuamente aparecen nuevos (no �nicamente para PCs, tambi�n para PDAs, tel�fonos m�viles, televisores, impresoras, e incluso frigor�ficos), es imposible probar los documentos en todos los navegadores. Si se utiliza HTML no v�lido y el documento no funciona en un navegador en particular, es un problema del autor; si se utiliza HTML v�lido y no funciona, entonces es un fallo del navegador.

�Donde puedo verificar que los documentos usen el etiquetado correctamente?

El W3C ofrece un servicio de validaci�n en http://validator.w3.org/. El navegador/editor Amaya tambi�n se asegurar� de que el etiquetado sea correcto.

�Por que se hace referencia continuamente a los "agentes de usuario" en lugar de a los "navegadores"?

Aunque los navegadores son de hecho usuarios importantes de HTML y XHTML, hay otros programas y sistemas que leen esos documentos. Los motores de b�squeda por ejemplo, leen documentos pero no son navegadores. Utilizando el t�rmino "agente de usuario", intentamos recordar a la gente la diferencia.
Por ejemplo, al hacer una b�squeda en Google frecuentemente veremos en alguno de los resultados de la b�squeda algo como "Esta p�gina Web contiene marcos, pero su navegador no los soporta", lo que desanima a los usuarios a hacer clic en ese v�nculo. El autor del sitio Web en cuesti�n no se ha dado cuenta de que no todo son navegadores, y de que se debe incluir un texto mejor en la secci�n <noframes>, para que de esta forma no se muestren tan carentes de sentido cuando los usuarios hagan b�squedas en su sitio Web.

�Por que tengo que usar en XHTML eso que llamais "namespace" (espacio de nombres)?

En los primeros tiempos del HTML diferentes grupos y compa��as a�adieron nuevos elementos y atributos al HTML. Esto amenazaba con provocar un caos de diferentes versiones de HTML no interoperables. XML (la X significa eXtensible) permite a cualquiera utilizar elementos de diferentes lenguajes, pero, para que un navegador u otro agente de usuario conozca qu� elementos pertenecen a qu� lenguajes, hay que indic�rselo. Eso es la funci�n de las declaraciones de los espacios de nombres.

�Por que esta permitido servir documentos XHTML 1.0 como text/html?

XHTML es un formato XML; esto quiere decir que, estrictamente hablando, deber�a ser enviado con un tipo de medio af�n a XML (application/xhtml+xml, application/xml, o text/xml). Sin embargo, XHTML 1.0 fue cuidadosamente dise�ado para que pudiera funcionar tal cual incluso en agentes de usuario HTML antiguos. Si se siguen algunas directrices simples se puede conseguir que muchos documentos XHTML 1.0 funcionen en navegadores antiguos. No obstante, los navegadores antiguos s�lo entienden el tipo de medio text/html, as� que es necesario utilizar ese tipo de medio si se les env�a documentos XHTML 1.0. Pero se debe ser consciente de que si enviamos los documentos XHTML a los navegadores como text/html, �stos ver�n los documentos como documentos HTML, no XHTML.

�Que navegadores aceptan el tipo de medio application/xhtml+xml?

Que sepamos, todos los navegadores basados en Mozilla, tales como Mozilla, Netscape 5 y superiores, Galeon y Firefox, as� como Opera, Amaya, Camino, Chimera, DocZilla, iCab, Safari, y todos los navegadores de tel�fonos m�viles que acepten WAP 2. De hecho, cualquier navegador moderno. La mayor�a aceptan los documentos XHTML como application/xml. V�ase el test de tipo de medio XHTML para m�s detalles.

�Acepta Internet Explorer de Microsoft el tipo de medio application/xhtml+xml?

No. No obstante, hay un truco que permite servir documentos XHTML 1.0 a Internet Explorer como application/xml.
Hay que incluir al inicio del documento la siguiente l�nea en negrita:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="copy.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
donde copy.xsl es un fichero que contiene lo siguiente:
<stylesheet version="1.0"
     xmlns="http://www.w3.org/1999/XSL/Transform">
    <template match="/">
        <copy-of select="."/>
    </template>
</stylesheet>
T�ngase en cuenta que este fichero debe estar en la misma localizaci�n que el documento que lo referencia.
Aunque se est� sirviendo el documento como XML, y se analiza c�mo XML, el navegador piensa que ha recibido text/html, y por ello el documento XHTML 1.0 debe seguir las directrices para servir a navegadores antiguos.
Los documentos XHTML continuar�n funcionando en los navegadores que acepten XHTML 1.0 como application/xml.

CSS tiene un mont�n de reglas especiales que s�lo se aplican a HTML, �se aplican tambi�n a XHTML?

No. Las reglas CSS que se aplican �nicamente a HTML, se aplican s�lo a los documentos que se sirven como text/html.

�Funciona document.write en XHTML?

No. Debido a la manera en que XML se define, no es posible hacer trucos como este, en el que el etiquetado es generado por scripts al mismo tiempo que el analizador est� analizando el etiquetado.
Todav�a se pueden conseguir los mismos efectos, pero hay que hacerlo utilizando DOM para a�adir y borrar elementos.

�Por qu� no est� permitido servir documentos XHTML 1.1 como text/html?

XHTML 1.1 es XML puro, y pensado para ser �nicamente XML. No puede ser enviado a navegadores antiguos con seguridad. Por tanto los documentos XHTML 1.1 deben ser enviados con un tipo de medio af�n a XML, tal como application/xhtml+xml.

�Por qu� se elimin� el atributo "target" (destino) en XHTML 1.1?

No ha sido eliminado. Hay tres versiones de XHTML 1.0: strict (estricta), transitional (transicional), y frameset (con marcos). Las tres versiones fueron mantenidas a prop�sito lo m�s semejantes a HTML 4.01 dentro de lo que permite XML. XHTML 1.1 es una versi�n puesta al d�a de XHTML 1.0 estricto, y ninguna versi�n de HTML estricta ha incluido nunca el atributo target. Las otras dos versiones , transicional y con marcos, no fueron puestas al d�a, ya que no hab�a nada que actualizar. Si se desea utilizar el atributo target, debe usarse XHTML 1.0 transicional.

�Cu�l es la utilidad de la Modularizaci�n de XHTML?

La modularizaci�n de XHTML no se dirige a los usuarios normales de XHTML, sino a los dise�adores de lenguajes basados en XHTML. Se ha observado que las compa��as y grupos tienen la tendencia a dise�ar sus propias versiones de HTML y XHTML, y �stas a menudo no son interoperables en los niveles b�sicos. La modularizaci�n XHTML divide XHTML en una serie de m�dulos que pueden seleccionarse individualmente cuando se define un nuevo lenguaje; de esta manera se garantiza que cualquier lenguaje basado en XHTML que utilice por ejemplo tablas, utilice la misma definici�n de tablas, y no otra versi�n divergente. La modularizaci�n tambi�n aclara d�nde es correcto a�adir nuevos elementos y d�nde no lo es.

�Por qu� es XHTML 2 necesario?, �no es XHTML 1 lo suficientemente bueno?

HTML y XHTML han realizado un buen servicio, pero hay muchas cosas que pueden ser mejoradas. Las �reas que han recibido una atenci�n particular incluyen mejoras en las posibilidades de estructuraci�n, eliminaci�n de caracter�sticas repetidas en XML, usabilidad, accesibilidad, internacionalizaci�n, independencia de dispositivo, mejores formularios y reducci�n de la necesidad de scripts.

�Se sustituye <img> por <object> en XHTML 2?

No. <img> es sustituida en XHTML2, pero por algo m�s completo (aunque se podr�a usar <object> si se desease).
El dise�o de <img> tiene muchos problemas en HTML:
  • No hay posibilidad de facilitar alternativas, as� pues, si se utiliza por ejemplo una imagen de tipo PNG, y el navegador no puede manejar ese tipo, la �nica alternativa es usar el texto alt. Este hecho ha dificultado la adopci�n de las im�genes PNG, las cuales son mejores que GIF y JPG en muchos aspectos, ya se ha seguido usando la forma en la que todo el mundo pod�a ver las im�genes.
  • El texto alt no puede ser etiquetado, por tanto si se utiliza s�lo obtendremos un texto sin formato.
  • Es posible incluir un enlace longdesc a una descripci�n de la imagen, para ayudar a los invidentes, pero se utiliza en muy pocos ocasiones.
Lo que hace XHTML 2 es indicar que todas las im�genes son equivalentes a alguna parte de contenido; esto se consigue permitiendo el uso de un atributo src en los elementos. Esto quiere decir que: si la imagen est� disponible, y el navegador puede procesarla, se utiliza; si no es as�, se utilizar� el contenido del elemento. Por ejemplo:
<p src="mapa.png">Sal de la estaci�n, gira a la izquierda, 
   sigue recto por la <strong>calle Ur�a</strong>, y gira a la derecha</p>
La ventaja de este m�todo es que si la imagen no est� disponible por alguna raz�n (como un problema de red) o el navegador no puede mostrar ese tipo de imagen, el documento todav�a se puede utilizar. Si se desea proporcionar m�s de un tipo de imagen, se puede hacer:
<p src="mapa.png"><span src="mapa.gif">Sal de la estaci�n...</span></p>
aunque es mejor usar la negociaci�n de contenido si el servidor lo soporta (la mayor�a lo soporta):
<p src="mapa">Sal de la estaci�n...</p>
lo cual provocar� la negociaci�n del servidor con el navegador sobre el tipo de imagen que acepta, y se servir� el tipo preferido. Si no hay imagen disponible, entonces se utilizar�a el contenido del elemento. Esto presenta una ventaja a�adida, ya que posteriormente se podr�n a�adir nuevos tipos de im�genes en el servidor y no ser� necesario cambiar la p�gina para que funcione correctamente.
XLink y XHTML ten�an diferentes requisitos para los enlaces que no fueron compatibles.

�Por que XHTML 2 no es compatible con versiones anteriores?

Lo es, pero de una manera diferente a c�mo lo eran versiones anteriores de HTML.
Debido a que versiones anteriores de HTML eran lenguajes de prop�sito especial, fue necesario asegurar un nivel de compatibilidad hacia atr�s con nuevas versiones, de manera que los documentos nuevos fueran todav�a utilizables por los navegadores antiguos. Por ejemplo, es por ello por lo que el elemento <meta> tiene su contenido en un atributo en lugar de en el mismo elemento, puesto que de ser as� podr�a haberse mostrado en navegadores antiguos.
Sin embargo, gracias al XML y las hojas de estilo, esta compatibilidad estricta de elementos con versiones anteriores ya no es necesaria, debido a que los navegadores basados en XML, que en el momento de escribir este documento suponen m�s del 95% de los navegadores en uso, pueden procesar nuevos lenguajes de etiquetado sin tener que ser actualizados. Gran parte de XHTML 2 funciona ya en los navegadores actuales, navegadores que no han sido pre-programados para aceptar XHTML 2. Gran parte funciona, pero no todo: cuando los formularios y las tablas fueron a�adidos a HTML, la gente tuvo que esperar a que salieran nuevas versiones de los navegadores; de igual manera, algunas partes de XHTML 2, tales como XForms y XML Events (eventos XML), todav�a necesitan nuevos agentes de usuario que entiendan su funcionalidad.

�Por qu� est� xml:space establecido como "preserve" (conservar) en todos los elementos de XHTML? No quiero que se vean espacios extras en mis documentos.

El atributo xml:space se refiere a la entrada: lo que quiere decir que controla si los espacios estar�n presentes en el DOM (es decir, en la versi�n interna del documento que tienen el navegador); no especifica nada sobre lo que aparecer� en la pantalla. El espaciado de la salida es controlado por la propiedad "whitespace" de CSS. Estableci�ndola como " pre " los espacios del DOM ser�n conservados en la salida; estableci�ndola como "normal" los espacios en blanco se agrupar�n en uno solo (CSS 3 tendr� m�s propiedades para permitir un mayor control).
�sta es la raz�n por la que todos los elementos est�n establecidos como xml:space="preserve" (conservar) en XHTML 2, de otro modo la propiedad "whitespace" de CSS no tendr�a ning�n efecto, y no habr�a control sobre la visibilidad de los espacios en blanco. La hoja de estilo por defecto establecer� "whitespace" (espacio en blanco) como "normal" para todos los elementos excepto <pre>, pero se puede cambiar.