HTML y CSS. Normas oficiales

Historia de las normas HTML y CSS

La época clásica

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 marzo de 1989 la creación de un sistema de hipertexto para facilitar el intercambio de información entre los investigadores del CERN. El primer servidor web de la historia se instaló en el CERN en diciembre de 1990. En el verano de 1991, este sistema (servidor y navegador) se puso a disposición de todos los usuarios de Internet, entonces limitados a universades y otros centros públicos. El 20 de abril de 1993, el CERN anunció oficialmente que la licencia del software del navegador y del servidor sería el dominio público, permitiendo su expansión sin límites.

A partir de 1991 se permitió el acceso a Internet a particulares. El éxito de la web como medio de distribución de información impulsó la creación en 1994 del W3C (World Wide Web Consortium), organismo formado por empresas y universidades de todo el mundo, para encauzar el desarrollo de la Web.

Hasta el año 2000 el W3C dirigió con eficacia y resultados tangibles el desarrollo de la web, consiguiendo equilibrar las presiones de las empresas y consensuar normas publicadas con el nombre de Recomendaciones.

En los 90, el W3C publicó las recomendaciones HTML 3.2 (1997), HTML 4 (1998) y HTMl 4.01 (1999) que constituyen las versiones "clásicas" del HTML, con cada vez más etiquetas para distintos tipos de elementos. El W3C publicó también las recomendaciones CSS nivel 1 (1996) y CSS nivel 2 (1998), que constituyen las versiones "clásicas" de las hojas de estilo CSS, con cada vez más propiedades para definir el aspecto visual de las páginas.

Para permitir que el HTML pudiera codificar cualquier tipo de información, no simplemente documentos formados por texto e imágenes pensados para ser leídos en pantallas de ordenador, el W3C creó en 1998 el XML, un conjunto de tecnologías para definir y manipular documentos de marcas arbitrarios. Así, el W3C creó los lenguajes de marcas MathML (para fórmulas matemáticas, en 1998) y SVG (para gráficos vectoriales, en 2001).

El W3C decidió entonces declarar obsoleto el HTML "clásico" y trabajar únicamente en un HTML basado en XML y que se llamó XHTML, cuya recomendación XHTML 1.0 se publicó en 2000.

El fracaso del XHTML

Esa decisión resultó ser un fracaso absoluto, porque el XHTML nunca llegó a utilizarse (por mucho que digan los currículos obsoletos de los ciclos formativos ASIR, DAM y DAW :-). Personalmente, no creo que haya un único motivo que explique ese fracaso. Que Microsoft, que entonces dominaba de forma absoluta el mercado de navegadores con Internet Explorer, se negara a mostrar documentos XHTML tuvo sin duda un peso innegable, pero es verdad que los navegadores posteriores que acabaron con ese dominio (Firefox y sobre todo, Google Chrome, pero también Safari) tampoco han apostado de verdad nunca por el XHTML. La exigencia del XHTML (heredada del XML) de que los documentos no pueden tener errores sintácticos para mostrarse en el navegador quizás ha sido una exigencia demasiado fuerte para una web que sigue teniendo un proceso de elaboración artesanal (como en este curso ;-).

El XML, por su parte, tuvo inicialmente un éxito tremendo y aunque todavía se utiliza en muchos ámbitos, su declive desde 2010 es evidente. El W3C empezó en 2013 a cerrar los grupos de trabajo dedicados a las tecnologías XML y actualmente (mayo de 2022) apenas quedan un par de grupos dedicados a temas sectoriales. Seguramente, el XML no desaparezca nunca de la informática, pero en la web yo diría que ya nadie plantea un nuevo proyecto basándose en XML (y aplicaciones basadas en XML como RSS han sido eliminadas de los navegadores).

En el año 2000 el W3C impulsó otra iniciativa todavía más ambiciosa denominada Web Semántica, que pretendía crear una web de datos y significados procesables automáticamente y que no llegó a ninguna parte. En 2013 el W3C ya había cerrado todos los grupos de trabajo relacionados con la Web Semántica, que languidece como tema de investigación en entornos académicos (que yo sepa).

El renacimiento del HTML

