Mozilla funded Bocoup to triage bugs and improve interoperability of the fieldset
and legend
elements through spec patches, browser bugs and shared tests.
Fieldset Interoperability
Mozilla
Making the Fieldset Element Interoperable and Useful.
Challenge
The fieldset
element is used for making forms more accessible. It has been in browsers for two decades, but has been nearly impossible to style consistently across browsers, even with CSS normalize style sheets. For older HTML features like fieldset
, the challenge lies in the fact that many browser engines contain implementations that predate the standard, and the standard contains language that is reverse engineered from competing implementations. This requires auditing what each engine actually does, surveying web developers for expected behavior, and facilitating new agreement on an already implemented feature.
Solution
Simon Pieters polled web developers and worked with our stakeholder at Mozilla to to identify high priority fieldset
rendering interop issues affecting the web platform. He then reached out to each engine to get focused attention on fieldset
from implementers while we were on the project doing the spec analysis. He then audited each implementation, created a proposed agreed behavior and work-shopped it with stakeholders from Firefox and Chrome. Once we had buy in, he updated the HTML standard, wrote failing web-platform-tests material, filed bugs on each engine and worked with each implementer we identified from the engine teams to start passing the tests. He proposed a way to enable and disable the fieldset
layout model with CSS properties, allowing web developers to turn it off. He also queried HTTP Archive to make sure our proposed changes do not break web compatibility.
You can see how this work played out by following the HTML standard's issues with the topic: fieldset
label and the web-platform-tests issues with the html-fieldset
label.
Impact
In future versions of web browsers, fieldset
will be shipping with a more compatible implementation. Numerous bugs have been reported and work is ongoing to fix them in the browsers. Web developers will finally be able to rely on consistent rendering. When there is consensus for how to describe the rendering of fieldset
in terms of CSS properties, and that is implemented, web developers will be able to turn off the special fieldset
layout model with easy CSS rules and have these elements render like normal divs.
In a very determined, meticulous, and friendly manner, Simon wrote a large number tests, built consensus among implementers, and wrote a standard to match. This makes me extremely happy and I hope to continue to collaborate with Simon to make the web ever more interoperable and well-defined.
Anne van Kesteren, Mozilla
More work like this at Bocoup
Contact Us
P.O. Box 961436
Boston, MA 02196