Open Bug 604720 Opened 11 years ago Updated 3 years ago

::first-letter punctuation extension doesn't extend across changes in directionality

Categories

(Core :: Layout: Block and Inline, defect)

defect
Not set
normal

Tracking

()

People

(Reporter: dbaron, Unassigned)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Keywords: rtl, testcase)

The code for extending ::first-letter through punctuation to the first non-punctuation character doesn't cross changes in directionality.

The underlying problem here is (currently, anyway) likely the same as bug 509685.  However, I'd like a separate bug for this particular case because it affects a rather large number of tests in the CSS 2.1 test suite.

That said, I'm not sure the spec shouldn't change here.  I tend to think that if the :first-letter would include any characters with directionality different from the block's directionality, we probably shouldn't create the ::first-letter style at all.  Currently, the spec only has an exception for the case:

# Similarly, if the first letter(s) of the block are not at the start of the
# line (for example due to bidirectional reordering), then the UA need not
# create the pseudo-element(s). 

This causes the following tests to fail due to the tests for extension through the given characters:

http://test.csswg.org/suites/css2.1/20101001/html4/first-letter-punct-before-002.htm
http://test.csswg.org/suites/css2.1/20101001/xhtml1/first-letter-punct-before-002.xht
05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;;
05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;;
05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/20101001/html4/first-letter-punct-before-003.htm
http://test.csswg.org/suites/css2.1/20101001/xhtml1/first-letter-punct-before-003.xht
0830;SAMARITAN PUNCTUATION NEQUDAA;Po;0;R;;;;;N;;;;;
0831;SAMARITAN PUNCTUATION AFSAAQ;Po;0;R;;;;;N;;;;;
0832;SAMARITAN PUNCTUATION ANGED;Po;0;R;;;;;N;;;;;
0833;SAMARITAN PUNCTUATION BAU;Po;0;R;;;;;N;;;;;
0834;SAMARITAN PUNCTUATION ATMAAU;Po;0;R;;;;;N;;;;;
0835;SAMARITAN PUNCTUATION SHIYYAALAA;Po;0;R;;;;;N;;;;;
0836;SAMARITAN ABBREVIATION MARK;Po;0;R;;;;;N;;;;;
0837;SAMARITAN PUNCTUATION MELODIC QITSA;Po;0;R;;;;;N;;;;;
0838;SAMARITAN PUNCTUATION ZIQAA;Po;0;R;;;;;N;;;;;
0839;SAMARITAN PUNCTUATION QITSA;Po;0;R;;;;;N;;;;;
083A;SAMARITAN PUNCTUATION ZAEF;Po;0;R;;;;;N;;;;;
083B;SAMARITAN PUNCTUATION TURU;Po;0;R;;;;;N;;;;;
083C;SAMARITAN PUNCTUATION ARKAANU;Po;0;R;;;;;N;;;;;
083D;SAMARITAN PUNCTUATION SOF MASHFAAT;Po;0;R;;;;;N;;;;;
083E;SAMARITAN PUNCTUATION ANNAAU;Po;0;R;;;;;N;;;;;
(these all appear to be new in Unicode 6)

http://test.csswg.org/suites/css2.1/20101001/html4/first-letter-punct-before-025.htm
http://test.csswg.org/suites/css2.1/20101001/xhtml1/first-letter-punct-before-025.xht
10857;IMPERIAL ARAMAIC SECTION SIGN;Po;0;R;;;;;N;;;;;
1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;;
This is also responsible for these failures (sorry the test names aren't links; see links above):

first-letter-punctuation-115.xht
05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;;
first-letter-punctuation-116.xht
05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;;
first-letter-punctuation-117.xht
05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
first-letter-punctuation-118.xht
05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
first-letter-punctuation-119.xht
05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
first-letter-punctuation-121.xht
060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-122.xht
061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-123.xht
061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-124.xht
061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-128.xht
066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-129.xht
06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
first-letter-punctuation-130.xht
0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-131.xht
0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-132.xht
0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-133.xht
0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-134.xht
0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-135.xht
0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-136.xht
0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-137.xht
0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-138.xht
0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-139.xht
0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-140.xht
070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-141.xht
070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-142.xht
070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-143.xht
070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
first-letter-punctuation-337.xht
10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
first-letter-punctuation-338.xht
10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
first-letter-punctuation-339.xht
10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
first-letter-punctuation-340.xht
10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
first-letter-punctuation-341.xht
10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
first-letter-punctuation-342.xht
10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
first-letter-punctuation-343.xht
10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
first-letter-punctuation-344.xht
10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
first-letter-punctuation-345.xht
10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
Blocks: css2.1-tests
The only tests with accessible URL I found are:

http://test.csswg.org/suites/css2.1/20101027/html4/first-letter-punct-before-002.htm
http://test.csswg.org/suites/css2.1/20101027/html4/first-letter-punct-before-003.htm
http://test.csswg.org/suites/css2.1/20101027/html4/first-letter-punct-before-025.htm

and

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-115.htm
05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-116.htm
05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-117.htm
05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-118.htm
05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-119.htm
05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-121.htm
060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-122.htm
061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-123.htm
061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-124.htm
061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-128.htm
066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-129.htm
06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-130.htm
0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-131.htm
0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-132.htm
0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-133.htm
0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-134.htm
0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-135.htm
0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-136.htm
0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-137.htm
0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-138.htm
0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-139.htm
0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-140.htm
070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-141.htm
070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-142.htm
070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-143.htm
070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-337.htm
10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-338.htm
10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-339.htm
10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-340.htm
10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-341.htm
10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-342.htm
10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-343.htm
10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-344.htm
10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;

http://test.csswg.org/suites/css2.1/latest/html4/first-letter-punctuation-345.htm
10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;


Adding rtl and testcase keywords
Keywords: rtl, testcase
Blocks: 1514362
You need to log in before you can comment on or make changes to this bug.