Ante la negativa del W3C a recuperar el HTML "clásico" (no basado en XML), Mozilla, Apple y Opera crearon en 2004 el WHATWG que empezó a redactar el HTML 5. En 2007 el W3C aceptó recuperar el HTML, trabajando a partir de los borradores del WHATWG, en 2011 W3C aceptó el fracaso del XHTML y en 2015 publicó la recomendación HTML 5.0. Aunque llegaron a publicarse las recomendaciones HTML 5.1 en 2016 y HTML 5.2 en 2017, el WHATWG no se disolvió y ha seguido dirigiendo el desarrollo del HTML. Finalmente, en 2019 el W3C decidió abandonar todo trabajo sobre el HTML y otras tecnologías asociadas y dejarlo en manos del WHATWG, en el que ya participaban también Google y Microsoft.

Con respecto a las hojas de estilo, estas no han dejado de desarrollarse nunca en el seno del W3C. pero las hojas de estilo también sufrieron un parón a partir del año 2000 y en este caso el motivo principal fue sin duda el boicot de Microsoft a la recomendación CSS 2, implementando incorrectamente la recomendación o directamente no implementándola. Hasta que Firefox no empezó a tener cuota de mercado, Microsoft no dio su brazo a torcer, pero no fue hasta 2009 que Internet Explorer 8 cumplió de forma significativa CSS 2.

En 2010 el W3C retomó el desarrollo de las hojas de estilo, pero decidieron trocear la recomendación en un gran número de pequeñas recomendaciones que tratan temas específicos. Esas recomendaciones se suelen denominar en general CSS nivel 3, pero en algunos ya existen borradores de niveles 4 o 5 y algunas partes están todavía en su nivel 1. Además, el W3C ha abandonado parcialmente su modelo de publicación de recomendaciones, acercándose al modelo continuo que cada vez está más extendido en la informática. Así el grupo de trabajo del W3C publica nuevas versiones de los borradores de las recomendaciones a medida que se trabaja en ellos. Para aclarar al público en general el estado de madurez de cada recomendación, el W3C publica desde hace unos años (y la intención parece ser hacerlo regularmente a finales de cada año) una recomendación llamada CSS Snapshot que establece la definición oficial de CSS.

La situación en 2022

En 2022 el organismo que define el HTML es el WHATWG, cuya norma se desarrolla desde 2011 de forma continua, sin número de versiones: HTML Living Standard.

En 2022 el organismo que define las CSS es el W3C, cuyas normas (recomendaciones) se desarrollan desde 2010 de forma troceada y cada vez más continua. En 2022, la definición oficial de CSS que se encuentra en la recomendación CSS Snapshot 2021 (diciembre de 2021) está formada por las partes de la antigua recomendación CSS 2.1 (2011) que no han sido publicadas en nuevas recomendaciones, diez CSS de nivel 3 ya aprobadas y catorce borradores de recomendaciones que aunque no están oficialmente aprobadas se consideran suficientemente maduras e implementadas en los navegadores.

La definición oficial de CSS

La tabla siguiente muestra las recomendaciones y los borradores de recomendaciones que se han ido incorporando a la definición oficial de CSS en sucesivas recomendaciones CSS Snapshot, cuya última versión es actualmente (mayo de 2022) CSS Snapshot 2021 (diciembre de 2021).

Las recomendaciones y borradores se agrupan en tres grupos:

Grupo Última versión
publicada
Nombre Incluidas en CSS Snapshot
2021
21/12/2021
2020
22/12/2020
2018
22/01/2019
2017
31/01/2017
2015
13/10/2015
RET REC 11/02/2021 CSS Cascading and Inheritance Level 3 SUSTITUIDA SUSTITUIDA 2018 CSS 2017 CSS 2015 CSS

REC

REC 07/06/2011 CSS 2.1 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 05/04/2022 Media Queries Level 3 (2ª ed) 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 05/08/2021 CSS Color Module Level 3 (4ª ed) 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 22/12/2020 CSS Containment Module Level 1 (2ª ed) 2021 CSS 2020 CSS 2018 ELA++
REC 10/12/2019 CSS Writing Modes Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS
REC 06/11/2018 Selectors Level 3 (2ª ed) 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 20/09/2018 CSS Fonts Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 21/06/2018 CSS Basic User Interface Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 20/03/2014 CSS Namespaces Module Level 3 (2ª ed) 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
REC 07/11/2013 CSS Style Attributes 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS

NO REC

