Re: [RC2] separated-borders-model-007

On Wed, 13 Oct 2010 08:44:45 +0200, Gérard Talbot  
<css21testsuite@gtalbot.org> wrote:

> http://test.csswg.org/suites/css2.1/20101001/html4/separated-borders-model-007.htm
>
>> (...) Moreover, this test seems to depend
>> on
>> the HTML 'rules' attribute mapping to/interacting with CSS rules in a
>> certain unspecified way
>
> Øyvind,
>
> It seems you added that testcase in the open issues wiki webpage[1],
> under the section "Tests relying on non-normative behavior".

Right. When it comes to interaction between different specs it's always a  
bit tricky, but as mentioned in e.g.  
http://lists.w3.org/Archives/Public/public-css-testsuite/2010Sep/0026.html  
it seems to me that it belongs more on the HTML side. It has a dependency  
on the mapping from HTML attributes to CSS declarations, which only HTML5  
attempts to cover (though in an unfinished and non-normative section, from  
the looks of it).

 From my impression from the thread it seemed like an issue that was still  
open (I don't know what it takes to close it as invalid).

> I assure
> that separated-borders-model-007 testcase is sound and correct.

It assumes that rules="all" on a table maps to CSS specifying border on  
all four sides of each cell in that table. Which as far as I can tell  
isn't normatively specified anywhere (especially not in CSS2).

> "In this [border-collapse: separate] model, each cell has an individual
> border."
> http://www.w3.org/TR/CSS21/tables.html#separated-borders

Sure. Though by default, it's 'none' (width 0) on all sides.

> "all: Rules will appear between all rows and columns."
> http://www.w3.org/TR/html4/struct/tables.html#adef-rules

I think rules are expected to be unbroken lines (by default). Though the  
HTML4 spec doesn't have much detail.

> This was discussed before, in many places...
>
> At the www-style mailing list [2], in bug 409470 at connect IE beta
> feedback, in bug 155507[2] at bugzilla.mozilla.org, in bug 43178[3] at
> bugzilla.mozilla.org.
>
> There is a consensus to implement rules as
> table[rules]:not([rules="all"]) {border-collapse:collapse;} ,

That doesn't make any sense. All the browsers I tried show rules=all  
tables in a border-collapse:collapse fashion. For Fx 3.6.10, Firebug shows
table[rules]:not([rules="none"]) { border-collapse:collapse; }

That's only a small part of it though. To actually get lines in the right  
places, more declarations are needed. These could be setting border on the  
relevant side(s) of each td and th. But they could just as easily be  
setting borders on col and tr elements as appropriate. Possibly overriding  
the outer border with border:hidden on the table element (unless of course  
there are frame/border attributes saying otherwise)...

> assuming that border-collapse: separate is the initial value.
> There is no contradication between rules="all" and 'border-collapse:
> separate'.

The rules attribute is a presentational attribute. When specifying it  
along with CSS, the result generally depends on how exactly the relevant  
presentational hints are formulated in CSS terms.

>> (Opera currently applies the horizontal rules to
>> the <tr>s for instance
>
> I even filed a bug on rules="none" [5] at Opera, years ago (bug 214944
> in Opera BTS) and it's still happening in Opera 10.63.

That seems to have to do with the interaction between the rules attribute  
and the border attribute. Doesn't seem directly related. Thanks for  
reporting, though.

-- 
Øyvind Stenhaug
Core Norway, Opera Software ASA

Received on Wednesday, 13 October 2010 12:03:55 UTC