Looking at the CSS z-index painting order spec [1], it seems like the current order isn't correct. The current code appears to interleave col-group and column backgrounds (since creation of both of them is within a loop over col-groups), but the spec suggests that all col-groups backgrounds should be painted first. If we removed some of the nesting so that we had 5 (or 6) separate passes to build all of the layers (col-group, col, row-group, row, cell background, cell contents), then I think my original suggestion would work fully and we'd be more correct. I still need to figure out how stacking contexts on table parts affect this, and what we'd need to do to handle it. Does this match your understanding David?
Bug 1409114 Comment 10 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Looking at the CSS z-index painting order spec [1], it seems like the current order isn't correct. The current code appears to interleave col-group and column backgrounds (since creation of both of them is within a loop over col-groups), but the spec suggests that all col-groups backgrounds should be painted first. If we removed some of the nesting so that we had 5 (or 6) separate passes to build all of the layers (col-group, col, row-group, row, cell background, cell contents), then I think my original suggestion would work fully and we'd be more correct. I still need to figure out how stacking contexts on table parts affect this, and what we'd need to do to handle it. Does this match your understanding David? [1] https://www.w3.org/TR/CSS2/zindex.html#q23.0