- From: Najib Tounsi <ntounsi@gmail.com>
- Date: Wed, 25 Nov 2009 17:40:25 +0000
- To: "public-i18n-core@w3.org" <public-i18n-core@w3.org>, 'WWW International' <www-international@w3.org>
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
--
Najib TOUNSI (tounsi at w3.org)
W3C Office in Morocco (http://www.w3c.org.ma/)
Ecole Mohammadia d'Ingénieurs, BP. 765 Agdal-RABAT Morocco
Phone : +212 (0) 537 68 71 50 Fax : +212 (0) 537 77 88 53
Mobile: +212 (0) 661 22 00 30
Received on Wednesday, 25 November 2009 18:05:58 UTC