RE: [RC4] margin-left-001 invalid

Le Lun 10 janvier 2011 17:51, Arron Eicholz a écrit :
> On Monday, January 10, 2011 5:27 PM Gérard Talbot wrote:
>> Le Lun 10 janvier 2011 16:17, Arron Eicholz a écrit :
>> > http://test.csswg.org/suites/css2.1/20101210/html4/margin-left-001.htm
>> >
>> > The HR element is by default per HTML4.01 set with align=center this
>> > has no mapping in CSS 2.1
>>
>> Consider that HR element is a block-level element and it's empty by
>> design: it has no inline boxes. So, the attribute specification
>> align=center can
>> not be mapped to and should not be mapped to
>> 'text-align: center' in CSS. It has to be with 'margin-left: auto' and
>> 'margin-right: auto'.
>
> You are making an assumption that there are no inline boxes. There is
> nothing saying you can't create inline boxes.

Well..

<!ELEMENT HR - O EMPTY -- horizontal rule -->
http://www.w3.org/TR/html4/present/graphics.html#edef-HR

I mean
<hr>foo</hr>
is not valid and
<hr><span>bar</span></hr>
is not valid.


> At this point the
> implementation can chose to implement HR however it sees fit. Now
> granted I am not saying that creating inline boxes is the right thing to
> do. I just saying, off the top of my head, I can't think of any
> clarification in CSS saying you can't create them in this case.
>
>>
>> HTML4 states it is aligned "with respect to the surrounding context".
>> http://www.w3.org/TR/html4/present/graphics.html#h-15.3
>
> I understand what HTML4 says but there is nothing in CSS 2.1 that
> requires CSS to apply to the HR's align attribute in any way. The
> closest text is section 6.4.4 and even that is only a suggestion.
>
>> > and thus setting margin-left on the HR element still may do nothing
>> if
>> > the align attribute isn't overridden which can be the case.
>> >
>> > This case should be removed from the CSS 2.1 test suite because it
>> is
>> > testing an assumption of how HR elements are handled in CSS which
>> > isn't clear.
>>
>> Where should the following <div> go in this example?
>>
>> div
>> {
>> border: 1px inset;
>> margin-left: 0px;
>> width: 33%;
>> }
>>
>> <body>
>>  <div></div>
>> </body>
>
> The div should be aligned left.
>
>> Now, why should it be any different for <hr> then?
>
> The HR may be aligned left it may be aligned center CSS doesn't say how
> you override HTML attributes in all cases.
> And it doesn't in this
> specific case.
>
> Section 6.4.4 states that presentational attributes "may" be overridden
> by CSS but it doesn't say that they have to for every case.
>
> After rereading section 6.4.4 I am even more convinced that this case is
> invalid as it stands.

I understand you: HTML presentational attributes may be overridden by
style sheet rules but CSS 2.1 does not say or state (or specify) exactly
how in all cases and in this specific case.

I have just removed the margin-left-001:
revision version 1758

> At the very least this case should have a "may"
> flag and less strict pass conditions to allow it to pass if the HR is
> centered or left aligned.


Arron, years ago, I filed bug 408027 at connect IE beta feedback and
carefully explained all I could with links, references, explanations,
etc. I was certain everything was clear, understood and agreed back
then.

By the way, while we are on this issue, what is your call on
http://test.csswg.org/suites/css2.1/20101210/html4/text-align-006.htm

Because, if I understand your reasoning appropriately, then I should
remove that testcase too.

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

CSS 2.1 test suite (RC4; December 10th 2010):
http://test.csswg.org/suites/css2.1/20101210/html4/toc.html

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

Received on Tuesday, 11 January 2011 03:05:02 UTC