CRS 13/01/2022 CSS Conditional Rules Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
WD 13/01/2022 CSS Cascading and Inheritance Level 4 2021 CSS 2020 CSS 2018 ELA++
CR 24/12/2021 CSS Syntax Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
CRD 11/11/2021 CSS Custom Properties for Cascading Variables Module Level 1 2021 CSS 2020 CSS 2018 CSS 2017 ELA
CRS 12/10/2021 CSS Multi-column Layout Level 1 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
CRS 27/07/2021 CSS Counter Styles Level 3 2021 CSS 2020 ELA++ 2018 ELA++ 2017 ELA++ 2015 ELA++
CR 26/07/2021 CSS Backgrounds and Borders Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
CRD 01/04/2021 CSS Easing Functions Level 1 2021 CSS 2020 CSS
CRS 22/12/2020 CSS Box Model Module Level 3 2021 CSS 2020 CSS
CRD 17/12/2020 CSS Images Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
CR 06/06/2019 CSS Values and Units Module Level 3 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS
CR 14/02/2019 CSS Transforms Module Level 1 2021 CSS 2020 CSS 2018 CSS 2017 ELA 2015 ELA
CR 19/11/2018 CSS Flexible Box Layout Module Level 1 2021 CSS 2020 CSS 2018 CSS 2017 ELA 2015 ELA
CR 13/01/2015 CSS Compositing and Blending Level 1 2021 CSS 2020 CSS 2018 CSS 2017 CSS 2015 CSS

La tabla siguiente muestra los borradores de recomendaciones que se citan en CSS Snapshot, pero que todavía no se consideran lo suficientemente maduras como para formar parte de la definición oficial.

Los borradores se agrupan en dos grupos:

Existe un grupo todavía mayor de casi 50 borradores de recomendaciones que no se nombran en CSS Snaphost 2021 y que por ese motivo no se listan aquí.

Grupo Última versión
publicada
Nombre Incluidas en CSS Snapshot
2021
21/12/2021
2020
22/12/2020
2018
22/01/2019
2017
31/01/2017
2015
13/10/2015

ELA++

CR 05/05/2022 CSS Text Decoration Module Level 3 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++ 2015 ELA++
CRS 05/05/2022 CSS Text Module Level 3 2021 ELA++ 2020 ELA++ 2018 ELA 2017 ELA
WD 28/04/2022 CSS Color Module Level 4 2021 ELA++ 2020 ELA++
CRD 25/12/2021 Media Queries Level 4 2021 ELA++ 2020 ELA++ 2018 ELA++
WD 24/11/2021 CSS Box Alignment Module Level 3 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++
CRD 09/12/2021 CSS Scrollbars Styling Module Level 1 2021 ELA++
CRD 03/09/2021 CSS Display Module Level 3 2021 ELA++ 2020 ELA++
CRD 05/08/2021 CSS Masking Module Level 1 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++ 2015 ELA++
CRS 11/03/2021 CSS Scroll Snap Module Level 1 2021 ELA++ 2020 ELA++ 2018 ELA++
CR 10/03/2020 CSS Speech Module 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++ 2015 ELA++
CR 30/07/2019 CSS Writing Modes Level 4 2021 ELA++ 2020 ELA++
CR 04/12/2018 CSS Fragmentation Module Level 3 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++
CR 20/03/2014 CSS Shapes Module Level 1 2021 ELA++ 2020 ELA++ 2018 ELA++ 2017 ELA++ 2015 ELA++

ELA

CR 05/05/2022 CSS Will Change Module Level 1 2021 ELA 2020 ELA 2018 ELA 2017 ELA++
WD 21/12/2021 CSS Fonts Module Level 4 2021 ELA
WD 17/12/2021 CSS Box Sizing Module Level 3 2021 ELA 2020 ELA++
WD 16/12/2021 CSS Positioned Layout Module Level 3 2021 ELA
WD 09/11/2021 CSS Transforms Module Level 2 2021 ELA
WD 18/05/2021 Web Animations 2021 ELA
CRD 18/12/2020 CSS Grid Layout Module Level 1 2021 ELA 2020 ELA 2018 ELA 2017 ELA++
CRD 18/12/2020 CSS Grid Layout Module Level 2 2021 ELA 2020 ELA
WD 17/11/2020 CSS Lists and Counters Module Level 3 2021 ELA
WD 18/12/2018 Filter Effects Module Level 1 2021 ELA 2020 ELA 2018 ELA 2017 ELA++
WD 11/10/2018 CSS Transitions 2021 ELA 2020 ELA 2018 ELA 2017 ELA 2015 ELA
WD 11/10/2018 CSS Animations Level 1 2021 ELA 2020 ELA
WD 27/08/2018 CSS Logical Properties and Values Level 1 2021 ELA
WD 22/05/2014 CSS Font Loading Module Level 3 2021 ELA 2020 ELA