# Historia de la Web: HTML y CSS

En esta lección se tratan los temas siguientes:

Cosas que faltan: faltan varias actividades del W3C y sus recomendaciones correspondientes (accesibilidad, Web services, WebCGM, etc., consultar actividades 1 y actividades 2) y otros temas no directamente tratados por el W3C como microformatos, buscadores, Flash / Apollo, Silverlight, etc

## Historia de la World Wide Web

La World Wide Web nació cerca de Ginebra (Suiza) en el CERN, el laboratorio europeo de física de partículas. Su principal creador fue Tim Berners-Lee (nacido en Londres en 1955), que propuso en 1989 la creación de un sistema de hipertexto para facilitar el intercambio de información entre los investigadores del CERN. En el verano de 1991, este sistema (servidor y navegador) se puso a disposición de todos los usuarios de Internet. El éxito de la web impulsó la creación en 1994 del W3C (World Wide Web Consortium), organismo formado por empresas y universidades de todo el mundo. El W3C se organiza en grupos de trabajo, en los que las empresas y organismos interesados desarrollan por consenso especificaciones que, una vez publicadas, reciben el nombre de recomendaciones.

El W3C está presidido por Berners-Lee y su objetivo es conducir la web a su pleno desarrollo, asegurando su estabilidad. El éxito de la web como espacio compartido de información y entretenimiento ha hecho necesario ir ampliando las capacidades de la web. Para conseguirlo, el W3C ha publicado un gran número de recomendaciones, que pueden consultarse en la web.

Pese al extraordinario desarrollo y utilización de la web, su breve historia está llena de crisis, pasos atrás y conflictos enquistados. Los usuarios de la web están interesados en que existan unas normas comunes que permitan la interoperabilidad y la competencia, pero las empresas que dominan un mercado suelen preferir que no existan normas comunes para que sus productos se conviertan en la norma "de facto" y asegurar su dominio.

El W3C tiene sedes en varios países. Desde octubre de 2003, existe una oficina española del W3C, con sede en Asturias. Entre otras cosas, mantienen una lista de recomendaciones del W3C traducidas al español.

El W3C no es el único organismo que juega un papel en el desarrollo de la web. La IETF (Internet Engineering Task Force) se ocupa desde 1986 del desarrollo de la arquitectura de Internet y publica las normas (que por razones históricas reciben el nombre de Request For Comments) que definen los protocolos empleados en Internet. La IANA (Internet Assigned Numbers Authority) se ocupa desde 1972 de la asignación de direcciones a cada ordenador conectado a Internet.

Volver al principio de la página

## Estándares web

Para que la web funcione, se necesitan tres mecanismos:

- la identificación de los recursos disponibles (URI)
- reglas de comunicación entre el servidor y el navegador (HTTP)
- un formato común para los documentos intercambiados (HTML, XML)

Tanto la identificación de los recursos como las reglas de comunicación son aspectos relativamente estables, mientras que el formato de los documentos ha tenido una evolución más compleja y continúa en desarrollo. A continuación se describen los diferentes estándares que conforman la web.

### URI (Uniform Resource Identifier = Identificador Uniforme del Recurso)

El URI de un elemento identifica su posición en la web (su "dirección" web). En un principio se utilizó el término URL (Uniform Resource Locator = Localizador Uniforme del Recurso).

- diciembre de 1994: RFC 1738 , escrita por Berners-Lee y otros, en la que se detallaban las reglas y características de los URLs.
- agosto de 1998: RFC 2396, escrita por Berners-Lee y otros, en la que ya se adoptó la denominación URI, más general y que engloba direcciones absolutas y relativas.
- enero de 2005: RFC 3986, escrita por Berners-Lee y otros, que sustituía a la RFC 2396 y que adecuaba las URIs a la internacionalización de los nombres de dominio.
- enero de 2005: RFC 3987, escrita por Martin Dürst y Michel Suignard, que definía los IRIs (Internationalized Resource Identifiers = Identificadores de Recursos Internacionalizados), permitiendo la utilización de caracteres Unicode.

El Sistema de Nombres de Dominios (DNS) permite convertir los nombres de dominio (escrito con caracteres) en direcciones IP (numéricas).

- noviembre de 1983: RFC 882 y RFC 883, escritas por Paul Mockapetris, en la que se definían el sistema de nombres de dominio y sus protocolos y servidores.
- noviembre de 1987: RFC 1034 y RFC 1035, escritas por Paul Mockapetris, que actualizaban y sustituían las RFC 882 y RFC 883.

