Fieldset Interoperability

Mozilla

Making the Fieldset Element Interoperable and Useful.

Mozilla funded Bocoup to triage bugs and improve interoperability of the fieldset and legend elements through spec patches, browser bugs and shared tests.

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.

Contact Us

We'd love to hear from you. Get in touch!

Phone

+1 617-379-2752

Mail

P.O. Box 961436
Boston, MA 02196