| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Text level 3 Test: zwj and text-shaping, cross font, fallback</title> |
| <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> |
| <link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> |
| <link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> |
| <link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> |
| <link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> |
| <link rel="match" href="reference/shaping-join-001-ref.html"> |
| <meta name="assert" content="Arabic characters next to a ZERO WIDTH JOINER character must take their correct positional form, even if the ZWJ comes from a differnt font due to font fallback."> |
| <style> |
| table { |
| font-size: 3em; |
| border-spacing: 0 3px; |
| } |
| td { |
| padding: 0 0.5ch; |
| line-height: 1; |
| border: 1px solid; |
| } |
| @font-face { |
| font-family: 'primary'; |
| src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); |
| unicode-range: U+20; |
| } |
| @font-face { |
| font-family: 'joiners'; |
| src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff'); |
| unicode-range: U+200C-200D; |
| } |
| @font-face { |
| font-family: 'csstest_noto'; |
| src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); |
| } |
| table { |
| /*using a primary font with just U+20 (space) to get the baseline right*/ |
| font-family: 'primary', 'joiners', 'csstest_noto'; |
| } |
| </style> |
| |
| <p>Test passes if both halves of each of the pairs below are identical: |
| |
| <table dir=rtl> |
| <tr><!-- alef, final form as it doesn't have a medial form --> |
| <td>‍ا‍ |
| <td>ﺎ |
| <tr><!-- alef, final form --> |
| <td>‍ا |
| <td>ﺎ |
| <tr><!-- beh, initial form --> |
| <td>ب‍ |
| <td>ﺑ |
| <tr><!-- beh, medial form --> |
| <td>‍ب‍ |
| <td>ﺒ |
| <tr><!-- beh, final form --> |
| <td>‍ب |
| <td>ﺐ |
| </table> |