El sistema DNS sólo permite los caracteres del alfabeto latino, los dígitos de 0 a 9, el punto y el guión (-). En 1986 M. Duerst propuso la internacionalización de los nombres, pero hasta marzo de 2003 no se publicaron las normas RFC 3454, RFC 3490, RFC 3491 y RFC 3492, escritas por Hoffman, Blanchet, Faltstrom y Costello, que definían el sistema IDNA (Nombres de Dominio Internacionalizados para Aplicaciones) para poder interpretar los nombres de dominios con caracteres Unicode.

El sistema IDNA (también llamado punycode) establece las reglas para transformar cadenas Unicode a cadenas de caracteres del sistema DNS. Por ejemplo, la dirección http://www.españa.es se traduce en http://www.xn--espaa-rta.es/.

Desde hace años bastantes dominios permiten ya el uso de caracteres no-ASCII. Por ejemplo, Chile lo permite desde 2005 (ejemplo: www.ñandú.cl), el dominio .cat lo permite desde 2006 (ejemplo: www.fundació.cat) y el dominio .es los permite desde octubre de 2007 (por ejemplo: www.león.es).

Los dominios internacionalizados no han tenido éxito, básicamente por dos motivos:

- El primero es que el correo electrónico no admite nombres internacionalizados, lo que puede generar confusión en los usuarios (las direcciones web y de correo electrónico de una misma empresa u organización tienen que ser distintos, con y sin acentos o eñes).
- El segundo y más importante es que un timador puede registrar un dominio internacionalizado similar a uno legítimo y atraer incautos a su web que no se han dado cuenta de que la dirección no es la misma (este procedimiento es una variedad de spoofing).

Firefox 1.5, Internet Explorer 7 ya admitían nombres de dominio internacionalizados (Internet Explorer 6 no los admitía). Para evitar suplantaciones, cada navegador utiliza una estrategia distinta. Internet Explorer muestra las direcciones como punycode si algún carácter es de un idioma no incluido en la lista de idiomas del navegador, Firefox muestra únicamente los dominios que consideran lícitos (porque han sido registrados por un registrador fiable) y Chrome muestra las direcciones como punnycode si algún carácter no es del idioma del navegador.

### HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto)

La web, como cualquier otro servicio de Internet, necesita unas reglas definidas de petición y entrega de la información. Las normas de este protocolo son publicadas por la IETF en forma de RCF:

- Las versiones iniciales (de 1991 hasta 1996) de este protocolo no llegaron a ser publicadas como norma.
- mayo de 1996: RFC 1945, escrita por Berners-Lee y otros, primera versión "oficial" HTTP 1.0.
- enero de 1997: RFC 2068, escrita por R. Fielding y otros, que definía la versión HTTP 1.1.
- junio de 1999: RFC 2616, escrita por R. Fielding y otros, que actualizaba el protocolo HTTP 1.1.
- mayo de 2000: RFC 2817, escrita por R. Khane y S. Lawrence, que actualizaba de nuevo el protocolo HTTP 1.1.

El protocolo HTTP no ha evolucionado en los últimos años, aunque se están desarrollado mejoras como SPDY (desarrollada por Google) para reducir la latencia del tráfico web.

Actualmente (marzo de 2012), la IETF está desarrollando la futura versión HTTP 2.0, que puede aprobarse en 2013.

Completar: ¿habría que hablar aquí de SOAP (HTTP para XML)?

### HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto)

Una página web es un documento de texto con marcas (también llamadas etiquetas). Las marcas permiten modificar la presentación del documento, incluir elementos no contenidos en el texto (por ejemplo, imágenes), crear hiperenlaces, etc. La utilización de marcas se remonta a los años 60 y su formalización culminó en 1986 con la publicación de la norma ISO 8879:1986 (las normas ISO son de pago), que definía el SGML (Standard Generalized Markup Language = Lenguaje de Marcas Generalizado y Normalizado).

Basándose en el SGML, Berners-Lee creó el HTML, definiendo un conjunto de marcas muy reducido que permitiera su utilización en cualquier sistema operativo y la creación de enlaces de hipertexto. El éxito de la World Wide Web en los primeros años 90 hizo necesario la ampliación de las características del HTML, lo que requería nuevas marcas. Este desarrollo fue impulsado por las empresas que desarrollaban los navegadores (básicamente Netscape y Microsoft) y fue un desarrollo bastante caótico que no se logró encauzar hasta mediados de los 90, con la creación del W3C (World Wide Web).

En noviembre de 1995 la IETF publicó la norma RFC 1866, escrita por Berners Lee y D. Connolly, que define la versión HTML 2.0. Esta versión recapitulaba el estado del HTML de 1994 y recibió el nombre de HTML 2.0 para distinguirla de los HTML anteriores, que nunca recibieron nombre oficial. LA IETF dejó de trabajar en este campo en 1996, aunque en junio de 2000 publicó la norma RFC 2854, que definía el tipo MIME (Multipurpose Internet Mail Extension) text/html y anulaba los RFC anteriores relativos al HTML.

