@@ -140,6 +140,10 @@ Values</h3>
140140<h3 id="terms">
141141Terminology</h3>
142142
143+ <p> <dfn>semantically-perceived character</dfn>
144+ <p> <dfn>visually-perceived character</dfn>
145+ <p> <dfn>visually-perceived letters</dfn>
146+
143147 <p id="grapheme-cluster"> A <dfn>grapheme cluster</dfn> is what
144148 a language user considers to be a character or a basic unit of the
145149 script. The term is described in detail in the Unicode Technical
@@ -179,10 +183,11 @@ Terminology</h3>
179183 for how to determine the Unicode properties of a character.
180184
181185 <p id="letter"> A <dfn>letter</dfn> for the purpose of this specification
182- is a <i> character</i> belonging to one of the Letter or Number general
186+ is a <i> semantically-perceived character</i> belonging to one of the Letter or Number general
183187 categories in Unicode. [[!UAX44]]
184188
185- <p> The rendering characteristics of a <i> character</i> divided by an
189+ <p> The rendering characteristics of a <i> semantically-perceived character</i>
190+ and a <i> visually-perceived character</i> divided by an
186191 element boundary is undefined: it may be rendered as belonging to
187192 either side of the boundary, or as some approximation of belonging
188193 to both. Authors are forewarned that dividing grapheme clusters by
@@ -1489,7 +1494,7 @@ Canonical order: N/A
14891494 For example, the UA could use by default a justification method that is a
14901495 simple universal compromise for all writing systems—such as
14911496 primarily expanding <i> word separators</i>
1492- along with secondarily expanding between CJK and Southeast Asian <i> letters</i> .
1497+ along with secondarily expanding between CJK and Southeast Asian <i> visually-perceived letters</i> .
14931498 Then, in cases where the <i> content language</i> of the paragraph is known,
14941499 it could choose a more language-tailored justification behavior
14951500 e.g. following [[JLREQ]] for Japanese,
@@ -1531,7 +1536,7 @@ Canonical order: N/A
15311536 <p class="caption"> Mixed-script text with ''text-justify: inter-word''
15321537 </div>
15331538 <dt> <dfn>distribute</dfn> </dt>
1534- <dd> Justification adjusts spacing between each pair of adjacent <i> characters</i>
1539+ <dd> Justification adjusts spacing between each pair of adjacent <i> visually-perceived characters</i>
15351540 (effectively varying the used 'letter-spacing' on the line).
15361541 This value is sometimes used in newspapers,
15371542 and is one of the common justification methods in East Asian scripts such as Japanese.
@@ -1561,24 +1566,24 @@ Expanding and Compressing Text</h4>
15611566
15621567 <p> A <span id="expansion-opportunity"> <dfn>justification opportunity</dfn> </span> is
15631568 a point where the justification algorithm may alter spacing within the text.
1564- A justification opportunity can be provided by a single <i> character</i>
1569+ A justification opportunity can be provided by a single <i> visually-perceived character</i>
15651570 (such as a <i> word separator</i> ),
1566- or by the juxtaposition of two <i> characters</i> .
1571+ or by the juxtaposition of two <i> visually-perceived characters</i> .
15671572 Space distributed by justification is <em> in addition to</em>
15681573 the spacing defined by the 'letter-spacing' or 'word-spacing' properties.
15691574 However, when space is distributed to a <i> word separator</i> <i> justification opportunity</i> ,
15701575 it is applied under the same rules as for 'word-spacing' .
1571- Similarly, when space is distributed to an <i> justification opportunity</i> between two <i> characters</i> ,
1576+ Similarly, when space is distributed to an <i> justification opportunity</i> between two <i> visually-perceived characters</i> ,
15721577 it is applied under the same rules as for 'letter-spacing' .
15731578
15741579 <p> A justification algorithm may divide <i> justification opportunities</i> into different priority levels.
15751580 All <i> justification opportunities</i> within a given level
15761581 are expanded or compressed at the same priority,
1577- regardless of which <i> characters</i> created that opportunity.
1582+ regardless of which <i> visually-perceived characters</i> created that opportunity.
15781583 For example, if <i> justification opportunities</i> between two Han characters
1579- and between two Latin <i> letters</i> are defined to be at the same level
1584+ and between two Latin letters are defined to be at the same level
15801585 (as they are in the ''distribute'' justification style),
1581- they are not treated differently because they originate from different <i> characters</i> .
1586+ they are not treated differently because they originate from different <i> visually-perceived characters</i> .
15821587 It is not defined in this level
15831588 whether or how other factors
15841589 (such as font size, letter-spacing, glyph shape, position within the line, etc.)
@@ -1588,11 +1593,11 @@ Expanding and Compressing Text</h4>
15881593Handling Symbols and Punctuation</h4>
15891594
15901595 <p> When determining <i> justification opportunities</i> ,
1591- a character from the Unicode Symbols (S*) and Punctuation (P*) classes
1592- is generally treated the same as a <i> letter</i> :
1593- in the case of ''inter-word'' , as a Latin <i> letter</i> ;
1594- in the case of ''distribute'' , as a Han <i> letter</i> ;
1595- and in the case of ''text-justify:auto'' , as a <i> letter</i> of the dominant script.
1596+ a <i> visually-perceived character</i> from the Unicode Symbols (S*) and Punctuation (P*) classes
1597+ is generally treated the same as a <i> visually-perceived letter</i> :
1598+ in the case of ''inter-word'' , as a Latin <i> visually-perceived letter</i> ;
1599+ in the case of ''distribute'' , as a Han <i> visually-perceived letter</i> ;
1600+ and in the case of ''text-justify:auto'' , as a <i> visually-perceived letter</i> of the dominant script.
15961601
15971602 <p> However, by typographic tradition there may be additional rules
15981603 controlling the justification of symbols and punctuation.
@@ -1622,13 +1627,13 @@ Unexpandable Text</h4>
16221627<h4 id="justify-cursive">
16231628Cursive Scripts</h4>
16241629
1625- <p> Justification <em> must not</em> introduce gaps between <i> letters</i>
1630+ <p> Justification <em> must not</em> introduce gaps between <i> visually-perceived letters</i>
16261631 of <i> cursive scripts</i> such as Arabic.
16271632 If it is able, the UA <em> may</em>
1628- translate space distributed to <i> justification opportunities</i> within a run of such <i> letters</i>
1633+ translate space distributed to <i> justification opportunities</i> within a run of such <i> visually-perceived letters</i>
16291634 into some form of cursive elongation for that run.
16301635 It otherwise <em> must</em> assume that no <i> justification opportunity</i> exists
1631- between any pair of <i> cursive script </i> <i> letters </i> .
1636+ between any pair of <i> visually-perceived letters </i> in <i> cursive script </i> .
16321637
16331638<h4 id="justify-algos">
16341639Possible Algorithms</h4>
@@ -1686,7 +1691,7 @@ Possible Algorithms</h4>
16861691
16871692 <p> CSS offers control over text spacing
16881693 via the 'word-spacing' and 'letter-spacing' properties, which specify additional space
1689- around <i> word separators</i> or between <i> characters</i> , respectively.
1694+ around <i> word separators</i> or between <i> visually-perceived characters</i> , respectively.
16901695 The 'word-spacing' property can now be specified in percentages,
16911696 making it possible to, for example, double or eliminate word spacing.
16921697
@@ -1768,7 +1773,7 @@ Word Spacing: the 'word-spacing' property</h3>
17681773 </div>
17691774
17701775 <p> <dfn id="word-separator" title="word-separator character | word separator">Word-separator characters</dfn>
1771- are <i> characters</i> whose purpose and general usage is to separate words.
1776+ are <i> semantically-perceived characters</i> whose purpose and general usage is to separate words.
17721777 In [UNICODE] this includes
17731778 the space (U+0020), the no-break space (U+00A0), the Ethiopic word space (U+1361),
17741779 the Aegean word separators (U+10100,U+10101), the Ugaritic word divider (U+1039F),
@@ -1826,13 +1831,13 @@ Word Spacing: the 'word-spacing' property</h3>
18261831 <td> N/A
18271832 </table>
18281833
1829- <p> This property specifies additional spacing between adjacent <i> characters</i>
1834+ <p> This property specifies additional spacing between adjacent <i> visually-perceived characters</i>
18301835 (commonly called <dfn>tracking</dfn> ).
18311836 Letter-spacing is applied after
18321837 <a href="http://www.w3.org/TR/css3-writing-modes/#text-direction">bidi reordering</a>
18331838 and is in addition to any 'word-spacing' .
18341839 Depending on the justification rules in effect,
1835- user agents may further increase or decrease the space between <i> characters</i>
1840+ user agents may further increase or decrease the space between <i> visually-perceived characters</i>
18361841 in order to <a href="#text-justify">justify text</a> .
18371842
18381843 <p> Values have the following meanings:
@@ -1841,13 +1846,13 @@ Word Spacing: the 'word-spacing' property</h3>
18411846 <dt> <dfn>normal</dfn>
18421847 <dd> No additional spacing is applied. Computes to zero.
18431848 <dt> <dfn><length></dfn>
1844- <dd> Specifies <em> additional</em> spacing between <i> characters</i> .
1849+ <dd> Specifies <em> additional</em> spacing between <i> visually-perceived characters</i> .
18451850 Values may be negative, but there may be implementation-dependent limits.
18461851 </dl>
18471852
18481853 <p> For the purpose of 'letter-spacing' , each consecutive run of atomic
18491854 inlines (such as images and inline blocks) is treated as a single
1850- <i> character</i> .
1855+ <i> visually-perceived character</i> .
18511856
18521857 <p> Letter-spacing must not be applied at the beginning or at the end of a line.
18531858
@@ -1867,11 +1872,11 @@ Word Spacing: the 'word-spacing' property</h3>
18671872 <p class="ls-ex bad ls-fixed-width color-box" style="text-align: right"> a b c </p>
18681873 </div>
18691874
1870- <p> Letter spacing between two <i> characters</i> effectively “belongs”
1871- to the innermost element that contains the two <i> characters</i> :
1872- the total letter spacing between two adjacent <i> characters</i> (after bidi reordering)
1875+ <p> Letter spacing between two <i> visually-perceived characters</i> effectively “belongs”
1876+ to the innermost element that contains the two <i> visually-perceived characters</i> :
1877+ the total letter spacing between two adjacent <i> visually-perceived characters</i> (after bidi reordering)
18731878 is specified by and rendered within
1874- the innermost element that <em> contains</em> the boundary between the two <i> characters</i> .
1879+ the innermost element that <em> contains</em> the boundary between the two <i> visually-perceived characters</i> .
18751880
18761881 <div class="example">
18771882 <p> A given value of 'letter-spacing' only affects the spacing
@@ -1944,12 +1949,12 @@ Word Spacing: the 'word-spacing' property</h3>
19441949 as it will prevent even spacing of the text.
19451950
19461951 <p> If it is able, the UA <em> may</em> apply letter-spacing to <i> cursive scripts</i>
1947- by translating the total spacing distributed to a run of such <i> letters</i>
1952+ by translating the total spacing distributed to a run of such letters
19481953 into some form of cursive elongation for that run.
19491954 Otherwise, if the UA cannot expand text from a <i> cursive script</i>
19501955 without breaking its cursive connections,
19511956 it <em> must not</em> apply spacing
1952- between any pair of that script's <i> letters </i> at all.
1957+ between any pair of that script's <i> visually-perceived characters </i> at all.
19531958
19541959<h2 id="edge-effects">
19551960 Edge Effects</h2>
0 commit comments