Closed Bug 304348 Opened 19 years ago Closed 19 years ago

right-to-left unicode followed by <a> is incorrectly displayed.

Categories

(Firefox :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: vpoythress1, Unassigned)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050720 Fedora/1.0.6-1.1.fc4 Firefox/1.0.6
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050720 Fedora/1.0.6-1.1.fc4 Firefox/1.0.6

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD></HEAD><BODY LANG="en-US" DIR="LTR">
<p> This is a sample file that does not display correctly in firefox 1.0.6 or
Konqueror 3.4.2-0.fc4.1.
But it does behave in firefox with a few modifications.  Here is the part that
is problematic, because of right-to-left unicode:
</p>
<p>
ordinary, then <font face="SBL Hebrew">אִישׁ</font>.<a
  href="#sd"><sup>24</sup></a>, then ordinary.
</p>
<p>Now consider the same text with a slight modification:
</p>
<p>
ordinary, then <font face="SBL Hebrew">אִישׁ</font>.a<a
 href="#sd"><sup>24</sup></a>, then ordinary.
</p>
<p> Weird, isn't it?  Notice that in the first case, in firefox the writing
continues to be right-to-left even after the close of the unicode font.  In the
second case, the order is restored to left-to-right immediately (which is the
correct behavior).  In Konqueror, the behavior is incorrect in both instances.
</p>
<p>It makes no difference when I put the unicode in decimal form:
</p>
<p>
ordinary, then <font face="SBL Hebrew">&#1488;&#1460;&#1497;&#1513;&#1473;</font>.<a
  href="#sd"><sup>24</sup></a>, then ordinary.
</p>
<p>
ordinary, then <font face="SBL
Hebrew">&#1488;&#1460;&#1497;&#1513;&#1473;</font>.a<a
  href="#sd"><sup>24</sup></a>, then ordinary.
</p>
<p>The problem disappears when I remove the hyperlink:
</p>
<p>ordinary, then <font face="SBL Hebrew">אִישׁ</font>., then ordinary.
</p>
</BODY>
</HTML>

Reproducible: Always

Steps to Reproduce:
1. Just take the html file in "details" and open it in firefox.  (I'll be happy
to resupply it if it is corrupted by this transmission.)
Actual Results:  
The characters are not all displayed in the proper left-to-right positions.

Expected Results:  
Right-to-left display should be turned off immediately upon exiting a
right-to-left unicode font.
Product: Core - Component: Layout:BiDi Hebrew & Arabic ?
Attached file reporter's testcase
This is INVALID - the current behaviour is correct.

According to the Unicode Bidirectional Layout algorithm
(http://www.unicode.org/reports/tr9/), a run of characters with weak types (such
as digits) should be laid out in the same direction of the strong-type
characters (e.g. letters) which it follows. The neutral characters in between (a
period, in your example) are then also laid out in the same direction. So the
entire "Hebrew Letters + period + digits" sequence is laid out right-to-left.
The closing or opening of inline elements (such as <font>, in this case) does
not (and should not) have an effect on this.

You can work around this in your case by placing a LRM control character where
you placed the "a" in your "working" example.

<p>
ordinary, then <font face="SBL
Hebrew">&#1488;&#1460;&#1497;&#1513;&#1473;</font>&lrm;.<a
  href="#sd"><sup>24</sup></a>, then ordinary.
</p>
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: