RE: [RC4] margin-left-001 invalid

On Monday, January 10, 2011 7:04 PM Gérard Talbot wrote:
> 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 knew that was somewhere. It's been a long day. :)

> 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
> 

That works.

> > 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.
> 

Yeah text-align-006 is another case that falls into this same category.

--
Thanks,
Arron Eicholz

Received on Tuesday, 11 January 2011 03:28:20 UTC