Microsoft Chapter_11/overflow-applies-to testcases; overflow applicability versus display property

Hello all,

There seems to be many issues, problems with overflow applicability
testcases in this range of testcases:

http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-001.htm

http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-015.htm

1- The number 1 issue which needs to be clarified is how elements with
display set to any of this comma-separated list {inline-table,
table-row-group, table-column, table-column-group, table-header-group,
table-footer-group, table-row and table-caption} should apply an
overflow declaration like overflow: hidden, overflow: auto, overflow:
scroll.

>From what I read in several parts of CSS 2.1 spec [1] and in several
threads of the www-style mailing list, overflow should not apply to
elements with display set to {table-row-group, table-column,
table-column-group, table-header-group, table-footer-group, table-row}
because overflow does not apply to <tbody>, <col>, <colgroup>, <thead>,
<tfoot>, <tr>.

Am I wrong here? What am I missing?

I do not see why or how an element with display set to {table-row-group,
table-column, table-column-group, table-header-group,
table-footer-group, table-row} would be a non-replaced block-level
element or should be considered as a non-replaced block-level element.

Am I wrong here? What am I missing?

2-
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-001.htm

<meta name="assert" content="The 'overflow' property applies to elements
with 'display' set to 'table-row-group'.">

a) If 'overflow: hidden' applies to elements with 'display' set to
'table-row-group', then the tester should NOT see the green stripe in
the testcase. But that overflow-applies-to-001.htm test condition states
"Test passes if there is a green box below." So, there is a problem with
the testcase assertion, the testcase or with my understanding. I think
the testcase assertion is incorrect.

b) In IE8, with developer tools active, if I redefine div#test's
overflow to scroll or to auto values, then I would expect to see the
green stripe with an active horizontal scrollbar to appear if overflow
was supposed to apply to an element with 'display' set to
'table-row-group' but no horizontal scrollbar occurs, shows up.

c) Note that overflow-applies-to-001.htm sets the height of the table
#table to 5em when there is no need to, no requirement.

In my opinion, the overflow property does NOT apply (and should not
apply) to elements with 'display' set to 'table-row-group'. And the
testcase assertion text should be modified accordingly.

3-
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-002.htm
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-003.htm
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-004.htm
(this one is not even loadable)
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-005.htm
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-006.htm

Those testcase assertion text should be modified to indicate that
overflow does NOT apply to elements with display set to {table-column,
table-column-group, table-header-group, table-footer-group}. Otherwise I
need to be educated on how overflow is supposed to be applied.

In IE8, with developer tools activated, when I redefined div#test's
overflow to scroll or to auto values in tests 005 and 006, no horizontal
scrollbar appeared. So, even for IE8, at least empirically, it seems
that overflow does not and should not apply to elements with display set
to
{table-column, table-column-group, table-header-group,
table-footer-group}.

4-
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-008.htm

Such testcase must be wrong. Such overflow-applies-to-008.htm testcase
is illogical, not well built. The containing element has no specified
width, no max-width, no restricting/constraining condition of some sort,
so how could it overflow to begin with?

5-
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-010.htm

If display: list-item is used, then I wonder why a bullet (list marker)
must not be rendered as part of such testcase. Konqueror 4.4.3 does
that. And this testcase
http://www.w3.org/Style/CSS/Test/CSS2.1/20100316/html4/display-003.htm
suggests that a bullet (list marker) should be rendered.
The overflow-applies-to-010.htm does not state that a bullet (list
marker) should be rendered.

6-
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_11/overflow-applies-to-014.htm

"The 'overflow' property applies to elements with 'display' set to
'inline-table'."

inline-table is considered and is treated as an inline-level element [3]
according to section 17.4 Tables in the visual formatting model
"
a table can behave like a block-level  (for 'display: table') or
inline-level  (for 'display: inline-table') element.
"
http://www.w3.org/TR/CSS21/tables.html#model

So, in such overflow-applies-to-014.htm testcase, I think the test
assertion is wrong, the pass condition of the testcase is correct: a
green stripe should be visible.


[1]:
"
table, inline-table, table-row-group, table-column, table-column-group,
table-header-group, table-footer-group, table-row, table-cell, and
table-caption
    These values cause an element to behave like a table element
(subject to restrictions described in the chapter on tables).
"
9.2.4 The 'display' property
http://www.w3.org/TR/CSS21/visuren.html#display-prop

[2]:
"
'overflow'
    Value:  	visible | hidden | scroll | auto | inherit
    Initial:  	visible
    Applies to:  non-replaced block-level elements, table cells, and
inline-block elements
"
11.1.1 Overflow: the 'overflow' property
http://www.w3.org/TR/CSS21/visufx.html#overflow

[3]:
"
inline-level elements are those elements of the source document that do
not form new blocks of content; the content is distributed in lines
(e.g., emphasized pieces of text within a paragraph, inline images,
etc.). Several values of the 'display' property make an element inline:
'inline', 'inline-table', 'inline-block' and 'run-in' (part of the time;
see run-in boxes). Inline-level elements generate inline boxes.
"
http://www.w3.org/TR/CSS21/visuren.html#inline-level

Many thanks to Bruno Fassino for helping me out in trying to understand
the spec on all this.

regards, Gérard
-- 
Contributions to the CSS 2.1 test suite:
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/

CSS 2.1 test suite (alpha 2; March 16th 2010):
http://www.w3.org/Style/CSS/Test/CSS2.1/20100316/html4/toc.html

CSS 2.1 test suite contributors:
http://test.csswg.org/source/contributors/

Received on Tuesday, 25 May 2010 19:33:13 UTC