El W3C publicó en enero de 1997 la recomendación HTML 3.2, escrita por Dave Raggett. Esta versión incorporó muchas estructuras nuevas al HTML (tablas, imágenes flotantes, applets, hojas de estilo). En abril de 1998 se publicó la recomendación HTML 4.0, editada por Dave Raggett y otros. Los cambios más importantes fueron la incorporación de los frames y la mayor relevancia de las hojas de estilo. En diciembre de 1999 se publicó la recomendación HTML 4.01, editada por Dave Raggett y otros, que modificaba ligeramente la versión anterior.

En HTML 4.01 se definen tres tipos de documentos: Strict (estricto), Frameset (con marcos) y Transitional (de transición). El tipo Transitional intenta parecerse a las versiones anteriores de HTML, manteniendo el mayor número posible de etiquetas. El tipo Frameset es como el Transitional, salvo que incluye además la posibilidad de crear marcos (frames). El tipo Strict elimina las etiquetas directamente relacionadas con el aspecto visual (como font, s o u).

Con estas recomendaciones, uno de los objetivos del W3C había sido profundizar la separación entre contenido y su presentación, es decir, eliminar del HTML las etiquetas que hicieran referencia directa al formato visual (y almacenar esta información en una hoja de estilo). Pero al mismo tiempo, el W3C tuvo que aumentar el número de etiquetas para dar respuesta a las demandas de los usuarios, cada vez más diferentes. Pero como estas demandas son inagotables, el W3C tomó un camino diferente: el XML. XML (eXtensible Markup Language = Lenguaje de Marcas Extensible) no es un nuevo lenguaje de marcas, sino las reglas para poder crear nuevos lenguajes de marcas compatibles entre sí. En febrero de 1998 se aprobó la recomendación XML 1.0, editada por Tim Bray y otros.

Lógicamente, el siguiente paso fue adaptar el HTML a las exigencias del XML. El resultado se publicó en enero de 2000: la recomendación XHTML 1.0 (Extensible HyperText Markup Language = Lenguaje de Marcas de HiperTexto Extensible), editada por Steven Pemberton y otros, de la que en agosto de 2002 se publicó la segunda edición, editada por Steven Pemberton y otros. En realidad, XHTML 1.0 no es más que el HTML 4.01 adaptado a las reglas (más formalizadas) del XML 1.0.

Paralelamente, para abordar el problema de la diversidad de aplicaciones, el W3C aprobó en abril de 2001 la recomendación Modularización del XHTML, editada por Murray Altheim y otros. La idea es dividir el lenguaje en grupos de marcas relacionadas para poder limitar o ampliar el lenguaje, definiendo por ejemplo perfiles xhtml+mathml o xhtm+mathml+svg.

En el camino de la modularización se aprobó en mayo de 2001 la recomendación XHTML 1.1, editada por Murray Altheim y Shane McCarron, que apenas modifica el XHTML 1.0 Strict, pero que se estructura de forma modular. También se han aprobado varias recomendaciones que desarrollan módulos definidos en la recomendación de modularización:

- diciembre de 2000: XHTML Basic, editada por Mark Baker y otros, que definía un XHTML mínimo.
- mayo de 2001: Anotación Ruby, editada por Michel Suignard y otros, que permite utilizar un estilo de escritura utilizado en algunas lenguas asiáticas.
- septiembre de 2006: XHTML Print, editada por Melinda Grant y Jim Bigelow, destinada a impresoras de bajo coste y sin memoria.
- julio de 2008: XHTML Basic 1.1, editada por Shane McCarron y Masayasu Ishikawa.
- octubre de 2008: Modularización del XHTML 1.1, editada por Daniel Austin y otros.
- octubre de 2008: RDFa en XHTML: sintaxis y procesamiento, editada por Ben Adida y otros.

En 2010 se publicaron segundas ediciones de algunas recomendaciones:

- julio de 2010: Modularización del XHTML 1.1 (2º edición), editada por Shane McCarron.
- noviembre de 2010: XHTML Basic 1.1 (2º edición), editada por Shane McCarron y Masayasu Ishikawa.
- noviembre de 2010: XHTML Print (2º edición), editada por Shane McCarron.
- noviembre de 2010: XHTML 1.1 (2º edición), editada por Murray Altheim y Shane McCarron.

A partir del año 2002, el grupo de trabajo del W3C dejó de funcionar y aunque formalmente continuaba el desarrollo de la recomendación XHTML 2.0, en la práctica su trabajo se convirtió en irrelevante.

