Найти в Дзене

Лучше поздно, чем никогда: Mozilla только что исправила ошибку 18-летней давности

У каждого есть список дел, которые стоило бы давно сделать, но отвлекают более важные проблемы. Иногда дела откладываются на недели, месяцы… Но Mozilla, кажется, побила все рекорды прокрастинации, исправив ошибку Firefox, о которой впервые сообщили 18 лет назад.

Впервые об ошибке 290125 сообщили 12 апреля 2005 года, всего за несколько дней до выпуска Firefox 1.0.3. Проблема заключалась в том, как Firefox отображал текст с псевдо-элементом ::first-letter CSS. Когда в начале есть :first-letter, Gecko игнорирует любую объявленную высоту строки и наследует высоту строки родительского блока. И в Opera 7.5+, и в Safari 1.0+ с отображением всё корректно.

Скриншот оригинальной ошибки от 2005 года
Скриншот оригинальной ошибки от 2005 года

Первоначальная проблема заключалась в том, что версия Firefox для Mac обрабатывала высоту строки иначе, чем Firefox на других платформах, что было исправлено вовремя для Firefox 3.0 в 2007 году. Затем проблема была повторно открыта в 2014 году, когда оказалось, что специальная обработка высоты строк в Firefox не соответствует спецификациям CSS и вызывает проблемы совместимости. Это привело к тому, что некоторые сайты с большой первой буквой в блоках текста, такие как The Verge и The Guardian, отображались в Firefox неправильно по сравнению с другими браузерами.

Проблема по-прежнему была отмечена как низкоприоритетная, поэтому прогресс шел медленно. И вот 20 декабря 2022 года ошибку закрыли. Firefox 110 должен включать обновленный код, который станет доступен для всех в феврале 2023 года.

Разработчик Mozilla Джонатан Кью объяснил: «Исторически Gecko [Firefox] реализовывал поведение, разрешенное CSS2, когда плавающее ::first-letter «плотно обрамляло» форму глифа, а не использовало постоянные метрики font-ascent и -descent, которые могут оставьте много пустого места в зависимости от того, есть ли у символа восходящий/нисходящий элемент или нет. Однако ни webkit [Safari], ни blink [Chrome] этого не делают, что приводит к проблемам с веб-совместимостью, когда сайты создаются с учетом их поведения».

Есть несколько сообщений об ошибках Firefox, которые еще старше, например, ошибка, связанная с плавающими элементами CSS от августа 1999 года. Но отрадно видеть, что Mozilla вспоминает о таких вот «совершеннолетних» ошибках.