<body> is magic in HTML but not in XHTML, and there are bugs in some edge
cases. (Note that this bug is invalid per the current spec, but the plan is to
change the spec:
Steps to Reproduce:
1. Run the test cases.
'background-color', 'background-image' and 'overflow' is not handled
equivalently between HTML and XHTML, and there are some bugs in the edge cases
'background-color', 'background-image' and 'overflow' should work the same in
both HTML and XHTML when applied to <body>. Edge cases should be handled as
what the current spec says should happen for HTML.
This is also in b.m.o. as <https://bugzilla.mozilla.org/show_bug.cgi?id=379461>.
There are two isHTMLDocument background checks in RenderBox and then the overflow isHTMLDocument check is in FrameView I think. This was all done on purpose following the spec of course, but I suppose we could change it.
Apparently background behavior matches Firefox more or less, overflow behavior doesn't. We're following the curent spec more closely than anyone it seems.
Created attachment 14326 [details]
background-color/001.xht: background on body should fill the canvas
Created attachment 14328 [details]
background-color/003.htm: background on body should not fill the canvas when root is not html:html
Created attachment 14329 [details]
background-color/005-declarative.xht: background on body should fill the canvas even when it has bogus siblings
Created attachment 14331 [details]
background-color/006.htm: background on subsequent bodys should not cover the canvas
Created attachment 14332 [details]
background-color/008.xht: when background on body is propagated to the canvas, it shouldn't have a background itself
Created attachment 14334 [details]
background-image/009.htm: background on body when propagated to the canvas should be anchored at the root element
Created attachment 14335 [details]
background-image/009.xht: background on body when propagated to the canvas should be anchored at the root element
Created attachment 14336 [details]
overflow/001.xht: overflow on body should propagate to the viewport
Created attachment 14337 [details]
overflow/002.htm: overflow on body should not propagate to the viewport when root has overflow
Created attachment 14338 [details]
overflow/003.htm: overflow on body should not propagate to the viewport when root is not html:html
Created attachment 14339 [details]
overflow/005-declarative.xht: overflow on body should propagate to the viewport even when it has bogus siblings
Created attachment 14340 [details]
overflow/006.htm: overflow on subsequent bodys should not propagate to the viewport
Created attachment 14341 [details]
overflow/007.htm: overflow on body should not propagate to the viewport when not child of root
I can confirm the bug. In my opinion we should change behavior to align other browsers since Gecko has the bug https://bugzilla.mozilla.org/show_bug.cgi?id=379461 already fixed!
FWIW, Opera 9.5 treats HTML and XHTML the same here.
And for what it's worth, I'd like XHTML to be always non‐magical, just as every other XML format. There is a reason we have both, and it's not so that you can add slashes to the end of empty element tags. If you need magical behaviour, which only exists for legacy reasons, then you should be using HTML, not XML.
Was this fixed now, David?