Por desgracia, el paso del HTML al XHTML, que el W3C pensaba que sería inmediato, resultó ser un fracaso. Probablemente, el principal motivo del fracaso fue el problema de los tipos MIME en Intenet Explorer (en las versiones anteriores a IE9).

Los tipos MIME definen tipos de documentos y son la manera en que el servidor le dice al navegador qué tipo de documento le va a enviar. El tipo MIME de los documentos html es text/html mientras que el tipo MIME de los documentos xhtml es application/xhtml+xml. El problema es que los Internet Explorer anteriores a IE9 no admitían el tipo application/xhtml+xml y simplemente no mostraban los documentos enviados con este tipo MIME. La alternativa es enviar los documentos xhtml como text/html, pero eso genera multitud de problemas. El más importante es que los navegadores no tratan el documento como xhtml sino como html y por tanto el navegador piensa que el documento está lleno de errores, aunque los navegadores los ignoran y consiguen mostrar la página. Dado que Internet Explorer es el navegador más utilizado, prácticamente nadie envía los documentos xhtml con el tipo MIME application/xhtml+xml y como al enviarlos con el tipo MIME text/html se pierden todas las ventajas del xhtml, la conclusión es automática: no vale la pena usar xhtml. Actualmente (septiembre de 2011) gran parte o la mayoría de las páginas disponibles en la web ni son XHTML ni se sirven como tal.

Ante este bloqueo que impedía el desarrollo del HTML (el W3C había abandonado el desarrollo del HTML en favor del XHTML pero el mercado -por culpa de Microsoft, especialmente- rechazaba el XHTML), en 2004 se creó el WHATWG (Web Hypertext Application Technology Working Group), un grupo de trabajo informal formado por individuos y empresas (Mozilla, Opera, Apple, Google entre ellas) y dedicado al desarrollo del HTML, sobre todo para facilitar el desarrollo de las aplicaciones Web. Este grupo empezó a elaborar las especificaciones HTML 5 (también llamada Web Applications 1.0), Web Forms 2.0 y Web Controls 1.0, editadas por Ian Hickson, con la intención de que en el futuro se publicaran como recomendaciones del W3C con el nombre de HTML 5.

A finales de 2006, Tim Berners-Lee anunció la creación de un nuevo grupo de trabajo sobre HTML dentro del W3C y la reestructuración de los grupos existentes para reintregar el trabajo del WHATWG.

En marzo de 2007 se creó el grupo de trabajo HTML con la misión de retomar el desarrollo del HTML y con participación de todos los implicados (incluso de Microsoft, que se mantiene al margen del WHATWG, pero que forma parte del grupo de trabajo HTML del W3C desde el verano de 2009). Este grupo adoptó los borradores del WHATWG y desde 2008 publica regularmente borradores de HTML 5 idénticos a los borradores del WHATWG.

En marzo de 2007 también se creó el grupo de trabajo XHTML2 con la misión de continuar el desarrollo del XHTML, pero ese grupo se cerró en diciembre de 2009 sin llegar a publicar la recomendación del XHTML 2.0.

En enero de 2011, el W3C anunció su compromiso definitivo con el HTML 5 y la intención de publicar la recomendación en 2014. Simultáneamente, el WHATWG anunció que cambiaba su modelo de desarrollo a un modelo de desarrollo continuo, es decir, dejar de hablar de versiones de HTML, llamarlo siempre HTML y que la norma se vaya modificando continuamente (véase este blog dedicado a la evolución de los borradores de HTML).

Actualmente (septiembre de 2011) este reparto de papeles está funcionando (el WHATWG desarrollando continuamente el HTML, los navegadores implementando el HTML del WHATWG y el W3C fijando versiones cada ciertos años), pero para que funcione a largo plazo será necesario el compromiso de todos los actores, especialmente Microsoft.

### CSS (Cascading Style Sheets = Hojas de estilo en cascada)

Las hojas de estilo es el mecanismo elegido por el W3C para separar la presentación de una página web de su contenido. En las primeras versiones del html, el aspecto visual (tipos de letras, colores, etc) se incorporaba en la propia página web. Trabajando con hojas de estilo, la página web (el fichero .html) no contiene información sobre la forma de representar la página, sino que esa información se encuentra en la hoja de estilo (el fichero .css). Las ventajas son evidentes: se asegura la uniformidad del diseño (ya que varias páginas pueden utilizar la misma hoja de estilo) y se facilita su modificación (ya que sólo hay que cambiar el diseño en la hoja de estilo). Se denominan Hojas de Estilo en Cascada, porque la información de estilo se puede situar en varios lugares (hoja de estilo externa, hoja de estilo incluida en la página web o estilos incluidos en las etiquetas de la página web) y se aplican de forma jerárquica.

