Кратко

  • CSS2 стала рекомендацией W3C в мае 1998 года. CSS2.1 сохранила широко реализованные части, включила errata, изменила правила при массовом расхождении реализаций и убрала нереализованные функции.
  • Candidate Recommendation 2007 года требовала по две совместимые реализации на функцию. Отчёт 2011 года насчитал 9 418 тестов; 9 191 тест обязательного поведения прошёл как минимум в двух реализациях.

Бумажная спецификация хотела больше, чем мог код

CSS2 была обещанием на бумаге. В тексте 1998 года были загружаемые шрифты, @font-face, подбор шрифта и большая модель форматирования. Для автора это выглядело свободой. Для браузера каждая новая норма означала ещё одну возможность получить другой результат.

Пересмотренная страница CSS2 2008 года признала документ неподдерживаемым и направила авторов к CSS2.1. Редакторы не спасали каждую строку; они сделали опыт реализации фильтром.

Реализация стала пропуском

Введение CSS2.1 требует сохранять принятые части, включать исправления, менять текст при массовом расхождении с браузерами и удалять нереализованные функции или функции, предназначенные CSS3. В 2007 году это стало процедурой: две совместимые реализации, открытые тесты и шесть месяцев CR. Функция без реализации или достаточных тестов могла исчезнуть.

Список изменений показывает цену: из CSS2.1 убрали font-stretch, font-size-adjust, @font-face и части подбора шрифтов, а также text-shadow, marker-offset и ряд значений списков. Это были не запрещённые идеи, а неподтверждённая общая основа.

Отчёт 2011 года проверил 24 пользовательских агента на базе семи реализаций в восьми ОС. Из 9 418 тестов 9 191 обязательное поведение прошло в двух реализациях. Стандарт стал меньше и пригоднее.

W3C получила устойчивую основу ценой части каталога CSS2. Интероперабельность появилась, когда стандарт согласился быть меньше первого замысла.