CSS Containment Module Level 1

1. Introduction

This implementation report for the CSS Containment Module Level 1 complements the previous implementation report used to support transitioning from Candidate Recommendation to Proposed Recommendation. As the criteria to transition were fulfilled already in 2019, they will not be revisited here.

Since then, 3 candidate corrections been published. This report covers their implementation status.

Note: Since publication of the previous report, it is worth noting that a new independent implementation has been developed (Safari, in addition to Firefox and Chrome). Also, although not detailed here, the number of tests in the overall test suite has significantly increased, from 162 to 592 (though a little more than 300 concern features of later levels of this specification). All tests related to Level 1 of the CSS Containment Module pass in 2 or more implementations.

2. Results

The test suite contains 80 tests for mandatory requirements (i.e. RFC2119 “MUST”, and equivalents) covering the 3 candidate corrections. Specifically:

All tests pass in three implementations for candidate correction 1 and 3. For candidate correction 2, all tests pass at least two implementations, and most (33/39) pass in three.

The implementation criteria required for inclusion into a Recommendation are therefore fulfilled for all three corrections.

3. Methodology

The tests covering the 3 candidate changes are considered exhaustive with no known or suspected bugs at the time of publication. To document the coverage, a copy of the Editor's Draft annotated after each paragraph with links to the tests that cover it as of 6 September 2022 is available. If you find any errors, would like to contribute additional tests, or have other feedback, please report it on the web-platform-tests project or to the archived public discussion mailing list for CSS test suites, public-css-testsuite@w3.org.

A continuously updated version of the test suite is available. This report was prepared using the tests and their results as of 6 September 2022.

This report was prepared on the basis of testing 3 browser engines:

At the time of writing this report, there are no other known separate implementation of this specification, though other browsers using the same engines support it as well.

4. Raw Results

The following table gives the results for browser implementations for relevant tests in the test suite, as of the 6 September 2022.

Testcase Chrome Firefox Safari
Relevant subtests of test parsing/contain-computed for Candidate correction 1
Property contain value 'none'PassPassPass
Property contain value 'strict'PassPassPass
Property contain value 'content'PassPassPass
Property contain value 'size'PassPassPass
Property contain value 'layout'PassPassPass
Property contain value 'paint'PassPassPass
Property contain value 'size layout'PassPassPass
Property contain value 'size layout paint'PassPassPass
Property contain value 'layout paint'PassPassPass
Other subtests are related to later levels of the specification.
Tests for Candidate correction 2
contain-size-013PassPassPass
contain-size-021PassPassPass
contain-size-023PassPassPass
contain-size-025PassPassPass
contain-size-027PassPassPass
contain-size-041PassPassPass
contain-size-042PassPassPass
contain-size-061PassPassPass
contain-size-062PassPassPass
contain-size-063PassPassPass
contain-size-064PassPassPass
contain-size-bordersPassPassPass
contain-size-button-001PassPassPass
contain-size-fieldset-001PassPassPass
contain-size-fieldset-002PassPassPass
contain-size-flexbox-001PassPassPass
contain-size-flexbox-002PassFailPass
contain-size-grid-001PassPassPass
contain-size-grid-002PassFailPass
contain-size-grid-003Pass (39/39)Partial (11/39)Pass (39/39)
contain-size-multicol-001PassPassPass
contain-size-multicol-as-flex-itemPassPassPass
contain-size-replaced-001PassPassPass
contain-size-replaced-002PassPassPass
contain-size-replaced-003aPassPassPass
contain-size-replaced-003bPassPassPass
contain-size-replaced-003cPassPassPass
contain-size-replaced-004PassPassPass
contain-size-replaced-005PassPassPass
contain-size-replaced-006PassPassPass
contain-size-scrollbars-001PassPassPass
contain-size-scrollbars-002PassPassPass
contain-size-scrollbars-003PassPassPass
contain-size-scrollbars-004PassPassPass
contain-size-select-001PassPassFail
contain-size-select-002PassPassFail
replaced-element-023PassPassPass
replaced-element-025PassPassPass
replaced-element-027PassPassPass
contain-size-block-001PassPassPass
contain-size-block-002PassPassPass
contain-size-block-003PassPassPass
contain-size-block-004PassPassPass
contain-size-button-002PassPassPass
contain-size-fieldset-003PassPassPass
contain-size-flex-001PassPassPass
contain-size-grid-005PassPassPass
contain-size-inline-block-001PassPassPass
contain-size-inline-block-002PassPassPass
contain-size-inline-block-003PassPassPass
contain-size-inline-block-004PassPassPass
contain-size-inline-flex-001PassPassPass
contain-size-multicol-002PassPassPass
contain-size-multicol-003PassPassPass
contain-size-select-elem-001PassPassPass
contain-size-select-elem-002PassPassPass
contain-size-select-elem-003PassPassPass
contain-size-select-elem-004PassPassPass
contain-size-select-elem-005FailPassPass
contain-size-fieldset-004PassPassPass
contain-size-inline-block-001PassPassPass
contain-size-inline-block-002PassPassPass
contain-size-inline-block-003PassPassPass
contain-size-inline-block-004PassPassPass
contain-size-inline-flex-001PassPassPass
Tests for Candidate correction 3
contain-body-bg-001PassPassPass
contain-body-bg-002PassPassPass
contain-body-bg-003PassPassPass
contain-body-bg-004PassPassPass
contain-body-dir-001PassPassPass
contain-body-dir-002PassPassPass
contain-body-dir-003PassPassPass
contain-body-dir-004PassPassPass
contain-body-overflow-001PassPassPass
contain-body-overflow-002PassPassPass
contain-body-overflow-003PassPassPass
contain-body-overflow-004PassPassPass
contain-body-t-o-001PassPassPass
contain-body-t-o-002PassPassPass
contain-body-t-o-003PassPassPass
contain-body-t-o-004PassPassPass
contain-body-w-m-001PassPassPass
contain-body-w-m-002PassPassPass
contain-body-w-m-003PassPassPass
contain-body-w-m-004PassPassPass
contain-html-bg-001PassPassPass
contain-html-bg-002PassPassPass
contain-html-bg-003PassPassPass
contain-html-bg-004PassPassPass
contain-html-dir-001PassPassPass
contain-html-dir-002PassPassPass
contain-html-dir-003PassPassPass
contain-html-dir-004PassPassPass
contain-html-overflow-001PassPassPass
contain-html-overflow-002PassPassPass
contain-html-overflow-003PassPassPass
contain-html-overflow-004PassPassPass
contain-html-t-o-001PassPassPass
contain-html-t-o-002PassPassPass
contain-html-t-o-003PassPassPass
contain-html-t-o-004PassPassPass
contain-html-w-m-001PassPassPass
contain-html-w-m-002PassPassPass
contain-html-w-m-003PassPassPass
contain-html-w-m-004PassPassPass