En diciembre de 1996 se aprobó la recomendación CSS nivel 1, escrita por Håkon Wium Lie y Bert Bos. En enero de 1999, se aprobó una versión revisada, CSS nivel 1 revisada, escrita por Håkon Wium Lie y Bert Bos, que básicamente corregía erratas y errores menores. En mayo de 1998 se aprobó la recomendación CSS nivel 2, editada por Bert Bos y otros, que manteniendo la compatibilidad con las hojas de estilo de nivel 1, incluía nuevas características (posicionamiento, estilos de tablas) y permitía la utilización de hojas de estilo adaptadas al medio de presentación (visual, oral, impreso, etc).

Como en el caso del XHTML, aunque por razones distintas, el grupo de trabajo sobre hojas de estilos prácticamente dejó de funcionar durante unos años. En el año 2001 Microsoft se hizo con más del 90% del mercado de los navegadores y dejó de sacar nuevas versiones de Internet Explorer. Internet Explorer 6 fue el navegador hegemónico hasta 2008 y su implementación de la recomendación CSS nivel 2 era pésima (no solamente no implementaba muchas características de la recomendación, sino que implementaba otras muchas al revés de lo que decía la recomendación). En esas condiciones, no tenía sentido continuar desarrollando nuevas recomendaciones cuando la antigua no se utilizaba.

Formalmente el grupo de trabajo siguió trabajando preparando:

- la recomendación CSS 2.1, una "puesta al día" de la recomendación CSS nivel 2, corrigiendo erratas, eliminando aspectos que los navegadores no han incluido en los últimos años y añadiendo aspectos que sí han incorporado los navegadores.
- unas versiones reducidas de CCS 2 para teléfonos móviles, televisión e impresoras .
- la recomendación CSS nivel 3, con un enfoque distinto a las anteriores. En vez de elaborar una única recomendación como en las versiones anteriores, las diferentes partes se separaron en recomendaciones distintas (más de 30), en teoría para facilitar su actualización.

Pero en la práctica apenas se publicaron algunos borradores, a un ritmo lentísimo.

Con la aparición del navegador Firefox en 2004, comprometido con el cumplimiento de las recomendaciones del W3C, y su uso creciente, Microsoft se vio obligado a actualizar Internet Explorer y mejorar el cumplimiento de las recomendaciones. A medida que los navegadores han ido cumpliendo CSS nivel 2, el ritmo de trabajo se ha ido recuperando. En marzo de 2009 Microsoft publicó Internet Explorer 8 que ya cumplía correctamente la recomendación CSS 2, uniéndose al resto de navegadores que ya lo hacían (Firefox, Opera, Chrome, etc).

- abril de 2008: CSS nivel 2 (revisión), editada por Bert Bos y otros.
- junio de 2011: CSS 2.1, editada por Bert Bos y otros.
- junio de 2011: CSS módulo de color nivel 3, editada por Tantek Çelik y otros.
- septiembre de 2011: Espacios de nombres CSS, editada por Elika J. Etemad y Anne van Kesteren.
- septiembre de 2001: CSS selectores nivel 3, editada por Tantek Çelik y otros.

### ECMAScript y DOM

ECMAScript (habitualmente denominado JavaScript) es un lenguaje de programación diseñado para ser incluido dentro de las páginas web. Para facilitar el acceso y manipulación de los elementos de las páginas web a cualquier lenguaje de programación (no solamente a ECMAScript), el W3C desarrolló un interface denominado DOM (Document Object Model = Modelo de Objeto de Documento).

#### ECMAScript

JavaScript fue creado por Brendan Eich en 1995 para Netscape y su nombre se debe a que se trata de un lenguaje de script con una sintaxis similar a la del lenguaje de programación Java. Netscape delegó en la ECMA (European Computer Manufacturers Association) la normalización del lenguaje. De hecho el nombre correcto del lenguaje es ECMAScript, aunque incorrectamente se le suele llamar todavía JavaScript. JavaScript es en realidad la adaptación de ECMAScript soportada por Netscape/Mozilla, de la misma manera que jscript es la adaptación de ECMAScript soportada por Internet Explorer.

