tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

shaping-no-join-002.html (2308B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>CSS Text level 3 Test: zwnj and text-shaping, cross font, fallback</title>
      4 <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
      5 <link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding">
      6 <link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf">
      7 <link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf">
      8 <link rel="help" href="https://www.w3.org/TR/alreq/#h_disjoining_enforcement">
      9 <link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement">
     10 <link rel="match" href="reference/shaping-no-join-001-ref.html">
     11 <meta name="assert" content="Arabic characters next to a ZERO WIDTH NON JOINER character must not take their positional form, even if the ZWNJ comes from a differnt font due to font fallback.">
     12 <style>
     13  table {
     14    font-size: 3em;
     15    border-spacing: 0 3px;
     16  }
     17  td {
     18    padding: 0 0.5ch;
     19    line-height: 1;
     20    border: 1px solid;
     21  }
     22  @font-face {
     23    font-family: 'primary';
     24    src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2');
     25    unicode-range: U+20;
     26  }
     27  @font-face {
     28    font-family: 'joiners';
     29    src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff');
     30    unicode-range: U+200C-200D;
     31  }
     32  @font-face {
     33    font-family: 'csstest_noto';
     34    src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2');
     35  }
     36  table {
     37    /*using a primary font with just U+20 (space) to get the baseline right*/
     38    font-family: 'primary', 'joiners', 'csstest_noto';
     39  }
     40 </style>
     41 
     42 <p>Test passes if both halves of each of the pairs below are identical:
     43 
     44 <table dir=rtl lang=ar>
     45 <tr><!-- alef, isolated rather than final -->
     46  <td>&#x640;&zwnj;&#x0627;
     47  <td>&#x640;&#xFE8D;
     48 <tr><!-- beh, isolated rather than initial -->
     49  <td>&#x0628;&zwnj;&#x640;
     50  <td>&#xFE8F;&#x640;
     51 <tr><!-- beh, final rather than medial -->
     52  <td>&#x640;&#x0628;&zwnj;&#x640;
     53  <td>&#x640;&#xFE90;&#x640;
     54 <tr><!-- beh, isolated rather than medial -->
     55  <td>&#x640;&zwnj;&#x0628;&zwnj;&#x640;
     56  <td>&#x640;&#xFE8F;&#x640;
     57 <tr><!-- beh, initial rather than medial -->
     58  <td>&#x640;&zwnj;&#x0628;&#x640;
     59  <td>&#x640;&#xFE91;&#x640;
     60 <tr><!-- beh, isolated rather than final -->
     61  <td>&#x640;&zwnj;&#x0628;
     62  <td>&#x640;&#xFE8F;
     63 </table>