- From: Simon Montagu <smontagu@smontagu.org>
- Date: Fri, 27 Nov 2009 08:54:56 +0200
- To: Adil Allawi <adil@diwan.com>
- Cc: ntounsi@emi.ac.ma, Najib Tounsi <ntounsi@gmail.com>, "public-i18n-core@w3.org" <public-i18n-core@w3.org>, 'WWW International' <www-international@w3.org>
On 11/26/2009 05:09 PM, Adil Allawi wrote:
> Actually the reality is worse. Below is your page drawn in Gecko (Firefox) on
> the left and Webkit (Safari) on the right:
>
>
>
> There is a thread on this list started by Aharon from Google that talks about
> exactly theses sort of issues that has received too little discussion. The real
> problem is that the HTML standard is not explicit enough on what should happen
> so you will get different results on different browsers.
>
> Your example is in a fuzzy area. As far as the markup is concerned there are
> three distinct paragraphs but for the user there is one sentence. According to
> the HTML standard, the elements should be ordered according to the Unicode bidi
> algorithm, however that algorithm has nothing to say about what to do when lines
> of a paragraph are drawn inline. I would personally say that the Gecko engine is
> doing the right thing in this case.
I assume your Gecko example is using a very recent version of Gecko,
such as a nightly build or a beta of Firefox 3.6? I fixed this issue
only a few months ago.
The HTML standard does specify what to do in this case, see
http://www.w3.org/TR/REC-html40/struct/dirlang.html#style-bidi:
"When a block element that does not have a dir attribute is transformed
to the style of an inline element by a style sheet, the resulting
presentation should be equivalent, in terms of bidirectional formatting,
to the formatting obtained by explicitly adding a dir attribute
(assigned the inherited value) to the transformed element."
In practice, however, since browsers are not consistent, authors will
have to use CSS properties to achieve the expected results.
>
> regards
>
> Adil
>
> On 25/11/2009 17:40, Najib Tounsi wrote:
>> Dear all, and bidi experts
>>
>> When trying to localize [1] the new W3C homepage style [2], I came across
>> something worth to note.
>>
>>
>> HTML markup (dir="rtl") doesn't have the same effect as CSS (direction:
>> rtl;unicode-bidi: embed;)
>>
>> Some time you want your block-element to display inline (e.g. for menu-like
>> effect). However, by default this block elements flow from left to right. So
>> to make them flow from right-to left, you want to use HTML markup (dir="rtl").
>> It doesn't work. You should use CSS properties
>> (direction: rtl; unicode-bidi: embed;) to get the desired effect.
>>
>> with the following 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>
>>
>> results in
>> line in display
>>
>> while (case-2):
>>
>> <div class="b" dir="rtl">
>> <p>display</p>
>> <p>in</p>
>> <p>line</p>
>> </div>
>>
>> will result in (right justified)
>> display in line
>>
>>
>> The point is: Why CSS 'direction: rtl; unicode-bidi: embed' is not the same as
>> markup 'dir="rtl"'
>>
>> Css vs markup FAQ [3] says (and I strongly agree):
>> "You should always use dedicated bidi markup to describe your content, where
>> markup is available [...] because directionality is an integral part of the
>> document structure." This rule seems violated in the above example.
>>
>> Well... why change writing direction when content is all English?
>> But imagine one of the<p> contains a strong RTL char.
>>
>> The two cases are still different. In the second case (dir="rtl"), the result
>> is like if all<p>s are inline elements, i.e. all inner<p>s are removed.
>> Please try it: http://www.w3c.org.ma/Tests/displayInline.html
>>
>> So, the rule seems to be (grossly paraphrased):
>> For inline elements, CSS direction property applies to the ordering of
>> elements as well as to their content. On the other hand, markup dir attribute
>> applies only to the content of these elements juxtaposed together.
>>
>> Any opinion?
>>
>> [1] http://www.w3c.org.ma/Tests/temp-ar-index.html
>> [2] http://www.w3.org/
>> [3] http://www.w3.org/International/questions/qa-bidi-css-markup
>>
>>
>> -----------------------------
>> Note incidently, that elements displayed inline and floated right, will flow
>> (by side effect) from right to left, whatever direction is specified. Does
>> float style (*cancel*) direction style?
>>
>> Try it: http://www.w3c.org.ma/Tests/inlineFloat.html
>>
>>
>> Best regards,
>>
>> Najib
>>
>>
Received on Friday, 27 November 2009 06:55:40 UTC