- junio de 1997: ECMAScript (1º edición), la norma ECMA-262.
- agosto de 1998: ECMAScript (2º edición).
- diciembre de 1999: ECMAScript (3º edición).
- junio de 2004: ECMA-357 (1º edición), que añade a ECMAScript su uso en documentos XML.
- diciembre de 2005: ECMA-357 (2º edición).
- diciembre de 2009: ECMAScript (5º edición, la cuarta edición no se publicó nunca)
- junio de 2011: ECMAScript (versión 5.1) (junto con un conjunto de pruebas de compatibilidad disponible en http://test262.ecmascript.org/#).

Netscape y posteriormente la Fundación Mozilla han ido incluyendo varias versiones de JavaScript en sus navegadores.

- JavaScript 1.0 se incluyó en Netscape 2.0 (marzo de 1996) y era capaz de procesar datos numéricos y modificar el contenido de los formularios. La forma de acceder y manipular los elementos de la página recibió el nombre de DOM level 0 (Document Object Model = Modelo de Objeto de Documento).
- JavaScript 1.1 se incluyó en Netscape 3.0 (agosto de 1996).
- JavaScript 1.2 se incluyó en Netscape 4.0 (junio de 1997).
- JavaScript 1.3 se incluyó en Netscape 4.5 (octubre de 1998).
- JavaScript 1.4 no fue incluido en ningún navegador, sino en el servidor de Netscape.
- JavaScript 1.5 se incluyó en Netscape 6.0 (noviembre de 2000).
- JavaScript 1.6 se incluyó en Firefox 1.5 (noviembre de 2005).
- JavaScript 1.7 se incluyó en Firefox 2.0 (octubre de 2006).
- JavaScript 1.8 se incluyó en Firefox 3.0 (junio de 2008).
- JavaScript 1.8.1 se incluyó en Firefox 3.5 (junio de 2009).
- JavaScript 1.8.2 se incluyó en Firefox 3.6 (enero de 2010).
- JavaScript 1.8.5 se incluyó en Firefox 4 (marzo de 2011).

Microsoft ha ido incluyendo varias versiones de jscript en sus navegadores.

- jscript 1.0 se incluyó en Internet Explorer 3.0 (agosoto de 1996).
- jscript 2.0 se incluyó en Internet Explorer 3.02 (enero de 1997).
- jscript 3.0 se incluyó en Internet Explorer 4.0 (octubre de 1997).
- jscript 4.0 no se incluyó en ningún navegador.
- jscript 5.0 se incluyó en Internet Explorer 5.0 (marzo de 1999).
- jscript 5.5 se incluyó en Internet Explorer 5.5 (julio de 2000).
- jscript 5.6 se incluyó en Internet Explorer 6.0 (octubre de 2001).
- jscript 5.7 se incluyó en Internet Explorer 7.0 (noviembre de 2006).
- jscript 5.8 se incluyó en Internet Explorer 8.0 (marzo de 2009).
- jscript 9.0 se incluyó en Internet Explorer 9.0 (marzo de 2011).

Existe un jscript 7.0 (llamado jscript .NET) y un jscript 8.0, pero creo que no se ha incluido en ningún navegador.

Las sucesivas versiones de JavaScript y jscript han ido convergiendo hacia el estándar ECMAScript, aunque no de forma total. Este comportamiento (más acusado en el caso de Microsoft) ha supuesto un quebradero de cabeza para los desarrolladores.

#### DOM (Document Object Model = Modelo de Objeto de Documento)

El DOM es un interface que permite a los programas y scripts acceder y modificar dinámicamente el contenido, la estructura y el estilo de los documentos. El documento puede ser procesado posteriormente y el resultado del procesamiento se puede actualizar en el documento que se está mostrando. La recomendación DOM level 1 trataba sobre documentos HTML y XML. Las recomendaciones DOM level 2 añadieron al nivel 1 nuevos aspectos como el tratamiento de espacios de nombres XML o de eventos. Las recomendaciones DOM level 3 añadieron al nivel 2 nuevos aspectos como el tratamiento de XML Information Set o XML Base.

- octubre de 1998: Document Object Model (DOM) level 1, editada por Vidur Apparao y otros.
- noviembre de 2000: DOM Level 2 Core Specification 1.0, editada por Arnaud Le Hors y otros.
- noviembre de 2000: DOM Level 2 Views Specification 1.0, editada por Arnaud Le Hors y otros.
- noviembre de 2000: DOM Level 2 Events Specification 1.0, editada por Tom Pixley.
- noviembre de 2000: DOM Level 2 Style Specification 1.0, editada por Chris Wilson y otros.
- noviembre de 2000: DOM Level 2 Traversal and Range Specification 1.0, editada por Joe Kesselman.
- enero de 2003: DOM Level 2 HTML Specification 1.0, editada por Vidur Apparao y otros.
- enero de 2004: DOM Level 3 Validation Specification 1.0, editada por Vidur Apparao y otros.
- abril de 2004: DOM Level 3 Core Specification 1.0, editada por Arnaud Le Hors y otros.
- abril de 2004: DOM Level 3 Load and Save Specification 1.0, editada por Johnny Stenback y Andy Heninger.

Actualmente (enero de 2012) se están preparando las recomendaciones DOM Level 3 Events Specification y DOM4.

#### DHTML (Dynamic HTML = HTML Dinámico)

El término DHTML (Dynamic HTML = HTML Dinámico) no corresponde a ninguna recomendación del W3C. Es un término comercial utilizado a finales de los 90 para referirse a las páginas webs que utilizaban hojas de estilo y rutinas ECMAScript para aumentar la interactividad. El término ha caido en desuso.

#### AJAX y Web 2.0

Completar.

### Otros lenguajes de marcas

Además del XHTML, el W3C desarrolla otros lenguajes de marcas, dirigidos a dominios específicos, como por ejemplo:

- MathML (Lenguaje de Marcas Matemático)
- SVG (Scalable Vector Graphics = Gráficos Vectoriales Escalables)
- XForms (formularios)
- SMIL (Synchronized Multimedia Integration Language = Lenguaje de Integración Multimedia Sincronizada)
- SSML (Speech Synthesis Markup Language = Lenguaje de Marcas para Síntesis de voz)

#### MathML (Mathematical Markup Language = Lenguaje de Marcas Matemático)

MathML es un lenguaje de marcas dirigido a la representación de fórmulas matemáticas.

- abril de 1998: MathML 1.0, editada por Patrick Ion y Robert Miner.
- julio de 1999: MathML 1.01, editada por Patrick Ion y Robert Miner, que básicamente corregía errores de la primera versión.
- febrero de 2001: MathML 2.0, editada por Robert Carlisle y otros, en la que se introdujeron y eliminaron algunos elementos.
- octubre de 2003: MathML 2.0 (2º edición), editada por David Carlisle y otros.
- abril de 2010: XML Entity Definitions for Characters, editada por David Carlisle y Patrick.
- junio de 2011: A MathML for CSS profile, editada por Bert Bos y otros.
- octubre de 2010: MathML 3.0, editada por David Carlisle y otros, en la que se introdujeron algunos elementos (escritura bidireccional, notación para matemáticas elementales, etc.).

Se puede consultar el funcionamiento de MathML en Firefox, Internet Explorer y Chrome en la lección sobre MathML.

#### SVG (Scalable Vector Graphics = Gráficos Vectoriales Escalables)

SVG es un lenguaje de marcas dirigido a la representación de gráficos vectoriales (dibujos y texto).

- septiembre de 2001: SVG 1.0, editada por Jon Ferraiolo.
- enero de 2003: SVG 1.1, editada por Dean Jackson.
- enero de 2003: Mobile SVG Profiles, editada por Tolga Capin, en la que se definían dos versiones para dispositivos móviles, SVG Tiny (para teléfonos móviles) y SVG Basic (para PDAs).
- diciembre de 2008: SVG Tiny 1.2, editada por Ola Andersson y otros.
- agosto de 2011: SVG 1.1 (2º edición), editada por Erik Dahlström y otros.

Actualmente (septiembre de 2011), el W3C está preparando las recomendaciones SVG 1.2 Full, SVG Print 1.2 (que tendrá varias partes, Requisitos, Introducción y Lenguaje), dirigida a entornos de impresión, y SVG Color 1.2 (partes Introducción y Lenguaje), pero no está previsto que se publiquen antes de 2012.

Poco a poco SVG se está imponiendo como formato común para gráficos vectoriales. Muchos editores gráficos permiten exportar los dibujos en formato SVG o incluso trabajan con SVG como formato nativo, por ejemplo Inkscape, un editor con licencia GPL. También cabe destacar la colección de imágenes en formato SVG Open Clip Art Library, con licencia Creative Commons (dominio público). Los entornos de escritorio de GNU/Linux GNOME y KDE también utilizan el formato SVG como formato gráfico.

Se puede consultar el funcionamiento de SVG en Firefox, Internet Explorer y Chrome en la lección sobre SVG.

#### XForms

XForms es la evolución de los formularios HTML actuales.

- octubre de 2003: XForms 1.0, editada por Micah Dubinko y otros.
- marzo de 2006: XForms 1.0 (segunda edición), editada por John M. Boyer y otros.
- octubre de 2007: XForms 1.0 (tercera edición), editada por John M. Boyer.
- octubre de 2009: XForms 1.1, editada por John M. Boyer.

En mayo de 2010 el grupo de trabajo Forms se renovó por dos años, en los deben prepararse las recomendacones XForms 1.2, XForms 2.0. Actualmente (septiembre de 2011) se están preparando las recomendaciones XForms 1.0 Perfil Básico y XForms para HTML.

Completar con XForms en Firefox y en IE (formsPlayer).

#### SMIL (Synchronized Multimedia Integration Language = Lenguaje de Integración Multimedia Sincronizada)

SMIL es un lenguaje de marcas dirigido a la creación de presentaciones.

- junio de 1998: SMIL 1.0, editada por Philipp Hoschka.
- agosto de 2001: SMIL 2.0, editada por Jeff Ayars y otros.
- enero de 2005: SMIL 2.0 (2º edición), corrigiendo los errores de la primera edición.
- diciembre de 2005: SMIL 2.1, que extiende el uso de SMIL a otros lenguajes XML y define perfiles móviles.
- diciembre de 2008: SMIL 3.0 editada por Dick Bulterman y otros, que añade perfiles móviles.
- noviembre de 2010: Timed Text Markup Language TTML 1.0, editada por Glenn Adams.

Actualmente (septiembre de 2011) se está preparando la recomendación SMIL Timesheets 1.0, aunque el grupo no parece tener prácticamente actividad.

Completar: SMIL en Internet Explorer y Firefox, AmbulantPlayer

#### VoiceXML / SSML

La recomendación VoiceXML controla la interacción de las aplicaciones con el usuario, mientras que la recomendación SSML (Speech Synthesis Markup Language) se ocupa del control de la síntesis de voz y la recomendación SRGS (Speech Recognition Grammar Specification) está dirigida a los reconocedores de voz mediante gramáticas que describen la respuesta esperada de los usuarios.

- marzo 2000: VoiceXML 1.0 (no elaborada por el W3C, sino por el consorcio VoiceXML Forum).
- marzo de 2004: VoiceXML 2.0, editada por Scott McGlashan y otros.
- marzo de 2004: Speech Recognition Grammar Specification 1.0, editada por Andrew Hunt y Scott McGlashan.
- septiembre de 2004: Speech Synthesis Markup Language (SSML) 1.0, editada por Daniel C. Burnett y otros.
- abril de 2007: Semantic Interpretation for Speech Recognition (SISR) 1.0, editada por Luc Van Tichelen y Dave Burke.
- junio de 2007: VoiceXML 2.1, editada por Matt Oshry y otros.
- octubre de 2008: Pronunciation Lexicon Specification (PLS) 1.0 , editada por Paolo Baggia.
- septiembre de 2010: Speech Synthesis Markup Language (SSML) 1.1, editada por Daniel C. Burnett y Zhi Wei Shuang.
- julio de 2011: Voice Browser Call Control (CCXML) 1.0, editada por RJ Auburn.

Actualmente (septiembre de 2011) se están preparando las recomendaciones VoiceXML 3.0, VoiceXML 3.0 Requirements, State Chart XML (SCXML).

Volver al principio de la página

## Estándares gráficos

Las imágenes pueden almacenarse como imágenes de mapa de bits o como imágenes vectoriales. Dependiendo del contenido y del uso que quiera hacerse de las imágenes, resulta más conveniente utilizar un tipo u otro.

En este apartado se comentan únicamente tres formatos para los que el W3C ha publicado recomendaciones. Otros formatos se comentan en la lección sobre imágenes de mapa de bits.

### PNG

El formato PNG (Portable Network Graphics = Gráficos de Red Portátiles) surgió como alternativa a la reclamación de Unisys, poseedora de una patente del algoritmo LZW, usado en el formato GIF.

- enero de 1995: versión preliminar propuesta por Thomas Boutell.
- octubre de 1996: Portable Network Graphics Specification 1.0, editada por Thomas Boutell.
- noviembre de 2003: Portable Network Graphics Specification (2º edición), editada por David Duce y publicada también como norma ISO 15948.

Las ventajas de PNG son muchas: se trata de un formato libre, sin pérdida, que consigue mayor compresión que GIF (alrededor de un 20%), con transparencia alfa (cada pixel puede tener su propio nivel de transparencia), canal gamma (para ajustar el brillo) y entrelazado.

### SVG

Véase el apartado SVG en la sección "Otros lenguajes de marcas".

### WebCGM

Computer Graphics Metafile (CGM) es un formato de gráficos vectoriales 2D publicado como norma ISO (ISO 8632) en 1987 (norma actualizada en 1999). WebCGM añade a los archivos CGM la posibilidad de integrarse en páginas web y ha sido desarrollado por el W3C y el CGM Open, una sección de OASIS, un consorcio de empresas dedicado al desarrollo de normas abiertas para la sociedad de la información.

- enero de 1999: recomendación WebCGM Profile, escrita por David Cruikshank y otros.
- diciembre de 2001: recomendación WebCGM 1.0 (2º edición), escrita por David Cruikshank y otros.
- enero de 2007: recomendación WebCGM 2.0, editada por Benoit Bezaire y otros.
- marzo de 2010: recomendación WebCGM 2.1, editada por Benoit Bezaire y Lofton Henderson.

Volver al principio de la página

Esta obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 3.0 España.