<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Xposible &#187; Estándares web</title>
	<atom:link href="http://webposible.com/xposible/category/estandares-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://webposible.com/xposible</link>
	<description>100% autoestimulante. 0% de popularidad.</description>
	<lastBuildDate>Tue, 08 May 2012 07:48:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Responsive web design</title>
		<link>http://webposible.com/xposible/2012/responsive-web-design/</link>
		<comments>http://webposible.com/xposible/2012/responsive-web-design/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 06:30:22 +0000</pubDate>
		<dc:creator>Gonzalo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Estándares web]]></category>
		<category><![CDATA[Web móvil]]></category>

		<guid isPermaLink="false">http://webposible.com/xposible/?p=298</guid>
		<description><![CDATA[Un poco de historia El origen de responive web design, para adaptar webs a teléfonos móviles principalmente, es un artículo aparecido en A List Apart con el título de tachán... responsive web design. La técnica consiste en usar: rejilla flexible CSS3 Media Query Imágenes flexibles (ver fluid images) En el fondo no hay nada nuevo: [...]]]></description>
			<content:encoded><![CDATA[<h3>Un poco de historia</h3>
<p>El origen de <span xml:lang="en">responive web design</span>, para adaptar webs a teléfonos móviles principalmente, es un artículo aparecido en <span xml:lang="en">A List Apart</span> con el título de tachán... <a xml:lang="en" href="http://www.alistapart.com/articles/responsive-web-design/" hreflang="en">responsive web design</a>. La técnica consiste en usar:</p>
<ul>
<li>rejilla flexible</li>
<li><a xml:lang="en" href="http://www.w3.org/TR/css3-mediaqueries/" hreflang="en"><acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>3 Media Query</a></li>
<li>Imágenes flexibles (ver <a xml:lang="en" href="http://unstoppablerobotninja.com/entry/fluid-images" hreflang="en">fluid images</a>)</li>
</ul>
<p>En el fondo no hay nada nuevo: <span xml:lang="en">Media Query</span> es una potente evolución de <a xml:lang="en" href="http://www.w3.org/TR/CSS2/media.html" hreflang="en">media types</a> presente en <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>2, y el uso de rejilla e imágenes flexibles ya era conocido desde hace tiempo.</p>
<h3>Hispanizando el término</h3>
<p>Parece sencillo traducir el término original <em xml:lang="en">responsive design</em> por diseño responsivo. Pero consultando el diccionario de la <acronym title="Real Academia Española">RAE</acronym>, me ha costado encontrar uno buena traducción que respete el espíritu del término original. Gracias a la buena gente en <span xml:lang="en">twitter</span> encuentro buenas alternativas:</p>
<ul>
<li>diseño web adaptable (@1984), con la puntualización de @isbl (diseño web adaptable a cualquier resolución de pantalla).</li>
<li>diseño web adaptativo (@iagor)</li>
<li>diseño web autoadaptable (@ala_747)</li>
</ul>
<p>A mí personalmente me parece mejor la opción <strong>diseño web adaptativo</strong>, si hacemos caso al diccionario (definición de adaptativo en la <acronym title="Real Academia Española">RAE</acronym>):</p>
<dl>
<dt>adaptativo</dt>
<dd>Perteneciente o relativo a la adaptación o a la capacidad de adaptación.</dd>
</dl>
<p>Esa capacidad de adaptación es lo que me parece más apropiado. Pero bueno, cuestión de opiniones: todas las argumentadas son bienvenidas.</p>
<h3>¿Cómo funciona?</h3>
<p>Tenemos una típica web con su código <acronym title="HyperText Markup Language" xml:lang="en">HTML</acronym>, <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>, <span xml:lang="en">javascript</span> (imprescindible una librería, como <span xml:lang="en">jquery</span> y sus correspondientes <span xml:lang="en">plugins</span>) y un buen puñado de imágenes. Todo ese código es el que se envía al navegador y le toca al potente ordenador de sobremesa (o al no tan sobrado de potencia teléfono móvil) procesarlo. Lo cuál equivale a descargarse todo, filtrar los estilos que le corresponden, ocultar los elementos invisibles (pero descargados) y mostrarlo en las pantallas de nuestros cacharros, ya sean grandes o pequeños, potentes o justitos. Siempre y cuando sepan interpretar el código...</p>
<p>Ahí hay un <strong>problema: se confía demasiado en el dispositivo de destino</strong> (velocidad de conexión y procesador, memoria, capacidad de comprender el código), y en ocasiones se le envía demasiados recursos, aunque no los muestre (y es una pérdida de tiempo y recursos que en ocasiones puede ser exagerado).</p>
<h3>¿Es la mejor forma de crear una web móvil?</h3>
<p>En palabras del que puso nombre a la técnica...</p>
<blockquote xml:lang="en"><p>I think of responsive design as an alternative to mobile sites.</p></blockquote>
<p><cite xml:lang="en">Ethan Marcotte</cite> — <a xml:lang="en" href="http://www.netmagazine.com/interviews/ethan-marcotte-responsive-web-design" hreflang="en">Ethan Marcotte on responsive web design</a></p>
<p>Lo considera una alternativa al diseño de una web específica para móviles. Y yo añado que no es la mejor alternativa. Sigo pensando que un buen trabajo de desarrollo en el servidor, con detección de dispositivos (mediante <a xml:lang="en" href="http://wurfl.sourceforge.net/" hreflang="en"><acronym title="Wireless Universal Resource File">WURLF</acronym></a> por ejemplo) y envío de contenido optimizado para dicho dispositivo, obtiene resultados mucho mejores que la técnica de diseño web adaptativo. Una muy buena explicación, la puedes encontrar en la presentación <a xml:lang="en" href="http://www.slideshare.net/yiibu/adaptation-why-responsive-design-actually-begins-on-the-server" hreflang="en">Why responsive design actually begins on the server</a> a partir de la página 83.</p>
<p>¿Existen ocasiones en las que el diseño web adaptativo puede ser una alternativa razonable para ciertos proyectos web? Por supuesto, <strong>depende</strong> del tipo de web, de los recursos disponibles, del contenido que se muestra,... Una web ligera (no como esas de 5 megas), con pocos elementos multimedia, pocas imágenes, sobre todo texto, pocos recursos de tiempo y dinero, personal con conocimiento <span xml:lang="en">front</span> pero no de lenguajes de servidor... es un proyecto ideal para poner en práctica la técnica de diseño web adaptativo. Al menos es algo.</p>
<p>Pero seamos sinceros: el diseño web adaptativo no deja de ser un truco de maquetadores con más o menos conocimiento de <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym> y <acronym title="HyperText Markup Language" xml:lang="en">HTML</acronym> para intentar que una web no se vea demasiado mal en ciertos teléfonos móviles. Es mejor que nada, pero dependiendo de la web, puede ser una chapuza o algo brillante.</p>
<p>Me permito recomendar dar un vistazo a la presentación <a xml:lang="en" href="http://www.slideshare.net/yiibu/pragmatic-responsive-design" hreflang="en">Pragmatic responsive design</a>. Me parece muy completa y un trabajo más que correcto. Un buen ejemplo a seguir.</p>
<h3>Algunos consejos para diseño web adaptativo</h3>
<p>Bueno, hablo en concreto de <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>3 <a xml:lang="en" href="http://www.w3.org/TR/css3-mediaqueries/" hreflang="en">Media Query</a>.</p>
<ul>
<li><strong>Para teléfonos móviles no tiene sentido usar <code>handheld</code> o <code>screen</code></strong>. Desde que el <span xml:lang="en">iPhone</span> dejó de considerarse un dispisitivo <code>handheld</code> desde el punto de vista del <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>, ha sido el primero de una larga lista de dispositivos en considerarse similares a, por ejemplo, un <span xml:lang="en">iMac</span> de 27". Y no es lo mismo una pantalla de 3,5" que una de 27".</li>
<li><strong>No tiene sentido tampoco tener en cuenta exclusivamente la resolución de pantalla</strong>. El teléfono móvil <span xml:lang="en">Samsung Galaxy Nexus</span> tiene una resolución de 1280x720 <abbr title="pixels">px</abbr>. Muchos netbooks tienen resoluciones de 1024x600. Es uno de los muchos factores a valorar.</li>
<li>Algo que casi nadie ha utilizado, que sepa, y que puede ser muy útil: <strong>tener en cuenta</strong>, no la resolución de pantalla, sino el <strong>tamaño de la pantalla en pulgadas</strong>. Ahí va una clasificación discutible: móviles menos de 6", <span xml:lang="en">tablets</span> entre 6" y 10", ordenadores... más de 10" (la pena es que la resolución de 10" es usada por <span xml:lang="en">tablets</span> y ordenadores). Tras estar haciendo pruebas, creo que es un punto de partida razonable. Además, funciona. Con un extra importante...</li>
<li>Usar la <strong>resolución</strong> —desde el punto de vista de la densidad de pixels— para diferenciar la calidad de las pantallas. Ver donde se explica en <a xml:lang="en" href="http://www.w3.org/TR/css3-mediaqueries/#resolution" hreflang="en">Media Queries 4.11. resolution</a> y en <a xml:lang="en" href="http://members.ping.de/~sven/dpi.html" hreflang="en"><acronym title="Dots per inch" xml:lang="en">DPI</acronym> Calculator / <acronym title="Pixels per inch" xml:lang="en">PPI</acronym> Calculator</a> para ver la resolución de pantalla de diversos dispositivos y una práctica calculadora.</li>
<li>Recuerda las <strong>televisiones</strong>: muchas pulgadas de pantalla pero forzosamente tienen que usar un tamaño de texto más grande: el móvil, la <span xml:lang="en">tablet</span> o el ordenador lo tenemos como mucho a medio metro de distancia. Un televisor puede estar a dos, tres o más metros.</li>
</ul>
<h3>El contexto</h3>
<p>Aunque ya está muy visto, es obligado recordar que cada proyecto se desarrolla en un contexto y factores como el presupuesto, el objetivo de la web, conocimientos técnicos, el contenido, los dispositivos,... y los teóricos usuarios de la web. Un sitio para ver estadísticas de internet es <a xml:lang="en" href="http://gs.statcounter.com/" hreflang="en">statcounter</a>, por continentes, países, sistemas operativos, móviles,... Ignoro su fiabilidad, pero debería abrir los ojos a más de uno.</p>
<h4>El factor <em xml:lang="en">Be Cool</em></h4>
<p>Un par de asuntos recurrentes. Por decirlo de una manera suave, empiezo a estar bastante hasta las narices, de que en la teoría y en la práctica, los únicos dispositivos que se utilizan para hablar o aplicar el <span xml:lang="en">responsive design</span> (o para esos dos o tres lectores de xposible "diseño web adaptativo"), son los de <span xml:lang="en">Apple</span>. Vale que queda muy vistoso utilizar imágenes de los cacharros de <span xml:lang="en">Apple</span> y optimizar el <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym> para el <span xml:lang="en">iPhone</span> y el <span xml:lang="en">iPad</span> en vertical y apaisado, pero hay más dispositivos. No les fastidies.<br />
Pero el colmo es suponer que todos los cacharros que se conectan a internet tienen el núcleo webkit. Usar prefijos "beta" e ignorar los equivalentes de otros núcleos (<code>-moz</code>, <code>-khtml</code>, <code>-ms</code>, <code>-o</code>) o directamente las recomendaciones del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> cuando funcionan. Una falta de profesionalidad preocupante. Luego pasa lo que pasa: <a xml:lang="en" href="http://kevinjohngallagher.com/articles/opera-fat-lady-singing-prefixes/" hreflang="en">Is the fat lady singing for Vendor Prefixes?</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webposible.com/xposible/2012/responsive-web-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maquetadores: nuestro poder conlleva una responsabilidad</title>
		<link>http://webposible.com/xposible/2012/maquetadores-nuestro-poder-conlleva-una-responsabilidad/</link>
		<comments>http://webposible.com/xposible/2012/maquetadores-nuestro-poder-conlleva-una-responsabilidad/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 16:29:03 +0000</pubDate>
		<dc:creator>Gonzalo</dc:creator>
				<category><![CDATA[Estándares web]]></category>
		<category><![CDATA[Web móvil]]></category>

		<guid isPermaLink="false">http://webposible.com/xposible/?p=294</guid>
		<description><![CDATA[Un gran poder conlleva una gran responsabilidad. Ben, tío de Peter Parker. La versión larga la puedes encontrar en [CSSWG] Minutes and Resolutions Paris F2F Monday Morning 2012-02-06: Administrivia, Vendor Prefixes, Property/Value Alias OM apartado Vendor Prefixes (sólo conozco a una persona que la lee por iniciativa propia). Una versión digerida en WebKit Isn’t Breaking [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Un gran poder conlleva una gran responsabilidad.</p></blockquote>
<p><cite><span xml:lang="en">Ben</span></cite>, tío de <span xml:lang="en">Peter Parker</span>.</p>
<p>La versión larga la puedes encontrar en <a xml:lang="en" href="http://lists.w3.org/Archives/Public/www-style/2012Feb/0313.html" hreflang="en">[CSSWG] Minutes and Resolutions Paris F2F Monday Morning 2012-02-06: Administrivia, Vendor Prefixes, Property/Value Alias OM</a> apartado <span xml:lang="en">Vendor Prefixes</span> (sólo conozco a una persona que la lee por iniciativa propia). Una versión digerida en <a xml:lang="en" href="http://www.webmonkey.com/2012/02/webkit-isnt-breaking-the-web-you-are/" hreflang="en">WebKit Isn’t Breaking the Web. You Are</a> y la llamada a la acción en <a xml:lang="en" href="http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION%3A-THE-OPEN-WEB-NEEDS-YOU-NOW" hreflang="en">CALL FOR ACTION: THE OPEN WEB NEEDS YOU *NOW*</a>.</p>
<p>Confieso que soy tengo tendencia conservadora con respecto a las tecnologías webs: prefiero utilizar las novedades cuando están bien asentadas. He de confesar también que mis conocimientos en <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym>3 son más bien limitados, por no hablar de <acronym title="HyperText Markup Language" xml:lang="en">HTML</acronym>5.</p>
<p>¿Tiene sentido ser un desarrollador web y no estar al tanto de las últimas tecnologías? Probablemente no.</p>
<p>¿Tiene lógica esperar a usar en producción algo que todavía está en fase alfa o beta y se desconoce si al final se implementará o no? Desde mi punto de vista sí. Y más teniendo en cuenta lo que sabemos con el ritmo de actualización de ciertos navegadores.</p>
<p>¿De qué hablo? El abuso inconsciente de característcas en fase alfa-beta de implementaciones de <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym> que publica <em xml:lang="en">webkit</em> (sí esas que empiezan con <code>-webkit-</code>) por parte de los desarrolladores webs.</p>
<p>¿Por qué? Porque en numerosos sitios se está provocando que la web sólo funcione en los navegadores con webkit (Safari, y navegadores por defecto de <span xml:lang="en">iOS</span> y <span xml:lang="en">Android</span>). Se está rompiendo la web. Y un gran perjudicado es Opera, hoy por hoy el navegador más usado en los teléfonos móviles en el mundo (ver el gráfico <a xml:lang="en" href="http://gs.statcounter.com/#mobile_browser-ww-monthly-201101-201201" hreflang="en">Top 9 Mobile Browsers from Jan 2011 to Jan 2012</a> ahora mismo, Opera es el número uno con un porcentaje de casi un 24%) por no hablar de otros navegadores, como <span xml:lang="en">Firefox</span>, que tienen problemas con webs específica para móviles. No tiene sentido.</p>
<p>El asunto tiene muchos puntos de vista: por un lado está la posibilidad de que los navegadores mejoren (y los prefijos propietarios de los navegadores en <acronym title="Cascading Style Sheets" xml:lang="en">CSS</acronym> no deja de ser innovación), por otro lado el mercado de los navegadores, los desarrolladores, los clientes, las especificaciones del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> (ahora documentos vivos en constante evolución),... y los usuarios.</p>
<p>Estaremos de acuerdo en que la velocidad a la que avanzan las especificaciones del <acronym title="World Wide Web Consortium">W3C</acronym>  es demasiado lenta. Pero abusar de características "beta" que implementan algunos navegadores puede ser una temeridad. Y si no nos fijamos si existen alternativas a otros navegadores (más líneas de <acronym title="Cascading Style Sheets">CSS</acronym> para implementar características en otros navegadores) rozamos peligrosamente la falta de profesionalidad. Por último, si con el uso de los prefijos de <acronym title="Cascading Style Sheets">CSS</acronym> estamos consiguiendo que la web no se visualice correctamente en otros navegadores, o incluso falle de forma escandalosa, entonces deberíamos tener una orden de alejamiento de un editor de código.</p>
]]></content:encoded>
			<wfw:commentRss>http://webposible.com/xposible/2012/maquetadores-nuestro-poder-conlleva-una-responsabilidad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un caso particular de flash y SEO</title>
		<link>http://webposible.com/xposible/2011/un-caso-particular-de-flash-y-seo/</link>
		<comments>http://webposible.com/xposible/2011/un-caso-particular-de-flash-y-seo/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 18:13:29 +0000</pubDate>
		<dc:creator>Gonzalo</dc:creator>
				<category><![CDATA[Estándares web]]></category>

		<guid isPermaLink="false">http://webposible.com/xposible/?p=230</guid>
		<description><![CDATA[Buscando por la web me encuentro con el siguiente resultado (se han difuminado información clave para ahorrar vergonzosas excusas): Una web, hecha en flash y cuyo único contenido útil que ha podido encontrar el buscador es... que la página está cargando (y encima en inglés). Sin comentarios.]]></description>
			<content:encoded><![CDATA[<p>Buscando por la web me encuentro con el siguiente resultado (se han difuminado información clave para ahorrar vergonzosas excusas):</p>
<div id="attachment_231" class="wp-caption aligncenter" style="width: 310px"><a href="http://webposible.com/xposible/wp-content/uploads/2011/03/ejemplo-seo-flash.png"><img class="size-medium wp-image-231" title="Ejemplo de la descripción de Google de una web hecha sólo en flash" src="http://webposible.com/xposible/wp-content/uploads/2011/03/ejemplo-seo-flash-300x59.png" alt="Loading 30%" width="300" height="59" /></a><p class="wp-caption-text">Loading 30%</p></div>
<p>Una web, hecha en <span xml:lang="en">flash</span> y cuyo único contenido útil que ha podido encontrar el buscador es... que la página está cargando (y encima en inglés).</p>
<p>Sin comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://webposible.com/xposible/2011/un-caso-particular-de-flash-y-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lenguajes de marcado en la web y MIME Type</title>
		<link>http://webposible.com/xposible/2011/lenguajes-de-marcado-en-la-web-y-mime-type/</link>
		<comments>http://webposible.com/xposible/2011/lenguajes-de-marcado-en-la-web-y-mime-type/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 11:48:20 +0000</pubDate>
		<dc:creator>Gonzalo</dc:creator>
				<category><![CDATA[Estándares web]]></category>

		<guid isPermaLink="false">http://webposible.com/xposible/?p=190</guid>
		<description><![CDATA[Saco de la nevera un artículo que llevo cerca de dos años dándole vueltas (ya está bien). Personalmente me ha servido para tener más claro ciertas cosas que ignoraba y para recopilar algunas citas y vínculos: trata sobre HTML, XHTML, text/html y application/xhtml+xml. Es excelente si sufres insomnio. HTML y XHTML ¿Qué diferencia hay entre [...]]]></description>
			<content:encoded><![CDATA[<p>Saco de la nevera un artículo que llevo cerca de dos años dándole vueltas (ya está bien). Personalmente me ha servido para tener más claro ciertas cosas que ignoraba y para recopilar algunas citas y vínculos: trata sobre <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>, <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, <code>text/html</code> y <code>application/xhtml+xml</code>. Es excelente si sufres insomnio.</p>
<h3><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> y <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym></h3>
<p>¿Qué diferencia hay entre <code>text/html</code> y <code>application/xhtml+xml</code>? ¿Porqué con <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> sólo puede usar <code>text/html</code> y con <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> puede usar <code>text/html</code>, <code>application/xhtml+xml</code>, <code>application/vnd.wap.xhtml+xml</code>, <code>text/xml</code>, <code>application/xml</code>,...? ¿Por qué los desarrolladores web con un mínimo de conocimiento y experiencia suelen tener cierta aversión a <span xml:lang="en">Internet Explorer</span>?</p>
<p>Son preguntas que no se responderán aquí, pero tendrás pistas. Y casi ni se hablará sobre <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>5. Como si no existiese.</p>
<h4><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> y <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>: a tener en cuenta</h4>
<p>Una de las ventajas-desventajas del <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> es su <em>permisividad</em> con los errores. Si hay algo que el navegador no entiende, simplemente lo ignora. Eso explica que cualquiera pueda hacer una página web, incluso con un editor de textos de ofimática. La página, puede que incluso se visualice en un navegador. Aunque el código generado probablemente una chapuza. Algo similar puede ocurrir si usamos los editores <span xml:lang="en">What You See Is What You Get</span> (lo que ves es lo que obtienes), si se hacen páginas sin ver ni entender el código.</p>
<p>Como consecuencia, la sintaxis que se puede utilizar en <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>, podemos denominarla dualmente como sencilla-compleja:</p>
<ul>
<li>Sencilla, porque casi cualquier código que se publique, se visualiza en un navegador (por ejemplo <code>&lt;p class="description"&gt;Párrafo&lt;/p&gt;</code>, <code>&lt;P class=description&gt;Párrafo</code>, <code>&lt;P CLASS='description'&gt;Párrafo&lt;/p&gt;</code>,... da igual si se usan mayúsculas y minúsculas en los elementos y atributos, se el valor de los atributos va entre comillas o no,...). De ahí que mucha gente pueda decir que <q>sabe <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym></q>, y que la web tenga la difusión actual.</li>
<li>Pero a la vez es complejo: es más complicado aprenderlo (demasiadas opciones, falta de una sintaxis única,...), es difícil de mantener el código, y los navegadores tienen que hacer un esfuerzo mayor para que -sabiendo que el código generalmente no es muy bueno-, se muestre "algo" en los periféricos de salida (pantalla, altavoz, terminal braille,...)</li>
</ul>
<p>Por otro lado, tenemos <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>: la sintaxis es única (de los ejemplos anteriores, sólo es válido <code>&lt;p class="description"&gt;Párrafo&lt;/p&gt;</code>). Pueda que exija un poco más de cuidado y atención en los detalles -sobre todo, si alguien está acostumbrado a un mal código de <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> -, pero si sabes <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> de verdad, entonces sabes <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>. Desde un punto de vista didáctico, es recomendable aprender con la sintaxis de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, y usar un validador de código. Usarlo mucho.</p>
<p>Por si acaso, y aunque se tratará con más profundidad el asunto de <code>text/html</code> y <code>application/xhtml+xml</code> más adelante, aquí va una introducción esquemática:</p>
<ul>
<li><code>text/html</code> y <code>application/xhtml+xml</code> son dos <a title="Información sobre MIME Type en la Wikipedia" href="http://es.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions"><acronym title="Multipurpose Internet Mail Extensions" xml:lang="en">MIME</acronym> <span xml:lang="en">Type</span></a>, los más utilizados para páginas webs.</li>
<li>Los <acronym title="Multipurpose Internet Mail Extensions" xml:lang="en">MIME</acronym> <span xml:lang="en">Type</span> se pueden configurar desde el servidor y también se puede modificar mediante lenguajes de programación.</li>
<li><code>text/html</code> se usa para todas las páginas <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> y las páginas <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 que aunque usan la sintaxis de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, son en la práctica, páginas <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> normales y corrientes. En principio es así para ser compatible con los navegadores más antiguos (e <span xml:lang="en">Internet Explorer</span> hasta la versión 9).</li>
<li><code>application/xhtml+xml</code> se usa para documentos <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> que se comportan como documentos <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> en navegadores más avanzados (donde, no está <span xml:lang="en">Internet Explorer</span> hasta la versión 9) y una de sus características es que es <em>extensible</em> (se pueden añadir nuevos módulos como <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Resource Description Framework attribute">RDFa</acronym>, <a xml:lang="en" href="http://www.w3.org/TR/xhtml-role/"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Role Attribute Module</a> o <a xml:lang="en" href="http://www.w3.org/TR/xhtml-access/"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Access Module</a>) y se puede combinar con otros lenguajes (<acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> como <acronym title="Scalable Vector Graphics" xml:lang="en">SVG</acronym>, <acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym> ó <acronym title="Synchronized Multimedia Integration Lenguage" xml:lang="en">SMIL</acronym>). Se emplea <code>application/xhtml+xml</code> obligatoriamente en <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.1 y se puede usar también en <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0.</li>
</ul>
<h4>Si los navegadores fuesen estrictos con las páginas <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, la Web, se rompería</h4>
<p>Ojo, que hay un falso alarmismo en los siguientes párrafos: <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servido como <code>text/html</code> es equivalente a <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>. Y sabemos que cualquier código <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>, por malo y cutre que sea, se mostrará en el navegador aunque el resultado no sea el deseado por el <em>desarrollador web</em> (leer <em>desarrollador web</em> con tono irónico). Pero sigamos con el alarmismo parcialmente injustificado.</p>
<p>Siendo puristas - con <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> se debería de ser muy purista, especialmente cuando <strong>no</strong> se envía como <code>text/html</code>, es decir, lo trata como un documento <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> de verdad - el código tiene que ser <strong>siempre válido</strong>. Teóricamente, no se deberían tener errores. Pero,... ¿qué ocurriría si los navegadores siempre fuesen estrictos, y no mostrasen las páginas <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> que fuesen incorrectas?. O dicho de otra manera, ¿qué ocurriría si los navegadores interpretasen las páginas webs servidas como <code>text/html</code> (ya sea <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> o <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>) como lo hacen con las páginas servidas como <code>application/xhtml+xml</code>? Te lo puedes imaginar: teniendo en cuenta que son excepcionales desde un punto de vista estadístico las webs que tienen su código correcto, serían las únicas que se mostrasen correctamente. ¿El resto? Tal vez sólo se vería una página de error, como el conocido <span xml:lang="en"><acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> Parsing Error</span> de <span xml:lang="en">Mozilla</span>.</p>
<p>Si los navegadores fuesen puristas, la Web, directamente, <strong>se rompería</strong>. Si, supongamos, el 95% de las páginas webs no se mostrasen correctamente en los navegadores, tendría un impacto cuanto menos, apocalíptico (para la web). ¿Un 95% de páginas inválidas no es una exageración? Pues no, en todo caso, es incluso optimista. Según el estudio <a href="http://dev.opera.com/articles/view/mama/"><acronym title="Metadata Analysis and Mining Application" xml:lang="en">MAMA</acronym></a> elaborado por <a xml:lang="en" hreflang="en" href="http://dev.opera.com/">Opera</a> durante el año 2008, sólo el 4,13% de las páginas validadas en su numerosa muestra (más de 3,5 millones de páginas) tenían su código correcto (puedes leerlo en <a xml:lang="en" hreflang="en" href="http://dev.opera.com/articles/view/mama-markup-validation-report/"><acronym title="Metadata Analysis and Mining Application" xml:lang="en">MAMA</acronym>: Markup validation report</a>).</p>
<p>En el estudio se hace referencia a las páginas webs en general, sin distinguir entre <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> y <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>. Se podría pensar que puede haber diferencias significativas, y aquellas páginas publicadas en <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, suelen tener menos errores... pero no. De aquellas webs que incluyen el icono de conformidad de código válido (puedes verlos <a xml:lang="en" hreflang="en" href="http://www.w3.org/QA/Tools/Icons">The W3C "validation" icons</a>), el porcentaje de páginas que mienten - es decir, que no tienen el código correcto -, es muy similar en <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> y <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>: alrededor del 50%. Lo cierto es que incluir un icono de conformidad hoy en día tiene muy poco valor, ya sea para <em>confirmar</em> que el código es válido o que la web cumple los criterios de accesibilidad indicados. Vale, estamos en el 2011 y el estudio es del año 2008, pero honestamente, no creo que las cosas hayan cambiado mucho.</p>
<p>Por eso los navegadores tienen que intentar <em>adivinar</em> como interpretar más o menos el código de la vida real, por muy malo que sea y  por muchos errores que tenga. Y por supuesto, tienen la obligación moral - ya el  <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> recomienda, no obliga -, de cumplir las Recomendaciones (la denominación del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> equivalente a estándar) que publica. Algunos aspectos de las recomendaciones, tienen una tolerancia al error <em>asumible</em>, en el sentido de que <q>no pasa nada</q> si no funciona: no es importante, o existen alternativas para solucionarlas. Pero en otros casos, las consecuencias pueden ser críticas y la transcendencia e importancia sobrepasan los tolerable. Uno de esos casos es el nulo soporte de <span xml:lang="en">Internet Explorer</span>, desde su versión 6 hasta la actual, la 8, para <code>application/xhtml+xml</code> (menos mal que en la versión 9 de Internet Explorer <em>por fin</em> lo soporta).</p>
<h3><code>text/html</code> y <code>application/xhtml+xml</code></h3>
<h4><code>text/html</code> y <code>application/xhtml+xml</code>: un poco de historia</h4>
<p>Tras la introducción podemos empezar diciendo que para <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> 4.01 (1999) el <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> especificó que las páginas se enviasen con el <acronym title="Multipurpose Internet Mail Extensions" xml:lang="en">MIME</acronym> <span xml:lang="en">Type</span> <code>text/html</code>.</p>
<p>Más tarde, surgió <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0. En la primera edición (año 2000) todavía no estaba claro que <acronym title="Multipurpose Internet Mail Extensions" xml:lang="en">MIME</acronym> <span xml:lang="en">Type</span> se iba a utilizar (leer <a xml:lang="en" hreflang="en" href="http://www.w3.org/TR/2000/REC-xhtml1-20000126/#media">XHTML 1.0 (<span xml:lang="es">primera edición</span>): 5.1 Internet Media Type</a> para verlo en la especificación). Pero en la segunda edición, hay dos opciones:</p>
<ul>
<li>enviarlo como <code>text/html</code> para ser compatible con los navegadores más antiguos.</li>
<li>o bien enviarlo como <code>application/xhtml+xml</code> - definido en <a hreflang="en" type="text/plain" href="http://ietf.org/rfc/rfc3236.txt">RFC3236</a> (2002) -, para aquellos navegadores que interpretaban correctamente <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>, y que podían aprovechar sus ventajas.</li>
</ul>
<p>Entre los navegadores que interpretaban correctamente las páginas <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servidos como <code>application/xhtml+xml</code> - hablamos del 2002 -, estaban prácticamente todos los de la época y los que surgieron poco después. Hablamos de los tristemente difuntos <span xml:lang="en">Mozilla</span> y <span xml:lang="en">Netscape</span>, además de los que todavía siguen en activo: <span xml:lang="en">Firefox, Opera, Camino, Safari</span>... Incluso aquellos navegadores para móviles que soportaban <acronym title="Wireless Application Protocol" xml:lang="en">WAP</acronym>2, (insisto, hablamos del 2002)... todos interpretaban correctamente las páginas <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servidas como <code>application/xhtml+xml</code>.</p>
<p>¿Todos? Todos..., excepto <span xml:lang="en">Internet Explorer</span>. A día de hoy, año 2011, con la versión 8 de su navegador a punto de ser reemplazada (al menos en teoría, todavía hay muchas versiones 6), en <span xml:lang="en">Microsoft</span> ha estado ignorando un estándar que tiene ya 9 años. Desde la versión 6 <acronym title="Service Pack" xml:lang="en">SP</acronym> 1, hasta la versión 8 (incluida). Sin comentarios.</p>
<h4>Posibilidades de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servido como <code>application/xhtml+xml</code></h4>
<p><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servido como <code>application/xhtml+xml</code> es interpretado como un documento <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> <em>de verdad</em>. Gracias a la <strong>extensibilidad</strong> mediante la modularización de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> - por la <strong>X</strong> inicial -, tiene las siguientes posibilidades:</p>
<ul>
<li>Lo típico, combinar <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.1 con estándares clásicos como <acronym title="Scalable Vector Graphics" xml:lang="en">SVG</acronym>, <acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym> ó <acronym title="Synchronized Multimedia Integration Lenguage" xml:lang="en">SMIL</acronym>.</li>
<li>Validación <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>.</li>
<li>Desde el punto de vista de la Web Semántica, podemos usar <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Resource Description Framework attribute">RDFa</acronym>, que ya es recomendación del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym>, y nos permite añadir información semántica de gran riqueza (ver <a xml:lang="en" href="http://www.w3.org/TR/xhtml-rdfa-primer/"><acronym title="Resource Description Framework attribute">RDFa</acronym> Primer</a> y <a xml:lang="en" href="http://www.w3.org/TR/rdfa-syntax/"><acronym title="Resource Description Framework attribute">RDFa</acronym> in <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>: Syntax and Processing</a>) ó usar <a xml:lang="en" href="http://www.w3.org/TR/xhtml-role/"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Role Attribute Module</a>, también relacionado, entre otros aspectos, con la accesibilidad y adaptación a diferentes dispositivos. <span xml:lang="en"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Role Attribute Module</span> es más limitado pero útil (ojo, que de momento sólo es un borrador de trabajo).</li>
<li>Desde el punto de vista de la accesibilidad, podemos usar <a xml:lang="en" href="http://www.w3.org/TR/xhtml-access/"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Access Module</a>, aunque todavía es un borrador de trabajo.</li>
<li>... y lo que vaya saliendo, porque la modularización de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> tiene muchas posibilidades (digo yo, que con <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>5 no se cargarán <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, ¿no?).</li>
</ul>
<h4>A tener en cuenta cuando usamos <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servido como <code>application/xhtml+xml</code></h4>
<p>Se supone que antes de desarrollar en <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, has leído <a href="http://www.w3.org/TR/xhtml1/"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 The Extensible HyperText Markup Language</a> y especialmente la sección <a xml:lang="en" hreflang="en" href="http://www.w3.org/TR/xhtml1/#guidelines">C. <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> 1.0 The Extensible HyperText Markup Language Compatibility Guidelines</a>. Y lo más importante: <strong>entiendes todo</strong>. Por descontado, tienes la buena costumbre de comprobar que tu código es válido (por ejemplo en <a xml:lang="en" hreflang="en" href="http://validator.w3.org/">The <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> Markup Validation Service</a>).</p>
<p>En cualquier caso, al usar <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> servido como <code>application/xhtml+xml</code>, hay que tener presente algunos aspectos muy importantes, que en ocasiones inconvenientes, que puedes encontrar en <a href="http://hixie.ch/advocacy/xhtml">Hixie: Sending <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> as <code>text/html</code> Considered Harmful</a>, secciones "<span xml:lang="en">SPECIFIC PROBLEMS</span>" y "<span xml:lang="en">The Myth of "HTML-compatible XHTML 1.0 documents</span>" (por cierto, ¡está en formato txt!). El artículo de <span xml:lang="en">Hixie</span>, actual editor de la especificación de <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> 5, es una referencia importante al recopilar las particularidades de <code>application/xhtml+xml</code>, y emite conclusiones discutibles. Pero tú, inteligente lector, tienes la capacidad de sacar tus propias conclusiones. Personalmente creo, que recomendar a los novatos no aprender <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> es una estupidez de las gordas. Aún así, repito: el artículo es una referencia, y muy importante, sobre <code>application/xhtml+xml</code>.</p>
<h3>Citas del W3C sobre <code>text/html</code> y <code>application/xhtml+xml</code></h3>
<h4>Especificación de <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> 4.01 (24 de diciembre de 1999)</h4>
<blockquote xml:lang="en" cite="http://www.w3.org/TR/html401/conform.html#h-4.3"><p><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> documents are sent over the Internet as a sequence of bytes accompanied by encoding information (described in the section on <a href="http://www.w3.org/TR/html401/charset.html#encodings">character encodings</a>). The structure of the transmission, termed a <span class="index-def" title="message entity"><dfn>message entity,</dfn></span> is defined by <a class="normref" rel="biblioentry" href="http://www.w3.org/TR/html401/references.html#ref-RFC2045">[RFC2045]</a> and <a class="normref" rel="biblioentry" href="http://www.w3.org/TR/html401/references.html#ref-RFC2616">[RFC2616]</a>. A message entity with a <a href="http://www.w3.org/TR/html401/types.html#type-content-type">content type</a> of "<code>text/html</code>" represents an <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> document.</p></blockquote>
<p><a hreflang="en" href="http://www.w3.org/TR/html401/conform.html#h-4.3"><cite><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> 4.01 Specification : 4.3 The <code>text/html</code> content type</cite></a></p>
<h4>Segunda edición de la especificación de <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 (1 de agosto de 2002)</h4>
<blockquote xml:lang="en" cite="http://www.w3.org/TR/xhtml1/#media"><p><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Documents which follow the guidelines set forth in <a href="http://www.w3.org/TR/xhtml1/#guidelines">Appendix C</a>, "<acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> Compatibility Guidelines" may be labeled with the Internet Media Type "<code>text/html</code>" [<a class="nref" href="http://www.w3.org/TR/xhtml1/#ref-rfc2854">RFC2854</a>], as they are compatible with most <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> browsers. Those documents, and any other document conforming to this specification, may also be labeled with the Internet Media Type "<code>application/xhtml+xml</code>" as defined in [<a class="nref" href="http://www.w3.org/TR/xhtml1/#ref-rfc3236">RFC3236</a>]. For further information on using media types with <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>, see the informative note [<a class="nref" href="http://www.w3.org/TR/xhtml1/#ref-xhtmlmime">XHTMLMIME</a>].</p></blockquote>
<p xml:lang="en"><cite><a hreflang="en" href="http://www.w3.org/TR/xhtml1/#media"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>™ 1.0 The Extensible HyperText Markup Language (Second Edition): 5.1. Internet Media Type</a></cite></p>
<h4><span xml:lang="en"><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> and <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Frequently Answered Questions</span> (21 de julio del 2004).</h4>
<blockquote xml:lang="en" cite="http://www.w3.org/MarkUp/2004/xhtml-faq/"><p><strong>Why is it allowed to send <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 documents as <code>text/html</code>?</strong></p>
<p><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> is an <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> format; this means that strictly speaking it should be sent with an <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>-related media type (<code>application/xhtml+xml</code>, <code>application/xml</code>, or <code>text/xml</code>). However <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 was carefully designed so that with care it would also work on legacy <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> user agents as well. If you follow some simple guidelines, you can get many <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 documents to work in legacy browsers. However, legacy browsers only understand the media type text/html, so you have to use that media type if you send <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 documents to them. But be well aware, sending <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> documents to browsers as <code>text/html</code> means that those browsers see the documents as <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> documents, not <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> documents.</p>
<p><strong>Which browsers accept the media type <code>application/xhtml+xml</code>?</strong></p>
<p>Browsers known to us include all Mozilla-based browsers, such as Mozilla,Netscape 5 and higher, Galeon and Firefox, as well as Opera, Amaya, Camino, Chimera, DocZilla, iCab, Safari, and all browsers on mobile phones that accept <acronym title="Wireless Application Protocol" xml:lang="en">WAP</acronym>2. In fact, any modern browser. Most accept <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> documents as <code>application/xml</code> as well. See the <a href="http://www.w3.org/People/mimasa/test/xhtml/media-types/results"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Media-type test</a> for details.</p>
<p><strong>Does Microsoft Internet Explorer accept the media type <code>application/xhtml+xml</code>?</strong></p>
<p>No. However, there is a trick that allows you to serve <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>1.0 documents to Internet Explorer as <code>application/xml</code>.</p>
<p>Include at the top of your document the line in bold here:</p>
<pre><code>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
<strong>&lt;?xml-stylesheet type="text/xsl" href="copy.xsl"?&gt;</strong>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

	&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
	&lt;head&gt;</code></pre>
<p>where <code>copy.xsl</code> is a file that contains the following:</p>
<pre><code>&lt;stylesheet version="1.0"
	xmlns="http://www.w3.org/1999/XSL/Transform"&gt;
	&lt;template match="/"&gt;
		&lt;copy-of select="."/&gt;

	&lt;/template&gt;
&lt;/stylesheet&gt;</code></pre>
<p>Note that this file must be on the same site as the document referring to it.</p>
<p>Although you are serving the document as <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>, and it gets parsed as <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>, the browser thinks it has received <code>text/html</code>, and so your <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 document must follow many of the guidelines for serving to legacy browsers.</p>
<p>Your <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> document will continue to work on browsers that accept <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> 1.0 as <code>application/xml</code>.</p></blockquote>
<p xml:lang="en"><a hreflang="en" href="http://www.w3.org/MarkUp/2004/xhtml-faq/"><cite><acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym> and <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Frequently Answered Questions</cite></a></p>
<h4><span xml:lang="en">Working Group Note</span> : <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> <span xml:lang="en">Media Types - Second Edition</span> (16 de enero del 2009)</h4>
<blockquote xml:lang="en" cite="http://www.w3.org/TR/xhtml-media-types/#abstract"><p>Many people want to use <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> to author their web pages, but are confused about the best ways to deliver those pages in such a way that they will be processed correctly by various user agents[...]</p></blockquote>
<p><cite><a xml:lang="en" hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#abstract"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Media Types - Second Edition: Abstract</a></cite></p>
<blockquote xml:lang="en"><p>After the publication of [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-xhtml1"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>1</a>], an RFC for <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> media types was revised and published as RFC 3023 [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-rfc3023">RFC3023</a>], and it introduced the '<code>+xml</code>' suffix convention for <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>-based media types. The '<code>application/xhtml+xml</code>' media type [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-rfc3236">RFC3236</a>] was registered following that convention.</p>
<p>[...]</p>
<p>In general, '<code>application/xhtml+xml</code>' should be used for <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> Family documents, and the use of '<code>text/html</code>' should be limited to <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>-compatible <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family documents intended for delivery to user agents that do not explicitly state in their <acronym title="HyperText Transfer Protocol" xml:lang="en">HTTP</acronym> Accept header that they accept '<code>application/xhtml+xml</code>' [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-http"><acronym title="HyperText Transfer Protocol" xml:lang="en">HTTP</acronym></a>].</p>
<p>[...]</p>
<p>Note that, because of the lack of explicit support for <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> (and <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> in general) in some user agents, only very careful construction of documents can ensure their portability (see <a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#compatGuidelines">Appendix A</a>). If you do not require the advanced features of <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family markup languages (e.g., <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> <acronym title="Document Object Model" xml:lang="en">DOM</acronym>, <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> Validation, extensibility via <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Modularization, semantic markup via <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Resource Description Framework attribute">RDFa</acronym>, Assistive Technology access via the <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Role and <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Access modules, etc.), you may want to consider using <acronym xml:lang="en">HTML</acronym> 4.01 [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-html4">HTML</a>] in order to reduce the risk that content will not be portable to <acronym xml:lang="en">HTML</acronym> user agents. Even in that case authors can help ensure their portability AND ease their eventual migration to the <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family by ensuring their documents are valid [<a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#ref-validator">VALIDATOR</a>] and by following the relevant guidelines in <a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#compatGuidelines">Appendix A</a>.</p></blockquote>
<p><cite><a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#compatGuidelines"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Media Types - Second Edition: Introduction</a></cite></p>
<blockquote xml:lang="en" cite="http://www.w3.org/TR/xhtml-media-types/#application-xhtml-xml"><p>The '<code>application/xhtml+xml</code>' media type [<a href="http://www.w3.org/TR/xhtml-media-types/#ref-rfc3236">RFC3236</a>] is the <strong>primary</strong> media type for <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family documents.</p>
<p>'<code>application/xhtml+xml</code>' should be used for serving <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> documents to <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> user agents (agents that <em>explicitly</em> indicate they support this media type).</p>
<p>This media type must be used when writing documents using <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family document types that add elements and attributes from foreign namespaces, such as <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym> [<a href="http://www.w3.org/TR/xhtml-media-types/#ref-xhtml-mathml"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym></a>].</p></blockquote>
<p xml:lang="en"><a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#application-xhtml-xml"><cite><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Media Types - Second Edition: 3.1. '<code>application/xhtml+xml</code>'</cite></a></p>
<blockquote xml:lang="en" cite="http://www.w3.org/TR/xhtml-media-types/#text-html"><p>The '<code>text/html</code>' media type [<a href="http://www.w3.org/TR/xhtml-media-types/#ref-rfc2854">RFC2854</a>] is primarily for HTML, not for <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>.  In general, this media type is <strong>NOT</strong> suitable for <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> except when the <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> is  conforms to the guidelines in <a href="http://www.w3.org/TR/xhtml-media-types/#compatGuidelines">Appendix A</a>.</p>
<p>In particular, '<code>text/html</code>' is <strong>NOT</strong> suitable for <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Family document types that add elements and attributes from foreign namespaces, such as <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym> [<a href="http://www.w3.org/TR/xhtml-media-types/#ref-xhtml-mathml"><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym>+<acronym title="Mathematical Markup Language" xml:lang="en">MathML</acronym></a>].</p></blockquote>
<p xml:lang="en"><a hreflang="en" href="http://www.w3.org/TR/xhtml-media-types/#text-html"><cite><acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> Media Types - Second Edition: 3.2. '<code>text/html</code>'</cite></a></p>
<h4>Otras referencias</h4>
<ul xml:lang="en">
<li><a href="http://webkit.org/blog/68/understanding-html-xml-and-xhtml/">Surfin' Safari: Understanding <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>, <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> and <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym></a></li>
<li><a href="https://developer.mozilla.org/en/Mozilla_Web_Developer_FAQ">Mozilla Web Developer <acronym title="Frequently Asked Questions" xml:lang="en">FAQ</acronym></a>.</li>
<li><a href="http://hixie.ch/advocacy/xhtml">Hixie: Sending <acronym title="eXtensible Hypertext Markup Language" xml:lang="en">XHTML</acronym> as <code>text/html</code> Considered Harmful</a>.</li>
</ul>
<h3>Al final</h3>
<p>Aquí no hay moraleja que valga: pero si hay una recomendación coherente, los navegadores y los desarrolladores las interpretan correctamente, y los navegadores antiguos no se ven perjudicados, perfecto. Si no, en la historia de la web, que no tiene demasiados años, podemos encontrar algún que otro "Caso de fracaso": el aquí ampliamente expuesto,  <a title="Guerra de Navegadores en la wikipedia" href="http://es.wikipedia.org/wiki/Guerra_de_navegadores">Guerra de Navegadores</a>, la interpretación personal de Explorer del modelo de caja (<a title="La particular interpretación del modelo de caja de Internet Explorer explicado en la wikipedia" xml:lang="en" hreflang="es" href="http://es.wikipedia.org/wiki/Internet_Explorer_box_model_bug">Internet Explorer Box Model Bug</a>),... veremos al final que pasa con <acronym title="Hypertext Markup Language" xml:lang="en">HTML</acronym>5, pero miedo me da.</p>
]]></content:encoded>
			<wfw:commentRss>http://webposible.com/xposible/2011/lenguajes-de-marcado-en-la-web-y-mime-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera Web Standards curriculum traducido al castellano y al catalán</title>
		<link>http://webposible.com/xposible/2010/opera-web-standards-curriculum-traducido-al-castellano-y-al-catalan/</link>
		<comments>http://webposible.com/xposible/2010/opera-web-standards-curriculum-traducido-al-castellano-y-al-catalan/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 22:13:06 +0000</pubDate>
		<dc:creator>Gonzalo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Estándares web]]></category>

		<guid isPermaLink="false">http://webposible.com/xposible/?p=131</guid>
		<description><![CDATA[La UOC ha publicado dos traducciones de Opera Web Standards Curriculum en castellano y en catalán. Personalmente creo que es uno de los documentos más completos y elaborados sobre el desarrollo web. Muy útil para aprender y como material de consulta y referencia. Disponibles en: Lenguaje y estándares Llenguatges i estàndards Como extra, otro documento [...]]]></description>
			<content:encoded><![CDATA[<p>La <acronym title="Universitat Oberta de Catalunya" xml:lang="ca">UOC</acronym> ha publicado dos traducciones de <a xml:lang="en" hreflang="en" href="http://www.opera.com/company/education/curriculum/">Opera Web Standards Curriculum</a> en castellano y en catalán. Personalmente creo que es uno de los documentos más completos y elaborados sobre el desarrollo web. Muy útil para aprender y como material de consulta y referencia.<br />
Disponibles en:</p>
<ul>
<li><a href="http://mosaic.uoc.edu/ac/le/es/">Lenguaje y estándares</a></li>
<li><a xml:lang="ca" hreflang="ca" href="http://mosaic.uoc.edu/ac/le/ca/">Llenguatges i estàndards</a></li>
</ul>
<p>Como extra, otro documento muy útil para aprender sobre desarrollo web, <a href="http://frontdeandarporcasa.mamuso.net/"><span xml:lang="en">front end</span> de andar por casa</a>, de <a href="http://mamuso.net/">mamuso</a>.</p>
<p>Gracias a <a href="http://twitter.com/jsmanrique">jsmanrique</a> por la noticia en <span xml:lang="en">twitter (<q><a href="http://twitter.com/jsmanrique/status/10337564061" xml:lang="en">Spanish and Catalan translations of the Opera Web Standards curriculum</a></q>)</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webposible.com/xposible/2010/opera-web-standards-curriculum-traducido-al-castellano-y-al-catalan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

