Important reasons: There are software flaws that tend to persist in even the most active projects. But open source browsers like Firefox are striving to set a real record by fixing decades-old bugs in time for Christmas.
The Firefox browser flaw was marked “resolved” shortly after it matured. Bug 290125 was first published 18 years ago when Mozilla developers discovered that open source browsers were not handling the ::first-letter CSS pseudo-element correctly.
As explained in the MDN web docs, the ::first-letter CSS pseudo-element “applies style to the first letter of the first line of a block-level element, but not other content (such as images or inline) Applies only if not preceded by a table)”. Floating to the left to generate drop caps, 18 years ago, Gecko (Firefox’s current layout engine) said, “Ignore the declared line-height and inherit the line-height of the parent box.” The bug reporter said;
According to the CSS standard, this erroneous behavior “prevents the author from placing the first letter by shrinking the line box using a small line-height”. The end result was that while other browsers (Opera 7.5+ and Safari 1.0 at the time) were processing his CSS function correctly, Firefox was rendering the first character incorrectly.
The problem was first reported on April 12th, 2005 and was present in the first major release of Firefox (1.0). The first fix was in Firefox 3.0 in 2007, when different line height rendering on the Mac platform was resolved by Mozilla developers. The CSS Working Group, which maintains CSS standards within the World Wide Web Consortium, decided that Firefox should use the ::first-character element.
The bug was finally resolved on December 20, 2022 and the new code should be included in the Firefox 110 release currently scheduled for February 2023. Allows you to “minimize risk” and easily switch between the existing “legacy” behavior of the Gecko layout engine and the new “compatible” behavior.
Mozilla should eventually “completely re-implement ::first-letter at frame build time, not at reflow time,” explains Kew. For now, a newly created patch will allow browsers to choose between three different behaviors for her. For similar results with Webkit/Blink (Chromium/Chrome), “Don’t use tight glyph bounds. Respect line height”. It “automatically chooses” between his two aforementioned behaviors based on heuristics.