@@ -398,6 +398,124 @@ Strong Containment: the 'contain' property</h2>
398398 ''contain: strict'' can be applied to communicate further restrictions.
399399 </div>
400400
401+ <div class=correction id=c3>
402+ <span class=marker> Candidate Correction 3:</span>
403+ The CSS Working Group had forgotten to consider the effects of containment
404+ on the HTML <{html}> and <{body}> elements,
405+ particularly in consideration of the fact that
406+ for legacy reasons,
407+ some properties can propagate outwards from the <{body}> element.
408+ This proposed text addresses this oversight.
409+
410+ <blockquote>
411+ Additionally, when the [=used value=] of the 'contain' property
412+ on either the HTML <{html}> or <{body}> elements
413+ is anything other than ''contain/none'' ,
414+ propagation of properties
415+ from the <{body}> element
416+ to the [=initial containing block=] , the viewport, or the [=canvas background=] ,
417+ is disabled.
418+ Notably, this affects:
419+ * 'writing-mode' , 'direction' , and 'text-orientation' (see [[CSS-WRITING-MODES-3#principal-flow]] )
420+ * 'overflow' and its longhands (see [[CSS-OVERFLOW-3#overflow-propagation]] )
421+ * 'background' and its longhands (see [[CSS-BACKGROUNDS-3#body-background]] )
422+
423+ <wpt>
424+ contain-body-bg-001.html
425+ contain-body-bg-002.html
426+ contain-body-bg-003.html
427+ contain-body-bg-004.html
428+ contain-body-dir-001.html
429+ contain-body-dir-002.html
430+ contain-body-dir-003.html
431+ contain-body-dir-004.html
432+ contain-body-overflow-001.html
433+ contain-body-overflow-002.html
434+ contain-body-overflow-003.html
435+ contain-body-overflow-004.html
436+ contain-body-t-o-001.html
437+ contain-body-t-o-002.html
438+ contain-body-t-o-003.html
439+ contain-body-t-o-004.html
440+ contain-body-w-m-001.html
441+ contain-body-w-m-002.html
442+ contain-body-w-m-003.html
443+ contain-body-w-m-004.html
444+ contain-html-bg-001.html
445+ contain-html-bg-002.html
446+ contain-html-bg-003.html
447+ contain-html-bg-004.html
448+ contain-html-dir-001.html
449+ contain-html-dir-002.html
450+ contain-html-dir-003.html
451+ contain-html-dir-004.html
452+ contain-html-overflow-001.html
453+ contain-html-overflow-002.html
454+ contain-html-overflow-003.html
455+ contain-html-overflow-004.html
456+ contain-html-t-o-001.html
457+ contain-html-t-o-002.html
458+ contain-html-t-o-003.html
459+ contain-html-t-o-004.html
460+ contain-html-w-m-001.html
461+ contain-html-w-m-002.html
462+ contain-html-w-m-003.html
463+ contain-html-w-m-004.html
464+ </wpt>
465+
466+ Note: Propagation
467+ to the [=initial containing block=] , the viewport, or the [=canvas background=] ,
468+ of properties set on the <{html}> element itself
469+ is unaffected.
470+ </blockquote>
471+ <details>
472+ <summary> This change has tests</summary>
473+ Tests to cover these new requirements have been added to <abbr title="Web Platform Tests"> WPT</abbr> .
474+ The results of these tests can be seen at the <a href="https://wpt.fyi/">Web-Platform-Tests dashboard</a> :
475+ <ol>
476+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-bg-001.html>contain-body-bg-001.html</a>
477+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-bg-002.html>contain-body-bg-002.html</a>
478+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-bg-003.html>contain-body-bg-003.html</a>
479+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-bg-004.html>contain-body-bg-004.html</a>
480+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-dir-001.html>contain-body-dir-001.html</a>
481+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-dir-002.html>contain-body-dir-002.html</a>
482+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-dir-003.html>contain-body-dir-003.html</a>
483+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-dir-004.html>contain-body-dir-004.html</a>
484+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-overflow-001.html>contain-body-overflow-001.html</a>
485+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-overflow-002.html>contain-body-overflow-002.html</a>
486+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-overflow-003.html>contain-body-overflow-003.html</a>
487+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-overflow-004.html>contain-body-overflow-004.html</a>
488+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-t-o-001.html>contain-body-t-o-001.html</a>
489+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-t-o-002.html>contain-body-t-o-002.html</a>
490+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-t-o-003.html>contain-body-t-o-003.html</a>
491+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-t-o-004.html>contain-body-t-o-004.html</a>
492+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-w-m-001.html>contain-body-w-m-001.html</a>
493+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-w-m-002.html>contain-body-w-m-002.html</a>
494+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-w-m-003.html>contain-body-w-m-003.html</a>
495+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-body-w-m-004.html>contain-body-w-m-004.html</a>
496+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-bg-001.html>contain-html-bg-001.html</a>
497+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-bg-002.html>contain-html-bg-002.html</a>
498+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-bg-003.html>contain-html-bg-003.html</a>
499+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-bg-004.html>contain-html-bg-004.html</a>
500+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-dir-001.html>contain-html-dir-001.html</a>
501+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-dir-002.html>contain-html-dir-002.html</a>
502+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-dir-003.html>contain-html-dir-003.html</a>
503+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-dir-004.html>contain-html-dir-004.html</a>
504+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-overflow-001.html>contain-html-overflow-001.html</a>
505+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-overflow-002.html>contain-html-overflow-002.html</a>
506+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-overflow-003.html>contain-html-overflow-003.html</a>
507+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-overflow-004.html>contain-html-overflow-004.html</a>
508+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-t-o-001.html>contain-html-t-o-001.html</a>
509+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-t-o-002.html>contain-html-t-o-002.html</a>
510+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-t-o-003.html>contain-html-t-o-003.html</a>
511+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-t-o-004.html>contain-html-t-o-004.html</a>
512+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-w-m-001.html>contain-html-w-m-001.html</a>
513+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-w-m-002.html>contain-html-w-m-002.html</a>
514+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-w-m-003.html>contain-html-w-m-003.html</a>
515+ <li> <a href=https://wpt.fyi/results/css/css-contain/contain-html-w-m-004.html>contain-html-w-m-004.html</a>
516+ </ol>
517+ </details>
518+ </div>
401519
402520<h2 id='containment-types'>
403521Types of Containment</h2>
@@ -1150,6 +1268,11 @@ This appendix is <em>informative</em>.
11501268 and improve the general legibility.
11511269 The intended behavior is unaltered.
11521270
1271+ <li>
1272+ Marked as <a href="#c3">Candidate Correction 3</a> :
1273+ Define the effects of containment on outwards propagation of properties
1274+ from the HTML <{body}> element.
1275+
11531276 <li>
11541277 Editorial tweaks:
11551278 <ul>
0 commit comments