W3C home > Mailing lists > Public > www-html@w3.org > February 2000

Re: Bidi - HTML vs. CSS

From: Nir Dagan <nir@nirdagan.com>
Date: Tue, 22 Feb 2000 19:11:53 -0500
Message-Id: <200002230009.TAA00486@vega.brown.edu>
To: Matthew Brealey <thelawnet@yahoo.com>, www-style@w3.org, www-html@w3.org
At 02:29 PM 2/22/00 -0500, Matthew Brealey wrote:
>Section 8.2.6 of HTML seems to me to be illogical, and doesn't seem to
>work with CSS' cascading rules.
>When an inline element that does not have a dir attribute is transformed
>to the style of a block-level element by a style sheet, it inherits the
>dir attribute from its closest parent block element to define the base
>direction of the block.
>| This is not fine, because an inline element has [implied - these are the
>initial values] INLINE ELEMENT {display: inline; unicode-bidi: normal}.
>Specifying display: block according to the above results in inheritance of
>the dir attribute, which is equivalent to setting unicode-bidi: embed, so
>display: block also sets unicode-bidi: embed.

The "trick" is that "unicode-bidi: embed" has the same semantics as 
"unicode-bidi: normal" for an element with "display: block"
this is because Unicode doesn't embed blocks. 

The reason that CSS2 suggests that the default (informative?) HTML style sheet 
have "unicode-bidi: embed" for blocks is to accommodate for the case where 
a <p> for example is "converted" to "display: inline" in which case 
the "Unicode-bidi" better be set to "embed".
>This totally screws up the cascade. It appears to me that this section is
>a a hangover from the time when CSS didn't support bidi; but now it does
>it seems that this section is totally unnecessary and should be excised
>from HTML.
>In the mean time however, what effect does this bizarre 'display: block
>implies unicode-bidi: embed' (it's as absurd saying color: black implies
>background: white) have? For example, is this 'inheritance' forced or can
>it be overridden; e.g., does unicode-bidi: normal suppress it or not.

It has no effect. Since for an element with "display: block" 
"Unicode-bidi: embed" and "Unicode-bidi: normal" have identical 
semantics. "Unicode-bidi: embed" is a "conditional style" that is 
different from "normal" only when the element has "display: inline".

>Or perhaps I've got hold of the wrong end of the stick? Do they instead
>live in parallel universes - was I mistaken in my assumption that the HTML
>should map to CSS (e.g., for specificity of formatting attributes)?

CSS2 in <http://www.w3.org/TR/REC-CSS2/visuren.html> says 
"Conforming HTML user agents may therefore ignore the 'direction' 
 and 'unicode-bidi' properties in author and user style sheets. "

I think they wanted to say "conforming CSS2 user agents may therefore 
ignore the 'direction' and 'unicode-bidi' properties in author 
and user style sheets, when the style sheet is applied to an HTML document." 

Also in <http://www.w3.org/TR/REC-CSS2/visuren.html>
we have "Conforming HTML user agents may ignore the 'display' property."
Probably with a similar intention as the above quotation.

From a practical point of view is seems best 
1. In HTML, do not mess with the display property, in particular 
   when using BiDi.
2. In HTML, do your BiDi in HTML; not in the associated style sheet.

Clearly, I didn't answer all your questions, but I hope that 
I answered some.

Nir Dagan
Assistant Professor of Economics
Brown University 
Providence, RI

Received on Tuesday, 22 February 2000 19:09:15 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:05:53 UTC