Skip to content

Commit 9fe4234

Browse files
committed
[css-fonts-4] port Character handling issues from L3
1 parent 8d4a894 commit 9fe4234

1 file changed

Lines changed: 52 additions & 1 deletion

File tree

css-fonts-4/Overview.bs

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3073,7 +3073,58 @@ Cluster matching</h3>
30733073
<h3 id="char-handling-issues">
30743074
Character handling issues</h3>
30753075

3076-
Issue: Import from level 3
3076+
3077+
CSS font matching is always performed on
3078+
text runs containing Unicode characters [[!UNICODE]],
3079+
so documents using legacy encodings are assumed
3080+
to have been transcoded before matching fonts.
3081+
For fonts containing <a>character maps</a>
3082+
for both legacy encodings and Unicode,
3083+
the contents of the legacy encoding <a>character map</a>
3084+
must have no effect on the results
3085+
of the font matching process.
3086+
3087+
The font matching process does not assume
3088+
that text runs are in either normalized or denormalized form
3089+
(see [[CHARMOD-NORM]] for more details).
3090+
Fonts may only support precomposed forms
3091+
and not the decomposed sequence of base character plus combining marks.
3092+
Authors should always tailor their choice of fonts to their content,
3093+
including whether that content contains
3094+
normalized or denormalized character streams.
3095+
3096+
If a given character is a Private-Use Area Unicode codepoint,
3097+
user agents must only
3098+
match font families named in the 'font-family' list
3099+
that are not generic families.
3100+
If none of the families
3101+
named in the 'font-family' list
3102+
contain a glyph for that codepoint,
3103+
user agents must display some form of missing glyph symbol
3104+
for that character
3105+
rather than attempting <a>system font fallback</a>
3106+
for that codepoint.
3107+
When matching the replacement character U+FFFD,
3108+
user agents may skip the font matching process
3109+
and immediately display
3110+
some form of missing glyph symbol,
3111+
they are not required to display
3112+
the glyph from the font
3113+
that would be selected
3114+
by the font matching process.
3115+
3116+
In general,
3117+
the fonts for a given family
3118+
will all have the same
3119+
or similar <a>character maps</a>.
3120+
The process outlined here
3121+
is designed to handle even font families
3122+
containing faces with widely variant <a>character maps</a>.
3123+
However,
3124+
authors are cautioned that
3125+
the use of such families
3126+
can lead to unexpected results.
3127+
30773128

30783129
<!-- start new list wrt Fonts 3, if needed
30793130
<h3 id="font-matching-changes">

0 commit comments

Comments
 (0)