Resumen

  • CSS2 fue Recomendación del W3C en mayo de 1998. La especificación CSS2.1 decidió mantener lo ampliamente implementado, incorporar erratas, cambiar reglas cuando los navegadores se apartaban del texto y quitar funciones sin implementación.
  • El Candidate Recommendation de 2007 exigió dos implementaciones interoperables por función. El informe de 2011 registró 9.418 pruebas; 9.191 pruebas de comportamiento obligatorio pasaron en al menos dos implementaciones.

El papel llegó con demasiado apetito

CSS2 era una promesa escrita. El texto de 1998 describía fuentes descargables, @font-face, selección de fuentes y un modelo de formato ambicioso. Para los autores, esa amplitud era atractiva: podían pedir una presentación aunque el cliente no tuviera la fuente o no calculara igual que otro navegador.

El problema era la deuda. Una regla en una recomendación pide una conducta común, pero no demuestra que exista. La versión revisada de CSS2 de 2008 terminó indicando que el documento ya no se mantenía y recomendando CSS2.1.

La implementación se volvió una puerta

La introducción de CSS2.1 dice qué conservar, qué corregir y qué eliminar. El proceso de 2007 volvió la política medible: dos implementaciones interoperables, pruebas públicas y seis meses de Candidate Recommendation. Una función sin dos implementaciones o sin pruebas suficientes podía salir del documento.

La lista de cambios muestra el recorte: font-stretch, font-size-adjust, @font-face, partes del algoritmo de fuentes, text-shadow, marker-offset y varios valores de listas quedaron fuera. No eran ideas absurdas. Eran promesas que no podían funcionar como base compartida.

Más de nueve mil pruebas para una promesa menor

El informe de implementación de 2011 probó 24 agentes de usuario construidos sobre siete implementaciones en ocho sistemas operativos. De 9.418 pruebas, las 9.191 de comportamiento obligatorio pasaron en al menos dos implementaciones. La recomendación dejó de parecer un inventario y empezó a funcionar como un límite operativo.

El W3C obtuvo una base estable renunciando a parte de CSS2. Los autores perdieron nombres de propiedades; ganaron una posibilidad mayor de obtener el mismo resultado en más de un navegador. CSS 2.1 triunfó porque hizo más pequeña la promesa.