## 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:

- 1 test (with 9 relevant subtests) for Candidate correction 1.
- 39 tests for Candidate correction 2
- 40 tests for Candidate correction 3

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:

- Firefox (engine: Gecko, version 106)
- Chrome (engine: Blink, version 106)
- Safari (engine: Webkit, version 152 preview)

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' | Pass | Pass | Pass
Property contain value 'strict' | Pass | Pass | Pass
Property contain value 'content' | Pass | Pass | Pass
Property contain value 'size' | Pass | Pass | Pass
Property contain value 'layout' | Pass | Pass | Pass
Property contain value 'paint' | Pass | Pass | Pass
Property contain value 'size layout' | Pass | Pass | Pass
Property contain value 'size layout paint' | Pass | Pass | Pass
Property contain value 'layout paint' | Pass | Pass | Pass
Other subtests are related to later levels of the specification.
Tests for Candidate correction 2
contain-size-013 | Pass | Pass | Pass
contain-size-021 | Pass | Pass | Pass
contain-size-023 | Pass | Pass | Pass
contain-size-025 | Pass | Pass | Pass
contain-size-027 | Pass | Pass | Pass
contain-size-041 | Pass | Pass | Pass
contain-size-042 | Pass | Pass | Pass
contain-size-061 | Pass | Pass | Pass
contain-size-062 | Pass | Pass | Pass
contain-size-063 | Pass | Pass | Pass
contain-size-064 | Pass | Pass | Pass
contain-size-borders | Pass | Pass | Pass
contain-size-button-001 | Pass | Pass | Pass
contain-size-fieldset-001 | Pass | Pass | Pass
contain-size-fieldset-002 | Pass | Pass | Pass
contain-size-flexbox-001 | Pass | Pass | Pass
contain-size-flexbox-002 | Pass | Fail | Pass
contain-size-grid-001 | Pass | Pass | Pass
contain-size-grid-002 | Pass | Fail | Pass
contain-size-grid-003 | Pass (39/39) | Partial (11/39) | Pass (39/39)
contain-size-multicol-001 | Pass | Pass | Pass
contain-size-multicol-as-flex-item | Pass | Pass | Pass
contain-size-replaced-001 | Pass | Pass | Pass
contain-size-replaced-002 | Pass | Pass | Pass
contain-size-replaced-003a | Pass | Pass | Pass
contain-size-replaced-003b | Pass | Pass | Pass
contain-size-replaced-003c | Pass | Pass | Pass
contain-size-replaced-004 | Pass | Pass | Pass
contain-size-replaced-005 | Pass | Pass | Pass
contain-size-replaced-006 | Pass | Pass | Pass
contain-size-scrollbars-001 | Pass | Pass | Pass
contain-size-scrollbars-002 | Pass | Pass | Pass
contain-size-scrollbars-003 | Pass | Pass | Pass
contain-size-scrollbars-004 | Pass | Pass | Pass
contain-size-select-001 | Pass | Pass | Fail
contain-size-select-002 | Pass | Pass | Fail
replaced-element-023 | Pass | Pass | Pass
replaced-element-025 | Pass | Pass | Pass
replaced-element-027 | Pass | Pass | Pass
contain-size-block-001 | Pass | Pass | Pass
contain-size-block-002 | Pass | Pass | Pass
contain-size-block-003 | Pass | Pass | Pass
contain-size-block-004 | Pass | Pass | Pass
contain-size-button-002 | Pass | Pass | Pass
contain-size-fieldset-003 | Pass | Pass | Pass
contain-size-flex-001 | Pass | Pass | Pass
contain-size-grid-005 | Pass | Pass | Pass
contain-size-inline-block-001 | Pass | Pass | Pass
contain-size-inline-block-002 | Pass | Pass | Pass
contain-size-inline-block-003 | Pass | Pass | Pass
contain-size-inline-block-004 | Pass | Pass | Pass
contain-size-inline-flex-001 | Pass | Pass | Pass
contain-size-multicol-002 | Pass | Pass | Pass
contain-size-multicol-003 | Pass | Pass | Pass
contain-size-select-elem-001 | Pass | Pass | Pass
contain-size-select-elem-002 | Pass | Pass | Pass
contain-size-select-elem-003 | Pass | Pass | Pass
contain-size-select-elem-004 | Pass | Pass | Pass
contain-size-select-elem-005 | Fail | Pass | Pass
contain-size-fieldset-004 | Pass | Pass | Pass
contain-size-inline-block-001 | Pass | Pass | Pass
contain-size-inline-block-002 | Pass | Pass | Pass
contain-size-inline-block-003 | Pass | Pass | Pass
contain-size-inline-block-004 | Pass | Pass | Pass
contain-size-inline-flex-001 | Pass | Pass | Pass
Tests for Candidate correction 3
contain-body-bg-001 | Pass | Pass | Pass
contain-body-bg-002 | Pass | Pass | Pass
contain-body-bg-003 | Pass | Pass | Pass
contain-body-bg-004 | Pass | Pass | Pass
contain-body-dir-001 | Pass | Pass | Pass
contain-body-dir-002 | Pass | Pass | Pass
contain-body-dir-003 | Pass | Pass | Pass
contain-body-dir-004 | Pass | Pass | Pass
contain-body-overflow-001 | Pass | Pass | Pass
contain-body-overflow-002 | Pass | Pass | Pass
contain-body-overflow-003 | Pass | Pass | Pass
contain-body-overflow-004 | Pass | Pass | Pass
contain-body-t-o-001 | Pass | Pass | Pass
contain-body-t-o-002 | Pass | Pass | Pass
contain-body-t-o-003 | Pass | Pass | Pass
contain-body-t-o-004 | Pass | Pass | Pass
contain-body-w-m-001 | Pass | Pass | Pass
contain-body-w-m-002 | Pass | Pass | Pass
contain-body-w-m-003 | Pass | Pass | Pass
contain-body-w-m-004 | Pass | Pass | Pass
contain-html-bg-001 | Pass | Pass | Pass
contain-html-bg-002 | Pass | Pass | Pass
contain-html-bg-003 | Pass | Pass | Pass
contain-html-bg-004 | Pass | Pass | Pass
contain-html-dir-001 | Pass | Pass | Pass
contain-html-dir-002 | Pass | Pass | Pass
contain-html-dir-003 | Pass | Pass | Pass
contain-html-dir-004 | Pass | Pass | Pass
contain-html-overflow-001 | Pass | Pass | Pass
contain-html-overflow-002 | Pass | Pass | Pass
contain-html-overflow-003 | Pass | Pass | Pass
contain-html-overflow-004 | Pass | Pass | Pass
contain-html-t-o-001 | Pass | Pass | Pass
contain-html-t-o-002 | Pass | Pass | Pass
contain-html-t-o-003 | Pass | Pass | Pass
contain-html-t-o-004 | Pass | Pass | Pass
contain-html-w-m-001 | Pass | Pass | Pass
contain-html-w-m-002 | Pass | Pass | Pass
contain-html-w-m-003 | Pass | Pass | Pass
contain-html-w-m-004 | Pass | Pass | Pass