Simon and Behdad are correct: FF currently just puts a unicode-bidi:embed on
a display:inline block element. I was mistaken when I said that it was using
separation.
Aharon
On Tue, Jun 8, 2010 at 6:23 AM, Najib Tounsi <ntounsi@gmail.com> wrote:
> Simon Montagu wrote:
>
>> On 06/06/2010 06:50 PM, Aharon (Vladimir) Lanin wrote:
>>
>>> Separation, on the other hand, has almost no precedent in today's
>>> browsers.
>>> The only exception is an embedded block element with display:inline,
>>> which
>>> until recently all browsers treated as a normal inline element, with no
>>> separation or isolation. Firefox recently discovered that this is not
>>> according to spec, and changed it to use separation. I am not sure if
>>> using
>>> separation vs isolation was a conscious choice or what considerations
>>> went
>>> into it.
>>>
>>>
>>> *** Mozilla engineers: could you shed some light? ***
>>>
>>>
>> The distinction between separation and isolation was certainly nowhere in
>> my mind when I implemented the current bidi behaviour of embedded block
>> elements with display:inline in Firefox. All that I actually did was to give
>> all HTML block elements "unicode-bidi: embed" in the User Agent Stylesheet,
>> which when the element is transformed to "display:inline" has the same
>> effect as "explicitly adding a dir attribute (assigned the inherited value)
>> to the transformed element", as called for in the spec.
>>
>> (An edge case that I have only now considered is when the block element
>> already has an explicit dir attribute of its own. Should the inherited value
>> override this or not? This is probably a moot point, since I agree with you
>> that this part of the spec should be reformulated in terms of bdi anyway).
>>
>>
> May be you are right.
> Firefox is the only browser (I don't test IE) that render the following
> example correctly (i.e. CSS unicode-bidi** is equivalent to HTML dir
> markup):
>
> with the style
> <style type="text/css">
> .a p {display:inline; direction: rtl; unicode-bidi: embed}
> .b p {display:inline;}
> </style>
>
> the HTML code (case-1):
>
> <div class="a">
> <p>display</p>
> <p>in</p>
> <p>line</p>
> </div>
>
> gives (correct)
> "line in display"
>
>
> while (case-2):
>
> <div class="b" dir="rtl">
> <p>display</p>
> <p>in</p>
> <p>line</p>
> </div>
>
> gives (right justified) for other browsers
> "display in line"
>
>
> Especially, when <p>display</p> is replaced by <p>dis ARABIC play</p>
> The content inherits of the rtl directionality.
>
> We already talked about this. See (
> http://lists.w3.org/Archives/Public/public-i18n-core/2009OctDec/0107.html)
> Please try it here: http://www.w3c.org.ma/Tests/displayInline.html
>
> Najib
>
>