<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Implement “text-spacing” property as specified in CSS Text Module Level 4"
   href="https://bugs.webkit.org/show_bug.cgi?id=157383">157383</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Implement “text-spacing” property as specified in CSS Text Module Level 4
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Text
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>lambda&#64;liu.ms
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>mmaxfield&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Spec URL: <a href="https://drafts.csswg.org/css-text-4/#text-spacing-property">https://drafts.csswg.org/css-text-4/#text-spacing-property</a>

<span class="quote">&gt; This property controls spacing between adjacent characters on the same line within the same inline formatting context using a set of character-class-based rules.</span >

This property is very important for CJK typography:

1. It controls the spacing between CJK characters and other characters, which is required by CJK typography.

In the past content creators have to manually insert spaces. Such a practice often creates inconsistence across pages (not everyone is used to inserting spaces between letters and characters). Moreover, due to the web page’s font fallback rule, the width of a space character is hard to control. The default setting in many Western fonts might be too wide or too narrow for the purpose of separating CJK characters from letters visually.

2. It controls the spacing within sequence of full-width punctuations. For instance, a full-width open bracket “(” looks like:
_( (I use underscore to represent the spacing)
. When two such brackets are adjacent, it will look like:
_(_(
while it looks better with:
_((
. Since the spacing is encoded inside the font, it is very hard to remove it—excepting wrapping the character inside a &lt;span&gt; and apply negative margin to it, which might have its own issues when dealing with line breaks.

Note also the property “punctuation”, which
<span class="quote">&gt; Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.</span >
It currently only matters to French, which I am unfamiliar with. It should be very important though.

I believe this feature will benefit users in CJK regions significantly, so I look forward to someone interested in implementing it. I am a bit inexperienced in C++ and lack the experience in hacking WebKit. However, if I have enough time I might give it a try.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>