summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-text/text-transform/reference
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/css/css-text/text-transform/reference
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-text/text-transform/reference')
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-001-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-003-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-005-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-007-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-009-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-010-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-011-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-014-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-016-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-018-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-020-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-022-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-024-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-026-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-028-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-030-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-031-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-032-ref.xht26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-001-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-002-ref.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-003-ref.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-004-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-005-ref.html90
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-006-ref.html92
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-007-ref.html66
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-008-ref.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-001-ref.xht308
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html14
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html14
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-008-ref.html19
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-009-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-lowercase-101-ref.xht26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-multiple-001-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-none-001-ref.xht26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-shaping-001-ref.html15
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-001-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002a-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-003-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-004-ref.html19
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-005-ref.html19
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-101-ref.xht26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-dynamic-ref.html8
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-001-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-002-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-003-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-004-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-005-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-006-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-007-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-008-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-009-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-010-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-011-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-012-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-014-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-015-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-016-ref.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-017-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-018-ref.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-019-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-020-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-021-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-022-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-023-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-024-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-025-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-026-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-027-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-028-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-029-ref.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-030-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-031-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-032-ref.html16
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-033-ref.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-034-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-035-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-038-ref.html22
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-039-ref.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-040-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-041-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-042-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-043-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-044-ref.html33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-101-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-102-ref.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-103-ref.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-104-ref.html25
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-105-ref.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-106-ref.html21
90 files changed, 2523 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-001-ref.html
new file mode 100644
index 0000000000..4e78815599
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-001-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Basic and Latin-1</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>Aaa Aaa</span> <span>Bbb Bbb</span> <span>Ccc Ccc</span> <span>Ddd Ddd</span> <span>Eee Eee</span> <span>Fff Fff</span> <span>Ggg Ggg</span> <span>Hhh Hhh</span> <span>Iii Iii</span> <span>Jjj Jjj</span> <span>Kkk Kkk</span> <span>Lll Lll</span> <span>Mmm Mmm</span> <span>Nnn Nnn</span> <span>Ooo Ooo</span> <span>Ppp Ppp</span> <span>Qqq Qqq</span> <span>Rrr Rrr</span> <span>Sss Sss</span> <span>Ttt Ttt</span> <span>Uuu Uuu</span> <span>Vvv Vvv</span> <span>Www Www</span> <span>Xxx Xxx</span> <span>Yyy Yyy</span> <span>Zzz Zzz</span> <span title="U+00B5">&#x039C;&#x00B5;&#x00B5; &#x039C;&#x00B5;&#x00B5;</span> <span title="U+00E0">&#x00C0;&#x00E0;&#x00E0; &#x00C0;&#x00E0;&#x00E0;</span> <span title="U+00E1">&#x00C1;&#x00E1;&#x00E1; &#x00C1;&#x00E1;&#x00E1;</span> <span title="U+00E2">&#x00C2;&#x00E2;&#x00E2; &#x00C2;&#x00E2;&#x00E2;</span> <span title="U+00E3">&#x00C3;&#x00E3;&#x00E3; &#x00C3;&#x00E3;&#x00E3;</span> <span title="U+00E4">&#x00C4;&#x00E4;&#x00E4; &#x00C4;&#x00E4;&#x00E4;</span> <span title="U+00E5">&#x00C5;&#x00E5;&#x00E5; &#x00C5;&#x00E5;&#x00E5;</span> <span title="U+00E6">&#x00C6;&#x00E6;&#x00E6; &#x00C6;&#x00E6;&#x00E6;</span> <span title="U+00E7">&#x00C7;&#x00E7;&#x00E7; &#x00C7;&#x00E7;&#x00E7;</span> <span title="U+00E8">&#x00C8;&#x00E8;&#x00E8; &#x00C8;&#x00E8;&#x00E8;</span> <span title="U+00E9">&#x00C9;&#x00E9;&#x00E9; &#x00C9;&#x00E9;&#x00E9;</span> <span title="U+00EA">&#x00CA;&#x00EA;&#x00EA; &#x00CA;&#x00EA;&#x00EA;</span> <span title="U+00EB">&#x00CB;&#x00EB;&#x00EB; &#x00CB;&#x00EB;&#x00EB;</span> <span title="U+00EC">&#x00CC;&#x00EC;&#x00EC; &#x00CC;&#x00EC;&#x00EC;</span> <span title="U+00ED">&#x00CD;&#x00ED;&#x00ED; &#x00CD;&#x00ED;&#x00ED;</span> <span title="U+00EE">&#x00CE;&#x00EE;&#x00EE; &#x00CE;&#x00EE;&#x00EE;</span> <span title="U+00EF">&#x00CF;&#x00EF;&#x00EF; &#x00CF;&#x00EF;&#x00EF;</span> <span title="U+00F0">&#x00D0;&#x00F0;&#x00F0; &#x00D0;&#x00F0;&#x00F0;</span> <span title="U+00F1">&#x00D1;&#x00F1;&#x00F1; &#x00D1;&#x00F1;&#x00F1;</span> <span title="U+00F2">&#x00D2;&#x00F2;&#x00F2; &#x00D2;&#x00F2;&#x00F2;</span> <span title="U+00F3">&#x00D3;&#x00F3;&#x00F3; &#x00D3;&#x00F3;&#x00F3;</span> <span title="U+00F4">&#x00D4;&#x00F4;&#x00F4; &#x00D4;&#x00F4;&#x00F4;</span> <span title="U+00F5">&#x00D5;&#x00F5;&#x00F5; &#x00D5;&#x00F5;&#x00F5;</span> <span title="U+00F6">&#x00D6;&#x00F6;&#x00F6; &#x00D6;&#x00F6;&#x00F6;</span> <span title="U+00F8">&#x00D8;&#x00F8;&#x00F8; &#x00D8;&#x00F8;&#x00F8;</span> <span title="U+00F9">&#x00D9;&#x00F9;&#x00F9; &#x00D9;&#x00F9;&#x00F9;</span> <span title="U+00FA">&#x00DA;&#x00FA;&#x00FA; &#x00DA;&#x00FA;&#x00FA;</span> <span title="U+00FB">&#x00DB;&#x00FB;&#x00FB; &#x00DB;&#x00FB;&#x00FB;</span> <span title="U+00FC">&#x00DC;&#x00FC;&#x00FC; &#x00DC;&#x00FC;&#x00FC;</span> <span title="U+00FD">&#x00DD;&#x00FD;&#x00FD; &#x00DD;&#x00FD;&#x00FD;</span> <span title="U+00FE">&#x00DE;&#x00FE;&#x00FE; &#x00DE;&#x00FE;&#x00FE;</span> <span title="U+00FF">&#x0178;&#x00FF;&#x00FF; &#x0178;&#x00FF;&#x00FF;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-003-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-003-ref.html
new file mode 100644
index 0000000000..61e612461d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-003-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended Additional</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 100%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1E01">&#x1E00;&#x1E01;&#x1E01; &#x1E00;&#x1E01;&#x1E01;</span> <span title="U+1E03">&#x1E02;&#x1E03;&#x1E03; &#x1E02;&#x1E03;&#x1E03;</span> <span title="U+1E05">&#x1E04;&#x1E05;&#x1E05; &#x1E04;&#x1E05;&#x1E05;</span> <span title="U+1E07">&#x1E06;&#x1E07;&#x1E07; &#x1E06;&#x1E07;&#x1E07;</span> <span title="U+1E09">&#x1E08;&#x1E09;&#x1E09; &#x1E08;&#x1E09;&#x1E09;</span> <span title="U+1E0B">&#x1E0A;&#x1E0B;&#x1E0B; &#x1E0A;&#x1E0B;&#x1E0B;</span> <span title="U+1E0D">&#x1E0C;&#x1E0D;&#x1E0D; &#x1E0C;&#x1E0D;&#x1E0D;</span> <span title="U+1E0F">&#x1E0E;&#x1E0F;&#x1E0F; &#x1E0E;&#x1E0F;&#x1E0F;</span> <span title="U+1E11">&#x1E10;&#x1E11;&#x1E11; &#x1E10;&#x1E11;&#x1E11;</span> <span title="U+1E13">&#x1E12;&#x1E13;&#x1E13; &#x1E12;&#x1E13;&#x1E13;</span> <span title="U+1E15">&#x1E14;&#x1E15;&#x1E15; &#x1E14;&#x1E15;&#x1E15;</span> <span title="U+1E17">&#x1E16;&#x1E17;&#x1E17; &#x1E16;&#x1E17;&#x1E17;</span> <span title="U+1E19">&#x1E18;&#x1E19;&#x1E19; &#x1E18;&#x1E19;&#x1E19;</span> <span title="U+1E1B">&#x1E1A;&#x1E1B;&#x1E1B; &#x1E1A;&#x1E1B;&#x1E1B;</span> <span title="U+1E1D">&#x1E1C;&#x1E1D;&#x1E1D; &#x1E1C;&#x1E1D;&#x1E1D;</span> <span title="U+1E1F">&#x1E1E;&#x1E1F;&#x1E1F; &#x1E1E;&#x1E1F;&#x1E1F;</span> <span title="U+1E21">&#x1E20;&#x1E21;&#x1E21; &#x1E20;&#x1E21;&#x1E21;</span> <span title="U+1E23">&#x1E22;&#x1E23;&#x1E23; &#x1E22;&#x1E23;&#x1E23;</span> <span title="U+1E25">&#x1E24;&#x1E25;&#x1E25; &#x1E24;&#x1E25;&#x1E25;</span> <span title="U+1E27">&#x1E26;&#x1E27;&#x1E27; &#x1E26;&#x1E27;&#x1E27;</span> <span title="U+1E29">&#x1E28;&#x1E29;&#x1E29; &#x1E28;&#x1E29;&#x1E29;</span> <span title="U+1E2B">&#x1E2A;&#x1E2B;&#x1E2B; &#x1E2A;&#x1E2B;&#x1E2B;</span> <span title="U+1E2D">&#x1E2C;&#x1E2D;&#x1E2D; &#x1E2C;&#x1E2D;&#x1E2D;</span> <span title="U+1E2F">&#x1E2E;&#x1E2F;&#x1E2F; &#x1E2E;&#x1E2F;&#x1E2F;</span> <span title="U+1E31">&#x1E30;&#x1E31;&#x1E31; &#x1E30;&#x1E31;&#x1E31;</span> <span title="U+1E33">&#x1E32;&#x1E33;&#x1E33; &#x1E32;&#x1E33;&#x1E33;</span> <span title="U+1E35">&#x1E34;&#x1E35;&#x1E35; &#x1E34;&#x1E35;&#x1E35;</span> <span title="U+1E37">&#x1E36;&#x1E37;&#x1E37; &#x1E36;&#x1E37;&#x1E37;</span> <span title="U+1E39">&#x1E38;&#x1E39;&#x1E39; &#x1E38;&#x1E39;&#x1E39;</span> <span title="U+1E3B">&#x1E3A;&#x1E3B;&#x1E3B; &#x1E3A;&#x1E3B;&#x1E3B;</span> <span title="U+1E3D">&#x1E3C;&#x1E3D;&#x1E3D; &#x1E3C;&#x1E3D;&#x1E3D;</span> <span title="U+1E3F">&#x1E3E;&#x1E3F;&#x1E3F; &#x1E3E;&#x1E3F;&#x1E3F;</span> <span title="U+1E41">&#x1E40;&#x1E41;&#x1E41; &#x1E40;&#x1E41;&#x1E41;</span> <span title="U+1E43">&#x1E42;&#x1E43;&#x1E43; &#x1E42;&#x1E43;&#x1E43;</span> <span title="U+1E45">&#x1E44;&#x1E45;&#x1E45; &#x1E44;&#x1E45;&#x1E45;</span> <span title="U+1E47">&#x1E46;&#x1E47;&#x1E47; &#x1E46;&#x1E47;&#x1E47;</span> <span title="U+1E49">&#x1E48;&#x1E49;&#x1E49; &#x1E48;&#x1E49;&#x1E49;</span> <span title="U+1E4B">&#x1E4A;&#x1E4B;&#x1E4B; &#x1E4A;&#x1E4B;&#x1E4B;</span> <span title="U+1E4D">&#x1E4C;&#x1E4D;&#x1E4D; &#x1E4C;&#x1E4D;&#x1E4D;</span> <span title="U+1E4F">&#x1E4E;&#x1E4F;&#x1E4F; &#x1E4E;&#x1E4F;&#x1E4F;</span> <span title="U+1E51">&#x1E50;&#x1E51;&#x1E51; &#x1E50;&#x1E51;&#x1E51;</span> <span title="U+1E53">&#x1E52;&#x1E53;&#x1E53; &#x1E52;&#x1E53;&#x1E53;</span> <span title="U+1E55">&#x1E54;&#x1E55;&#x1E55; &#x1E54;&#x1E55;&#x1E55;</span> <span title="U+1E57">&#x1E56;&#x1E57;&#x1E57; &#x1E56;&#x1E57;&#x1E57;</span> <span title="U+1E59">&#x1E58;&#x1E59;&#x1E59; &#x1E58;&#x1E59;&#x1E59;</span> <span title="U+1E5B">&#x1E5A;&#x1E5B;&#x1E5B; &#x1E5A;&#x1E5B;&#x1E5B;</span> <span title="U+1E5D">&#x1E5C;&#x1E5D;&#x1E5D; &#x1E5C;&#x1E5D;&#x1E5D;</span> <span title="U+1E5F">&#x1E5E;&#x1E5F;&#x1E5F; &#x1E5E;&#x1E5F;&#x1E5F;</span> <span title="U+1E61">&#x1E60;&#x1E61;&#x1E61; &#x1E60;&#x1E61;&#x1E61;</span> <span title="U+1E63">&#x1E62;&#x1E63;&#x1E63; &#x1E62;&#x1E63;&#x1E63;</span> <span title="U+1E65">&#x1E64;&#x1E65;&#x1E65; &#x1E64;&#x1E65;&#x1E65;</span> <span title="U+1E67">&#x1E66;&#x1E67;&#x1E67; &#x1E66;&#x1E67;&#x1E67;</span> <span title="U+1E69">&#x1E68;&#x1E69;&#x1E69; &#x1E68;&#x1E69;&#x1E69;</span> <span title="U+1E6B">&#x1E6A;&#x1E6B;&#x1E6B; &#x1E6A;&#x1E6B;&#x1E6B;</span> <span title="U+1E6D">&#x1E6C;&#x1E6D;&#x1E6D; &#x1E6C;&#x1E6D;&#x1E6D;</span> <span title="U+1E6F">&#x1E6E;&#x1E6F;&#x1E6F; &#x1E6E;&#x1E6F;&#x1E6F;</span> <span title="U+1E71">&#x1E70;&#x1E71;&#x1E71; &#x1E70;&#x1E71;&#x1E71;</span> <span title="U+1E73">&#x1E72;&#x1E73;&#x1E73; &#x1E72;&#x1E73;&#x1E73;</span> <span title="U+1E75">&#x1E74;&#x1E75;&#x1E75; &#x1E74;&#x1E75;&#x1E75;</span> <span title="U+1E77">&#x1E76;&#x1E77;&#x1E77; &#x1E76;&#x1E77;&#x1E77;</span> <span title="U+1E79">&#x1E78;&#x1E79;&#x1E79; &#x1E78;&#x1E79;&#x1E79;</span> <span title="U+1E7B">&#x1E7A;&#x1E7B;&#x1E7B; &#x1E7A;&#x1E7B;&#x1E7B;</span> <span title="U+1E7D">&#x1E7C;&#x1E7D;&#x1E7D; &#x1E7C;&#x1E7D;&#x1E7D;</span> <span title="U+1E7F">&#x1E7E;&#x1E7F;&#x1E7F; &#x1E7E;&#x1E7F;&#x1E7F;</span> <span title="U+1E81">&#x1E80;&#x1E81;&#x1E81; &#x1E80;&#x1E81;&#x1E81;</span> <span title="U+1E83">&#x1E82;&#x1E83;&#x1E83; &#x1E82;&#x1E83;&#x1E83;</span> <span title="U+1E85">&#x1E84;&#x1E85;&#x1E85; &#x1E84;&#x1E85;&#x1E85;</span> <span title="U+1E87">&#x1E86;&#x1E87;&#x1E87; &#x1E86;&#x1E87;&#x1E87;</span> <span title="U+1E89">&#x1E88;&#x1E89;&#x1E89; &#x1E88;&#x1E89;&#x1E89;</span> <span title="U+1E8B">&#x1E8A;&#x1E8B;&#x1E8B; &#x1E8A;&#x1E8B;&#x1E8B;</span> <span title="U+1E8D">&#x1E8C;&#x1E8D;&#x1E8D; &#x1E8C;&#x1E8D;&#x1E8D;</span> <span title="U+1E8F">&#x1E8E;&#x1E8F;&#x1E8F; &#x1E8E;&#x1E8F;&#x1E8F;</span> <span title="U+1E91">&#x1E90;&#x1E91;&#x1E91; &#x1E90;&#x1E91;&#x1E91;</span> <span title="U+1E93">&#x1E92;&#x1E93;&#x1E93; &#x1E92;&#x1E93;&#x1E93;</span> <span title="U+1E95">&#x1E94;&#x1E95;&#x1E95; &#x1E94;&#x1E95;&#x1E95;</span> <span title="U+1E9B">&#x1E60;&#x1E9B;&#x1E9B; &#x1E60;&#x1E9B;&#x1E9B;</span> <span title="U+1EA1">&#x1EA0;&#x1EA1;&#x1EA1; &#x1EA0;&#x1EA1;&#x1EA1;</span> <span title="U+1EA3">&#x1EA2;&#x1EA3;&#x1EA3; &#x1EA2;&#x1EA3;&#x1EA3;</span> <span title="U+1EA5">&#x1EA4;&#x1EA5;&#x1EA5; &#x1EA4;&#x1EA5;&#x1EA5;</span> <span title="U+1EA7">&#x1EA6;&#x1EA7;&#x1EA7; &#x1EA6;&#x1EA7;&#x1EA7;</span> <span title="U+1EA9">&#x1EA8;&#x1EA9;&#x1EA9; &#x1EA8;&#x1EA9;&#x1EA9;</span> <span title="U+1EAB">&#x1EAA;&#x1EAB;&#x1EAB; &#x1EAA;&#x1EAB;&#x1EAB;</span> <span title="U+1EAD">&#x1EAC;&#x1EAD;&#x1EAD; &#x1EAC;&#x1EAD;&#x1EAD;</span> <span title="U+1EAF">&#x1EAE;&#x1EAF;&#x1EAF; &#x1EAE;&#x1EAF;&#x1EAF;</span> <span title="U+1EB1">&#x1EB0;&#x1EB1;&#x1EB1; &#x1EB0;&#x1EB1;&#x1EB1;</span> <span title="U+1EB3">&#x1EB2;&#x1EB3;&#x1EB3; &#x1EB2;&#x1EB3;&#x1EB3;</span> <span title="U+1EB5">&#x1EB4;&#x1EB5;&#x1EB5; &#x1EB4;&#x1EB5;&#x1EB5;</span> <span title="U+1EB7">&#x1EB6;&#x1EB7;&#x1EB7; &#x1EB6;&#x1EB7;&#x1EB7;</span> <span title="U+1EB9">&#x1EB8;&#x1EB9;&#x1EB9; &#x1EB8;&#x1EB9;&#x1EB9;</span> <span title="U+1EBB">&#x1EBA;&#x1EBB;&#x1EBB; &#x1EBA;&#x1EBB;&#x1EBB;</span> <span title="U+1EBD">&#x1EBC;&#x1EBD;&#x1EBD; &#x1EBC;&#x1EBD;&#x1EBD;</span> <span title="U+1EBF">&#x1EBE;&#x1EBF;&#x1EBF; &#x1EBE;&#x1EBF;&#x1EBF;</span> <span title="U+1EC1">&#x1EC0;&#x1EC1;&#x1EC1; &#x1EC0;&#x1EC1;&#x1EC1;</span> <span title="U+1EC3">&#x1EC2;&#x1EC3;&#x1EC3; &#x1EC2;&#x1EC3;&#x1EC3;</span> <span title="U+1EC5">&#x1EC4;&#x1EC5;&#x1EC5; &#x1EC4;&#x1EC5;&#x1EC5;</span> <span title="U+1EC7">&#x1EC6;&#x1EC7;&#x1EC7; &#x1EC6;&#x1EC7;&#x1EC7;</span> <span title="U+1EC9">&#x1EC8;&#x1EC9;&#x1EC9; &#x1EC8;&#x1EC9;&#x1EC9;</span> <span title="U+1ECB">&#x1ECA;&#x1ECB;&#x1ECB; &#x1ECA;&#x1ECB;&#x1ECB;</span> <span title="U+1ECD">&#x1ECC;&#x1ECD;&#x1ECD; &#x1ECC;&#x1ECD;&#x1ECD;</span> <span title="U+1ECF">&#x1ECE;&#x1ECF;&#x1ECF; &#x1ECE;&#x1ECF;&#x1ECF;</span> <span title="U+1ED1">&#x1ED0;&#x1ED1;&#x1ED1; &#x1ED0;&#x1ED1;&#x1ED1;</span> <span title="U+1ED3">&#x1ED2;&#x1ED3;&#x1ED3; &#x1ED2;&#x1ED3;&#x1ED3;</span> <span title="U+1ED5">&#x1ED4;&#x1ED5;&#x1ED5; &#x1ED4;&#x1ED5;&#x1ED5;</span> <span title="U+1ED7">&#x1ED6;&#x1ED7;&#x1ED7; &#x1ED6;&#x1ED7;&#x1ED7;</span> <span title="U+1ED9">&#x1ED8;&#x1ED9;&#x1ED9; &#x1ED8;&#x1ED9;&#x1ED9;</span> <span title="U+1EDB">&#x1EDA;&#x1EDB;&#x1EDB; &#x1EDA;&#x1EDB;&#x1EDB;</span> <span title="U+1EDD">&#x1EDC;&#x1EDD;&#x1EDD; &#x1EDC;&#x1EDD;&#x1EDD;</span> <span title="U+1EDF">&#x1EDE;&#x1EDF;&#x1EDF; &#x1EDE;&#x1EDF;&#x1EDF;</span> <span title="U+1EE1">&#x1EE0;&#x1EE1;&#x1EE1; &#x1EE0;&#x1EE1;&#x1EE1;</span> <span title="U+1EE3">&#x1EE2;&#x1EE3;&#x1EE3; &#x1EE2;&#x1EE3;&#x1EE3;</span> <span title="U+1EE5">&#x1EE4;&#x1EE5;&#x1EE5; &#x1EE4;&#x1EE5;&#x1EE5;</span> <span title="U+1EE7">&#x1EE6;&#x1EE7;&#x1EE7; &#x1EE6;&#x1EE7;&#x1EE7;</span> <span title="U+1EE9">&#x1EE8;&#x1EE9;&#x1EE9; &#x1EE8;&#x1EE9;&#x1EE9;</span> <span title="U+1EEB">&#x1EEA;&#x1EEB;&#x1EEB; &#x1EEA;&#x1EEB;&#x1EEB;</span> <span title="U+1EED">&#x1EEC;&#x1EED;&#x1EED; &#x1EEC;&#x1EED;&#x1EED;</span> <span title="U+1EEF">&#x1EEE;&#x1EEF;&#x1EEF; &#x1EEE;&#x1EEF;&#x1EEF;</span> <span title="U+1EF1">&#x1EF0;&#x1EF1;&#x1EF1; &#x1EF0;&#x1EF1;&#x1EF1;</span> <span title="U+1EF3">&#x1EF2;&#x1EF3;&#x1EF3; &#x1EF2;&#x1EF3;&#x1EF3;</span> <span title="U+1EF5">&#x1EF4;&#x1EF5;&#x1EF5; &#x1EF4;&#x1EF5;&#x1EF5;</span> <span title="U+1EF7">&#x1EF6;&#x1EF7;&#x1EF7; &#x1EF6;&#x1EF7;&#x1EF7;</span> <span title="U+1EF9">&#x1EF8;&#x1EF9;&#x1EF9; &#x1EF8;&#x1EF9;&#x1EF9;</span> <span title="U+1EFB">&#x1EFA;&#x1EFB;&#x1EFB; &#x1EFA;&#x1EFB;&#x1EFB;</span> <span title="U+1EFD">&#x1EFC;&#x1EFD;&#x1EFD; &#x1EFC;&#x1EFD;&#x1EFD;</span> <span title="U+1EFF">&#x1EFE;&#x1EFF;&#x1EFF; &#x1EFE;&#x1EFF;&#x1EFF;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-005-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-005-ref.html
new file mode 100644
index 0000000000..cb49f01a98
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-005-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-A</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0101">&#x0100;&#x0101;&#x0101; &#x0100;&#x0101;&#x0101;</span> <span title="U+0103">&#x0102;&#x0103;&#x0103; &#x0102;&#x0103;&#x0103;</span> <span title="U+0105">&#x0104;&#x0105;&#x0105; &#x0104;&#x0105;&#x0105;</span> <span title="U+0107">&#x0106;&#x0107;&#x0107; &#x0106;&#x0107;&#x0107;</span> <span title="U+0109">&#x0108;&#x0109;&#x0109; &#x0108;&#x0109;&#x0109;</span> <span title="U+010B">&#x010A;&#x010B;&#x010B; &#x010A;&#x010B;&#x010B;</span> <span title="U+010D">&#x010C;&#x010D;&#x010D; &#x010C;&#x010D;&#x010D;</span> <span title="U+010F">&#x010E;&#x010F;&#x010F; &#x010E;&#x010F;&#x010F;</span> <span title="U+0111">&#x0110;&#x0111;&#x0111; &#x0110;&#x0111;&#x0111;</span> <span title="U+0113">&#x0112;&#x0113;&#x0113; &#x0112;&#x0113;&#x0113;</span> <span title="U+0115">&#x0114;&#x0115;&#x0115; &#x0114;&#x0115;&#x0115;</span> <span title="U+0117">&#x0116;&#x0117;&#x0117; &#x0116;&#x0117;&#x0117;</span> <span title="U+0119">&#x0118;&#x0119;&#x0119; &#x0118;&#x0119;&#x0119;</span> <span title="U+011B">&#x011A;&#x011B;&#x011B; &#x011A;&#x011B;&#x011B;</span> <span title="U+011D">&#x011C;&#x011D;&#x011D; &#x011C;&#x011D;&#x011D;</span> <span title="U+011F">&#x011E;&#x011F;&#x011F; &#x011E;&#x011F;&#x011F;</span> <span title="U+0121">&#x0120;&#x0121;&#x0121; &#x0120;&#x0121;&#x0121;</span> <span title="U+0123">&#x0122;&#x0123;&#x0123; &#x0122;&#x0123;&#x0123;</span> <span title="U+0125">&#x0124;&#x0125;&#x0125; &#x0124;&#x0125;&#x0125;</span> <span title="U+0127">&#x0126;&#x0127;&#x0127; &#x0126;&#x0127;&#x0127;</span> <span title="U+0129">&#x0128;&#x0129;&#x0129; &#x0128;&#x0129;&#x0129;</span> <span title="U+012B">&#x012A;&#x012B;&#x012B; &#x012A;&#x012B;&#x012B;</span> <span title="U+012D">&#x012C;&#x012D;&#x012D; &#x012C;&#x012D;&#x012D;</span> <span title="U+012F">&#x012E;&#x012F;&#x012F; &#x012E;&#x012F;&#x012F;</span> <span title="U+0131">&#x0049;&#x0131;&#x0131; &#x0049;&#x0131;&#x0131;</span> <span title="U+0133">&#x0132;&#x0133;&#x0133; &#x0132;&#x0133;&#x0133;</span> <span title="U+0135">&#x0134;&#x0135;&#x0135; &#x0134;&#x0135;&#x0135;</span> <span title="U+0137">&#x0136;&#x0137;&#x0137; &#x0136;&#x0137;&#x0137;</span> <span title="U+013A">&#x0139;&#x013A;&#x013A; &#x0139;&#x013A;&#x013A;</span> <span title="U+013C">&#x013B;&#x013C;&#x013C; &#x013B;&#x013C;&#x013C;</span> <span title="U+013E">&#x013D;&#x013E;&#x013E; &#x013D;&#x013E;&#x013E;</span> <span title="U+0140">&#x013F;&#x0140;&#x0140; &#x013F;&#x0140;&#x0140;</span> <span title="U+0142">&#x0141;&#x0142;&#x0142; &#x0141;&#x0142;&#x0142;</span> <span title="U+0144">&#x0143;&#x0144;&#x0144; &#x0143;&#x0144;&#x0144;</span> <span title="U+0146">&#x0145;&#x0146;&#x0146; &#x0145;&#x0146;&#x0146;</span> <span title="U+0148">&#x0147;&#x0148;&#x0148; &#x0147;&#x0148;&#x0148;</span> <span title="U+014B">&#x014A;&#x014B;&#x014B; &#x014A;&#x014B;&#x014B;</span> <span title="U+014D">&#x014C;&#x014D;&#x014D; &#x014C;&#x014D;&#x014D;</span> <span title="U+014F">&#x014E;&#x014F;&#x014F; &#x014E;&#x014F;&#x014F;</span> <span title="U+0151">&#x0150;&#x0151;&#x0151; &#x0150;&#x0151;&#x0151;</span> <span title="U+0153">&#x0152;&#x0153;&#x0153; &#x0152;&#x0153;&#x0153;</span> <span title="U+0155">&#x0154;&#x0155;&#x0155; &#x0154;&#x0155;&#x0155;</span> <span title="U+0157">&#x0156;&#x0157;&#x0157; &#x0156;&#x0157;&#x0157;</span> <span title="U+0159">&#x0158;&#x0159;&#x0159; &#x0158;&#x0159;&#x0159;</span> <span title="U+015B">&#x015A;&#x015B;&#x015B; &#x015A;&#x015B;&#x015B;</span> <span title="U+015D">&#x015C;&#x015D;&#x015D; &#x015C;&#x015D;&#x015D;</span> <span title="U+015F">&#x015E;&#x015F;&#x015F; &#x015E;&#x015F;&#x015F;</span> <span title="U+0161">&#x0160;&#x0161;&#x0161; &#x0160;&#x0161;&#x0161;</span> <span title="U+0163">&#x0162;&#x0163;&#x0163; &#x0162;&#x0163;&#x0163;</span> <span title="U+0165">&#x0164;&#x0165;&#x0165; &#x0164;&#x0165;&#x0165;</span> <span title="U+0167">&#x0166;&#x0167;&#x0167; &#x0166;&#x0167;&#x0167;</span> <span title="U+0169">&#x0168;&#x0169;&#x0169; &#x0168;&#x0169;&#x0169;</span> <span title="U+016B">&#x016A;&#x016B;&#x016B; &#x016A;&#x016B;&#x016B;</span> <span title="U+016D">&#x016C;&#x016D;&#x016D; &#x016C;&#x016D;&#x016D;</span> <span title="U+016F">&#x016E;&#x016F;&#x016F; &#x016E;&#x016F;&#x016F;</span> <span title="U+0171">&#x0170;&#x0171;&#x0171; &#x0170;&#x0171;&#x0171;</span> <span title="U+0173">&#x0172;&#x0173;&#x0173; &#x0172;&#x0173;&#x0173;</span> <span title="U+0175">&#x0174;&#x0175;&#x0175; &#x0174;&#x0175;&#x0175;</span> <span title="U+0177">&#x0176;&#x0177;&#x0177; &#x0176;&#x0177;&#x0177;</span> <span title="U+017A">&#x0179;&#x017A;&#x017A; &#x0179;&#x017A;&#x017A;</span> <span title="U+017C">&#x017B;&#x017C;&#x017C; &#x017B;&#x017C;&#x017C;</span> <span title="U+017E">&#x017D;&#x017E;&#x017E; &#x017D;&#x017E;&#x017E;</span> <span title="U+017F">&#x0053;&#x017F;&#x017F; &#x0053;&#x017F;&#x017F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-007-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-007-ref.html
new file mode 100644
index 0000000000..97fc573628
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-007-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-B</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 100%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0180">&#x0243;&#x0180;&#x0180; &#x0243;&#x0180;&#x0180;</span> <span title="U+0183">&#x0182;&#x0183;&#x0183; &#x0182;&#x0183;&#x0183;</span> <span title="U+0185">&#x0184;&#x0185;&#x0185; &#x0184;&#x0185;&#x0185;</span> <span title="U+0188">&#x0187;&#x0188;&#x0188; &#x0187;&#x0188;&#x0188;</span> <span title="U+018C">&#x018B;&#x018C;&#x018C; &#x018B;&#x018C;&#x018C;</span> <span title="U+0192">&#x0191;&#x0192;&#x0192; &#x0191;&#x0192;&#x0192;</span> <span title="U+0195">&#x01F6;&#x0195;&#x0195; &#x01F6;&#x0195;&#x0195;</span> <span title="U+0199">&#x0198;&#x0199;&#x0199; &#x0198;&#x0199;&#x0199;</span> <span title="U+019A">&#x023D;&#x019A;&#x019A; &#x023D;&#x019A;&#x019A;</span> <span title="U+019E">&#x0220;&#x019E;&#x019E; &#x0220;&#x019E;&#x019E;</span> <span title="U+01A1">&#x01A0;&#x01A1;&#x01A1; &#x01A0;&#x01A1;&#x01A1;</span> <span title="U+01A3">&#x01A2;&#x01A3;&#x01A3; &#x01A2;&#x01A3;&#x01A3;</span> <span title="U+01A5">&#x01A4;&#x01A5;&#x01A5; &#x01A4;&#x01A5;&#x01A5;</span> <span title="U+01A8">&#x01A7;&#x01A8;&#x01A8; &#x01A7;&#x01A8;&#x01A8;</span> <span title="U+01AD">&#x01AC;&#x01AD;&#x01AD; &#x01AC;&#x01AD;&#x01AD;</span> <span title="U+01B0">&#x01AF;&#x01B0;&#x01B0; &#x01AF;&#x01B0;&#x01B0;</span> <span title="U+01B4">&#x01B3;&#x01B4;&#x01B4; &#x01B3;&#x01B4;&#x01B4;</span> <span title="U+01B6">&#x01B5;&#x01B6;&#x01B6; &#x01B5;&#x01B6;&#x01B6;</span> <span title="U+01B9">&#x01B8;&#x01B9;&#x01B9; &#x01B8;&#x01B9;&#x01B9;</span> <span title="U+01BD">&#x01BC;&#x01BD;&#x01BD; &#x01BC;&#x01BD;&#x01BD;</span> <span title="U+01BF">&#x01F7;&#x01BF;&#x01BF; &#x01F7;&#x01BF;&#x01BF;</span> <span title="U+01C4">&#x01C5;&#x01C6;&#x01C6; &#x01C5;&#x01C6;&#x01C6;</span> <span title="U+01C6">&#x01C5;&#x01C6;&#x01C6; &#x01C5;&#x01C6;&#x01C6;</span> <span title="U+01C7">&#x01C8;&#x01C9;&#x01C9; &#x01C8;&#x01C9;&#x01C9;</span> <span title="U+01C9">&#x01C8;&#x01C9;&#x01C9; &#x01C8;&#x01C9;&#x01C9;</span> <span title="U+01CA">&#x01CB;&#x01CC;&#x01CC; &#x01CB;&#x01CC;&#x01CC;</span> <span title="U+01CC">&#x01CB;&#x01CC;&#x01CC; &#x01CB;&#x01CC;&#x01CC;</span> <span title="U+01CE">&#x01CD;&#x01CE;&#x01CE; &#x01CD;&#x01CE;&#x01CE;</span> <span title="U+01D0">&#x01CF;&#x01D0;&#x01D0; &#x01CF;&#x01D0;&#x01D0;</span> <span title="U+01D2">&#x01D1;&#x01D2;&#x01D2; &#x01D1;&#x01D2;&#x01D2;</span> <span title="U+01D4">&#x01D3;&#x01D4;&#x01D4; &#x01D3;&#x01D4;&#x01D4;</span> <span title="U+01D6">&#x01D5;&#x01D6;&#x01D6; &#x01D5;&#x01D6;&#x01D6;</span> <span title="U+01D8">&#x01D7;&#x01D8;&#x01D8; &#x01D7;&#x01D8;&#x01D8;</span> <span title="U+01DA">&#x01D9;&#x01DA;&#x01DA; &#x01D9;&#x01DA;&#x01DA;</span> <span title="U+01DC">&#x01DB;&#x01DC;&#x01DC; &#x01DB;&#x01DC;&#x01DC;</span> <span title="U+01DD">&#x018E;&#x01DD;&#x01DD; &#x018E;&#x01DD;&#x01DD;</span> <span title="U+01DF">&#x01DE;&#x01DF;&#x01DF; &#x01DE;&#x01DF;&#x01DF;</span> <span title="U+01E1">&#x01E0;&#x01E1;&#x01E1; &#x01E0;&#x01E1;&#x01E1;</span> <span title="U+01E3">&#x01E2;&#x01E3;&#x01E3; &#x01E2;&#x01E3;&#x01E3;</span> <span title="U+01E5">&#x01E4;&#x01E5;&#x01E5; &#x01E4;&#x01E5;&#x01E5;</span> <span title="U+01E7">&#x01E6;&#x01E7;&#x01E7; &#x01E6;&#x01E7;&#x01E7;</span> <span title="U+01E9">&#x01E8;&#x01E9;&#x01E9; &#x01E8;&#x01E9;&#x01E9;</span> <span title="U+01EB">&#x01EA;&#x01EB;&#x01EB; &#x01EA;&#x01EB;&#x01EB;</span> <span title="U+01ED">&#x01EC;&#x01ED;&#x01ED; &#x01EC;&#x01ED;&#x01ED;</span> <span title="U+01EF">&#x01EE;&#x01EF;&#x01EF; &#x01EE;&#x01EF;&#x01EF;</span> <span title="U+01F1">&#x01F2;&#x01F3;&#x01F3; &#x01F2;&#x01F3;&#x01F3;</span> <span title="U+01F3">&#x01F2;&#x01F3;&#x01F3; &#x01F2;&#x01F3;&#x01F3;</span> <span title="U+01F5">&#x01F4;&#x01F5;&#x01F5; &#x01F4;&#x01F5;&#x01F5;</span> <span title="U+01F9">&#x01F8;&#x01F9;&#x01F9; &#x01F8;&#x01F9;&#x01F9;</span> <span title="U+01FB">&#x01FA;&#x01FB;&#x01FB; &#x01FA;&#x01FB;&#x01FB;</span> <span title="U+01FD">&#x01FC;&#x01FD;&#x01FD; &#x01FC;&#x01FD;&#x01FD;</span> <span title="U+01FF">&#x01FE;&#x01FF;&#x01FF; &#x01FE;&#x01FF;&#x01FF;</span> <span title="U+0201">&#x0200;&#x0201;&#x0201; &#x0200;&#x0201;&#x0201;</span> <span title="U+0203">&#x0202;&#x0203;&#x0203; &#x0202;&#x0203;&#x0203;</span> <span title="U+0205">&#x0204;&#x0205;&#x0205; &#x0204;&#x0205;&#x0205;</span> <span title="U+0207">&#x0206;&#x0207;&#x0207; &#x0206;&#x0207;&#x0207;</span> <span title="U+0209">&#x0208;&#x0209;&#x0209; &#x0208;&#x0209;&#x0209;</span> <span title="U+020B">&#x020A;&#x020B;&#x020B; &#x020A;&#x020B;&#x020B;</span> <span title="U+020D">&#x020C;&#x020D;&#x020D; &#x020C;&#x020D;&#x020D;</span> <span title="U+020F">&#x020E;&#x020F;&#x020F; &#x020E;&#x020F;&#x020F;</span> <span title="U+0211">&#x0210;&#x0211;&#x0211; &#x0210;&#x0211;&#x0211;</span> <span title="U+0213">&#x0212;&#x0213;&#x0213; &#x0212;&#x0213;&#x0213;</span> <span title="U+0215">&#x0214;&#x0215;&#x0215; &#x0214;&#x0215;&#x0215;</span> <span title="U+0217">&#x0216;&#x0217;&#x0217; &#x0216;&#x0217;&#x0217;</span> <span title="U+0219">&#x0218;&#x0219;&#x0219; &#x0218;&#x0219;&#x0219;</span> <span title="U+021B">&#x021A;&#x021B;&#x021B; &#x021A;&#x021B;&#x021B;</span> <span title="U+021D">&#x021C;&#x021D;&#x021D; &#x021C;&#x021D;&#x021D;</span> <span title="U+021F">&#x021E;&#x021F;&#x021F; &#x021E;&#x021F;&#x021F;</span> <span title="U+0223">&#x0222;&#x0223;&#x0223; &#x0222;&#x0223;&#x0223;</span> <span title="U+0225">&#x0224;&#x0225;&#x0225; &#x0224;&#x0225;&#x0225;</span> <span title="U+0227">&#x0226;&#x0227;&#x0227; &#x0226;&#x0227;&#x0227;</span> <span title="U+0229">&#x0228;&#x0229;&#x0229; &#x0228;&#x0229;&#x0229;</span> <span title="U+022B">&#x022A;&#x022B;&#x022B; &#x022A;&#x022B;&#x022B;</span> <span title="U+022D">&#x022C;&#x022D;&#x022D; &#x022C;&#x022D;&#x022D;</span> <span title="U+022F">&#x022E;&#x022F;&#x022F; &#x022E;&#x022F;&#x022F;</span> <span title="U+0231">&#x0230;&#x0231;&#x0231; &#x0230;&#x0231;&#x0231;</span> <span title="U+0233">&#x0232;&#x0233;&#x0233; &#x0232;&#x0233;&#x0233;</span> <span title="U+023C">&#x023B;&#x023C;&#x023C; &#x023B;&#x023C;&#x023C;</span> <span title="U+023F">&#x2C7E;&#x023F;&#x023F; &#x2C7E;&#x023F;&#x023F;</span> <span title="U+0240">&#x2C7F;&#x0240;&#x0240; &#x2C7F;&#x0240;&#x0240;</span> <span title="U+0242">&#x0241;&#x0242;&#x0242; &#x0241;&#x0242;&#x0242;</span> <span title="U+0247">&#x0246;&#x0247;&#x0247; &#x0246;&#x0247;&#x0247;</span> <span title="U+0249">&#x0248;&#x0249;&#x0249; &#x0248;&#x0249;&#x0249;</span> <span title="U+024B">&#x024A;&#x024B;&#x024B; &#x024A;&#x024B;&#x024B;</span> <span title="U+024D">&#x024C;&#x024D;&#x024D; &#x024C;&#x024D;&#x024D;</span> <span title="U+024F">&#x024E;&#x024F;&#x024F; &#x024E;&#x024F;&#x024F;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-009-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-009-ref.html
new file mode 100644
index 0000000000..4629db93b6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-009-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-C</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2C61">&#x2C60;&#x2C61;&#x2C61; &#x2C60;&#x2C61;&#x2C61;</span> <span title="U+2C65">&#x023A;&#x2C65;&#x2C65; &#x023A;&#x2C65;&#x2C65;</span> <span title="U+2C66">&#x023E;&#x2C66;&#x2C66; &#x023E;&#x2C66;&#x2C66;</span> <span title="U+2C68">&#x2C67;&#x2C68;&#x2C68; &#x2C67;&#x2C68;&#x2C68;</span> <span title="U+2C6A">&#x2C69;&#x2C6A;&#x2C6A; &#x2C69;&#x2C6A;&#x2C6A;</span> <span title="U+2C6C">&#x2C6B;&#x2C6C;&#x2C6C; &#x2C6B;&#x2C6C;&#x2C6C;</span> <span title="U+2C73">&#x2C72;&#x2C73;&#x2C73; &#x2C72;&#x2C73;&#x2C73;</span> <span title="U+2C76">&#x2C75;&#x2C76;&#x2C76; &#x2C75;&#x2C76;&#x2C76;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-010-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-010-ref.html
new file mode 100644
index 0000000000..001269158d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-010-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-D</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+A723">&#xA722;&#xA723;&#xA723; &#xA722;&#xA723;&#xA723;</span> <span title="U+A725">&#xA724;&#xA725;&#xA725; &#xA724;&#xA725;&#xA725;</span> <span title="U+A727">&#xA726;&#xA727;&#xA727; &#xA726;&#xA727;&#xA727;</span> <span title="U+A729">&#xA728;&#xA729;&#xA729; &#xA728;&#xA729;&#xA729;</span> <span title="U+A72B">&#xA72A;&#xA72B;&#xA72B; &#xA72A;&#xA72B;&#xA72B;</span> <span title="U+A72D">&#xA72C;&#xA72D;&#xA72D; &#xA72C;&#xA72D;&#xA72D;</span> <span title="U+A72F">&#xA72E;&#xA72F;&#xA72F; &#xA72E;&#xA72F;&#xA72F;</span> <span title="U+A733">&#xA732;&#xA733;&#xA733; &#xA732;&#xA733;&#xA733;</span> <span title="U+A735">&#xA734;&#xA735;&#xA735; &#xA734;&#xA735;&#xA735;</span> <span title="U+A737">&#xA736;&#xA737;&#xA737; &#xA736;&#xA737;&#xA737;</span> <span title="U+A739">&#xA738;&#xA739;&#xA739; &#xA738;&#xA739;&#xA739;</span> <span title="U+A73B">&#xA73A;&#xA73B;&#xA73B; &#xA73A;&#xA73B;&#xA73B;</span> <span title="U+A73D">&#xA73C;&#xA73D;&#xA73D; &#xA73C;&#xA73D;&#xA73D;</span> <span title="U+A73F">&#xA73E;&#xA73F;&#xA73F; &#xA73E;&#xA73F;&#xA73F;</span> <span title="U+A741">&#xA740;&#xA741;&#xA741; &#xA740;&#xA741;&#xA741;</span> <span title="U+A743">&#xA742;&#xA743;&#xA743; &#xA742;&#xA743;&#xA743;</span> <span title="U+A745">&#xA744;&#xA745;&#xA745; &#xA744;&#xA745;&#xA745;</span> <span title="U+A747">&#xA746;&#xA747;&#xA747; &#xA746;&#xA747;&#xA747;</span> <span title="U+A749">&#xA748;&#xA749;&#xA749; &#xA748;&#xA749;&#xA749;</span> <span title="U+A74B">&#xA74A;&#xA74B;&#xA74B; &#xA74A;&#xA74B;&#xA74B;</span> <span title="U+A74D">&#xA74C;&#xA74D;&#xA74D; &#xA74C;&#xA74D;&#xA74D;</span> <span title="U+A74F">&#xA74E;&#xA74F;&#xA74F; &#xA74E;&#xA74F;&#xA74F;</span> <span title="U+A751">&#xA750;&#xA751;&#xA751; &#xA750;&#xA751;&#xA751;</span> <span title="U+A753">&#xA752;&#xA753;&#xA753; &#xA752;&#xA753;&#xA753;</span> <span title="U+A755">&#xA754;&#xA755;&#xA755; &#xA754;&#xA755;&#xA755;</span> <span title="U+A757">&#xA756;&#xA757;&#xA757; &#xA756;&#xA757;&#xA757;</span> <span title="U+A759">&#xA758;&#xA759;&#xA759; &#xA758;&#xA759;&#xA759;</span> <span title="U+A75B">&#xA75A;&#xA75B;&#xA75B; &#xA75A;&#xA75B;&#xA75B;</span> <span title="U+A75D">&#xA75C;&#xA75D;&#xA75D; &#xA75C;&#xA75D;&#xA75D;</span> <span title="U+A75F">&#xA75E;&#xA75F;&#xA75F; &#xA75E;&#xA75F;&#xA75F;</span> <span title="U+A761">&#xA760;&#xA761;&#xA761; &#xA760;&#xA761;&#xA761;</span> <span title="U+A763">&#xA762;&#xA763;&#xA763; &#xA762;&#xA763;&#xA763;</span> <span title="U+A765">&#xA764;&#xA765;&#xA765; &#xA764;&#xA765;&#xA765;</span> <span title="U+A767">&#xA766;&#xA767;&#xA767; &#xA766;&#xA767;&#xA767;</span> <span title="U+A769">&#xA768;&#xA769;&#xA769; &#xA768;&#xA769;&#xA769;</span> <span title="U+A76B">&#xA76A;&#xA76B;&#xA76B; &#xA76A;&#xA76B;&#xA76B;</span> <span title="U+A76D">&#xA76C;&#xA76D;&#xA76D; &#xA76C;&#xA76D;&#xA76D;</span> <span title="U+A76F">&#xA76E;&#xA76F;&#xA76F; &#xA76E;&#xA76F;&#xA76F;</span> <span title="U+A77A">&#xA779;&#xA77A;&#xA77A; &#xA779;&#xA77A;&#xA77A;</span> <span title="U+A77C">&#xA77B;&#xA77C;&#xA77C; &#xA77B;&#xA77C;&#xA77C;</span> <span title="U+A77F">&#xA77E;&#xA77F;&#xA77F; &#xA77E;&#xA77F;&#xA77F;</span> <span title="U+A781">&#xA780;&#xA781;&#xA781; &#xA780;&#xA781;&#xA781;</span> <span title="U+A783">&#xA782;&#xA783;&#xA783; &#xA782;&#xA783;&#xA783;</span> <span title="U+A785">&#xA784;&#xA785;&#xA785; &#xA784;&#xA785;&#xA785;</span> <span title="U+A787">&#xA786;&#xA787;&#xA787; &#xA786;&#xA787;&#xA787;</span> <span title="U+A78C">&#xA78B;&#xA78C;&#xA78C; &#xA78B;&#xA78C;&#xA78C;</span> <span title="U+A791">&#xA790;&#xA791;&#xA791; &#xA790;&#xA791;&#xA791;</span> <span title="U+A793">&#xA792;&#xA793;&#xA793; &#xA792;&#xA793;&#xA793;</span> <span title="U+A797">&#xA796;&#xA797;&#xA797; &#xA796;&#xA797;&#xA797;</span> <span title="U+A799">&#xA798;&#xA799;&#xA799; &#xA798;&#xA799;&#xA799;</span> <span title="U+A79B">&#xA79A;&#xA79B;&#xA79B; &#xA79A;&#xA79B;&#xA79B;</span> <span title="U+A79D">&#xA79C;&#xA79D;&#xA79D; &#xA79C;&#xA79D;&#xA79D;</span> <span title="U+A79F">&#xA79E;&#xA79F;&#xA79F; &#xA79E;&#xA79F;&#xA79F;</span> <span title="U+A7A1">&#xA7A0;&#xA7A1;&#xA7A1; &#xA7A0;&#xA7A1;&#xA7A1;</span> <span title="U+A7A3">&#xA7A2;&#xA7A3;&#xA7A3; &#xA7A2;&#xA7A3;&#xA7A3;</span> <span title="U+A7A5">&#xA7A4;&#xA7A5;&#xA7A5; &#xA7A4;&#xA7A5;&#xA7A5;</span> <span title="U+A7A7">&#xA7A6;&#xA7A7;&#xA7A7; &#xA7A6;&#xA7A7;&#xA7A7;</span> <span title="U+A7A9">&#xA7A8;&#xA7A9;&#xA7A9; &#xA7A8;&#xA7A9;&#xA7A9;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-011-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-011-ref.html
new file mode 100644
index 0000000000..0a899e240c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-011-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Full-width Latin</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+FF41">&#xFF21;&#xFF41;&#xFF41; &#xFF21;&#xFF41;&#xFF41;</span> <span title="U+FF42">&#xFF22;&#xFF42;&#xFF42; &#xFF22;&#xFF42;&#xFF42;</span> <span title="U+FF43">&#xFF23;&#xFF43;&#xFF43; &#xFF23;&#xFF43;&#xFF43;</span> <span title="U+FF44">&#xFF24;&#xFF44;&#xFF44; &#xFF24;&#xFF44;&#xFF44;</span> <span title="U+FF45">&#xFF25;&#xFF45;&#xFF45; &#xFF25;&#xFF45;&#xFF45;</span> <span title="U+FF46">&#xFF26;&#xFF46;&#xFF46; &#xFF26;&#xFF46;&#xFF46;</span> <span title="U+FF47">&#xFF27;&#xFF47;&#xFF47; &#xFF27;&#xFF47;&#xFF47;</span> <span title="U+FF48">&#xFF28;&#xFF48;&#xFF48; &#xFF28;&#xFF48;&#xFF48;</span> <span title="U+FF49">&#xFF29;&#xFF49;&#xFF49; &#xFF29;&#xFF49;&#xFF49;</span> <span title="U+FF4A">&#xFF2A;&#xFF4A;&#xFF4A; &#xFF2A;&#xFF4A;&#xFF4A;</span> <span title="U+FF4B">&#xFF2B;&#xFF4B;&#xFF4B; &#xFF2B;&#xFF4B;&#xFF4B;</span> <span title="U+FF4C">&#xFF2C;&#xFF4C;&#xFF4C; &#xFF2C;&#xFF4C;&#xFF4C;</span> <span title="U+FF4D">&#xFF2D;&#xFF4D;&#xFF4D; &#xFF2D;&#xFF4D;&#xFF4D;</span> <span title="U+FF4E">&#xFF2E;&#xFF4E;&#xFF4E; &#xFF2E;&#xFF4E;&#xFF4E;</span> <span title="U+FF4F">&#xFF2F;&#xFF4F;&#xFF4F; &#xFF2F;&#xFF4F;&#xFF4F;</span> <span title="U+FF50">&#xFF30;&#xFF50;&#xFF50; &#xFF30;&#xFF50;&#xFF50;</span> <span title="U+FF51">&#xFF31;&#xFF51;&#xFF51; &#xFF31;&#xFF51;&#xFF51;</span> <span title="U+FF52">&#xFF32;&#xFF52;&#xFF52; &#xFF32;&#xFF52;&#xFF52;</span> <span title="U+FF53">&#xFF33;&#xFF53;&#xFF53; &#xFF33;&#xFF53;&#xFF53;</span> <span title="U+FF54">&#xFF34;&#xFF54;&#xFF54; &#xFF34;&#xFF54;&#xFF54;</span> <span title="U+FF55">&#xFF35;&#xFF55;&#xFF55; &#xFF35;&#xFF55;&#xFF55;</span> <span title="U+FF56">&#xFF36;&#xFF56;&#xFF56; &#xFF36;&#xFF56;&#xFF56;</span> <span title="U+FF57">&#xFF37;&#xFF57;&#xFF57; &#xFF37;&#xFF57;&#xFF57;</span> <span title="U+FF58">&#xFF38;&#xFF58;&#xFF58; &#xFF38;&#xFF58;&#xFF58;</span> <span title="U+FF59">&#xFF39;&#xFF59;&#xFF59; &#xFF39;&#xFF59;&#xFF59;</span> <span title="U+FF5A">&#xFF3A;&#xFF5A;&#xFF5A; &#xFF3A;&#xFF5A;&#xFF5A;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-014-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-014-ref.html
new file mode 100644
index 0000000000..a49ce9cdcf
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-014-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek and Coptic</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0371">&#x0370;&#x0371;&#x0371; &#x0370;&#x0371;&#x0371;</span> <span title="U+0373">&#x0372;&#x0373;&#x0373; &#x0372;&#x0373;&#x0373;</span> <span title="U+0377">&#x0376;&#x0377;&#x0377; &#x0376;&#x0377;&#x0377;</span> <span title="U+037B">&#x03FD;&#x037B;&#x037B; &#x03FD;&#x037B;&#x037B;</span> <span title="U+037C">&#x03FE;&#x037C;&#x037C; &#x03FE;&#x037C;&#x037C;</span> <span title="U+037D">&#x03FF;&#x037D;&#x037D; &#x03FF;&#x037D;&#x037D;</span> <span title="U+03AC">&#x0386;&#x03AC;&#x03AC; &#x0386;&#x03AC;&#x03AC;</span> <span title="U+03AD">&#x0388;&#x03AD;&#x03AD; &#x0388;&#x03AD;&#x03AD;</span> <span title="U+03AE">&#x0389;&#x03AE;&#x03AE; &#x0389;&#x03AE;&#x03AE;</span> <span title="U+03AF">&#x038A;&#x03AF;&#x03AF; &#x038A;&#x03AF;&#x03AF;</span> <span title="U+03B1">&#x0391;&#x03B1;&#x03B1; &#x0391;&#x03B1;&#x03B1;</span> <span title="U+03B2">&#x0392;&#x03B2;&#x03B2; &#x0392;&#x03B2;&#x03B2;</span> <span title="U+03B3">&#x0393;&#x03B3;&#x03B3; &#x0393;&#x03B3;&#x03B3;</span> <span title="U+03B4">&#x0394;&#x03B4;&#x03B4; &#x0394;&#x03B4;&#x03B4;</span> <span title="U+03B5">&#x0395;&#x03B5;&#x03B5; &#x0395;&#x03B5;&#x03B5;</span> <span title="U+03B6">&#x0396;&#x03B6;&#x03B6; &#x0396;&#x03B6;&#x03B6;</span> <span title="U+03B7">&#x0397;&#x03B7;&#x03B7; &#x0397;&#x03B7;&#x03B7;</span> <span title="U+03B8">&#x0398;&#x03B8;&#x03B8; &#x0398;&#x03B8;&#x03B8;</span> <span title="U+03B9">&#x0399;&#x03B9;&#x03B9; &#x0399;&#x03B9;&#x03B9;</span> <span title="U+03BA">&#x039A;&#x03BA;&#x03BA; &#x039A;&#x03BA;&#x03BA;</span> <span title="U+03BB">&#x039B;&#x03BB;&#x03BB; &#x039B;&#x03BB;&#x03BB;</span> <span title="U+03BC">&#x039C;&#x03BC;&#x03BC; &#x039C;&#x03BC;&#x03BC;</span> <span title="U+03BD">&#x039D;&#x03BD;&#x03BD; &#x039D;&#x03BD;&#x03BD;</span> <span title="U+03BE">&#x039E;&#x03BE;&#x03BE; &#x039E;&#x03BE;&#x03BE;</span> <span title="U+03BF">&#x039F;&#x03BF;&#x03BF; &#x039F;&#x03BF;&#x03BF;</span> <span title="U+03C0">&#x03A0;&#x03C0;&#x03C0; &#x03A0;&#x03C0;&#x03C0;</span> <span title="U+03C1">&#x03A1;&#x03C1;&#x03C1; &#x03A1;&#x03C1;&#x03C1;</span> <span title="U+03C2">&#x03A3;&#x03C2;&#x03C2; &#x03A3;&#x03C2;&#x03C2;</span> <span title="U+03C3">&#x03A3;&#x03C3;&#x03C3; &#x03A3;&#x03C3;&#x03C3;</span> <span title="U+03C4">&#x03A4;&#x03C4;&#x03C4; &#x03A4;&#x03C4;&#x03C4;</span> <span title="U+03C5">&#x03A5;&#x03C5;&#x03C5; &#x03A5;&#x03C5;&#x03C5;</span> <span title="U+03C6">&#x03A6;&#x03C6;&#x03C6; &#x03A6;&#x03C6;&#x03C6;</span> <span title="U+03C7">&#x03A7;&#x03C7;&#x03C7; &#x03A7;&#x03C7;&#x03C7;</span> <span title="U+03C8">&#x03A8;&#x03C8;&#x03C8; &#x03A8;&#x03C8;&#x03C8;</span> <span title="U+03C9">&#x03A9;&#x03C9;&#x03C9; &#x03A9;&#x03C9;&#x03C9;</span> <span title="U+03CA">&#x03AA;&#x03CA;&#x03CA; &#x03AA;&#x03CA;&#x03CA;</span> <span title="U+03CB">&#x03AB;&#x03CB;&#x03CB; &#x03AB;&#x03CB;&#x03CB;</span> <span title="U+03CC">&#x038C;&#x03CC;&#x03CC; &#x038C;&#x03CC;&#x03CC;</span> <span title="U+03CD">&#x038E;&#x03CD;&#x03CD; &#x038E;&#x03CD;&#x03CD;</span> <span title="U+03CE">&#x038F;&#x03CE;&#x03CE; &#x038F;&#x03CE;&#x03CE;</span> <span title="U+03D0">&#x0392;&#x03D0;&#x03D0; &#x0392;&#x03D0;&#x03D0;</span> <span title="U+03D1">&#x0398;&#x03D1;&#x03D1; &#x0398;&#x03D1;&#x03D1;</span> <span title="U+03D5">&#x03A6;&#x03D5;&#x03D5; &#x03A6;&#x03D5;&#x03D5;</span> <span title="U+03D6">&#x03A0;&#x03D6;&#x03D6; &#x03A0;&#x03D6;&#x03D6;</span> <span title="U+03D7">&#x03CF;&#x03D7;&#x03D7; &#x03CF;&#x03D7;&#x03D7;</span> <span title="U+03D9">&#x03D8;&#x03D9;&#x03D9; &#x03D8;&#x03D9;&#x03D9;</span> <span title="U+03DB">&#x03DA;&#x03DB;&#x03DB; &#x03DA;&#x03DB;&#x03DB;</span> <span title="U+03DD">&#x03DC;&#x03DD;&#x03DD; &#x03DC;&#x03DD;&#x03DD;</span> <span title="U+03DF">&#x03DE;&#x03DF;&#x03DF; &#x03DE;&#x03DF;&#x03DF;</span> <span title="U+03E1">&#x03E0;&#x03E1;&#x03E1; &#x03E0;&#x03E1;&#x03E1;</span> <span title="U+03E3">&#x03E2;&#x03E3;&#x03E3; &#x03E2;&#x03E3;&#x03E3;</span> <span title="U+03E5">&#x03E4;&#x03E5;&#x03E5; &#x03E4;&#x03E5;&#x03E5;</span> <span title="U+03E7">&#x03E6;&#x03E7;&#x03E7; &#x03E6;&#x03E7;&#x03E7;</span> <span title="U+03E9">&#x03E8;&#x03E9;&#x03E9; &#x03E8;&#x03E9;&#x03E9;</span> <span title="U+03EB">&#x03EA;&#x03EB;&#x03EB; &#x03EA;&#x03EB;&#x03EB;</span> <span title="U+03ED">&#x03EC;&#x03ED;&#x03ED; &#x03EC;&#x03ED;&#x03ED;</span> <span title="U+03EF">&#x03EE;&#x03EF;&#x03EF; &#x03EE;&#x03EF;&#x03EF;</span> <span title="U+03F0">&#x039A;&#x03F0;&#x03F0; &#x039A;&#x03F0;&#x03F0;</span> <span title="U+03F1">&#x03A1;&#x03F1;&#x03F1; &#x03A1;&#x03F1;&#x03F1;</span> <span title="U+03F2">&#x03F9;&#x03F2;&#x03F2; &#x03F9;&#x03F2;&#x03F2;</span> <span title="U+03F3">&#x037F;&#x03F3;&#x03F3; &#x037F;&#x03F3;&#x03F3;</span> <span title="U+03F5">&#x0395;&#x03F5;&#x03F5; &#x0395;&#x03F5;&#x03F5;</span> <span title="U+03F8">&#x03F7;&#x03F8;&#x03F8; &#x03F7;&#x03F8;&#x03F8;</span> <span title="U+03FB">&#x03FA;&#x03FB;&#x03FB; &#x03FA;&#x03FB;&#x03FB;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-016-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-016-ref.html
new file mode 100644
index 0000000000..df0cb58c19
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-016-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek Extended</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 100%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1F00">&#x1F08;&#x1F00;&#x1F00; &#x1F08;&#x1F00;&#x1F00;</span> <span title="U+1F01">&#x1F09;&#x1F01;&#x1F01; &#x1F09;&#x1F01;&#x1F01;</span> <span title="U+1F02">&#x1F0A;&#x1F02;&#x1F02; &#x1F0A;&#x1F02;&#x1F02;</span> <span title="U+1F03">&#x1F0B;&#x1F03;&#x1F03; &#x1F0B;&#x1F03;&#x1F03;</span> <span title="U+1F04">&#x1F0C;&#x1F04;&#x1F04; &#x1F0C;&#x1F04;&#x1F04;</span> <span title="U+1F05">&#x1F0D;&#x1F05;&#x1F05; &#x1F0D;&#x1F05;&#x1F05;</span> <span title="U+1F06">&#x1F0E;&#x1F06;&#x1F06; &#x1F0E;&#x1F06;&#x1F06;</span> <span title="U+1F07">&#x1F0F;&#x1F07;&#x1F07; &#x1F0F;&#x1F07;&#x1F07;</span> <span title="U+1F10">&#x1F18;&#x1F10;&#x1F10; &#x1F18;&#x1F10;&#x1F10;</span> <span title="U+1F11">&#x1F19;&#x1F11;&#x1F11; &#x1F19;&#x1F11;&#x1F11;</span> <span title="U+1F12">&#x1F1A;&#x1F12;&#x1F12; &#x1F1A;&#x1F12;&#x1F12;</span> <span title="U+1F13">&#x1F1B;&#x1F13;&#x1F13; &#x1F1B;&#x1F13;&#x1F13;</span> <span title="U+1F14">&#x1F1C;&#x1F14;&#x1F14; &#x1F1C;&#x1F14;&#x1F14;</span> <span title="U+1F15">&#x1F1D;&#x1F15;&#x1F15; &#x1F1D;&#x1F15;&#x1F15;</span> <span title="U+1F20">&#x1F28;&#x1F20;&#x1F20; &#x1F28;&#x1F20;&#x1F20;</span> <span title="U+1F21">&#x1F29;&#x1F21;&#x1F21; &#x1F29;&#x1F21;&#x1F21;</span> <span title="U+1F22">&#x1F2A;&#x1F22;&#x1F22; &#x1F2A;&#x1F22;&#x1F22;</span> <span title="U+1F23">&#x1F2B;&#x1F23;&#x1F23; &#x1F2B;&#x1F23;&#x1F23;</span> <span title="U+1F24">&#x1F2C;&#x1F24;&#x1F24; &#x1F2C;&#x1F24;&#x1F24;</span> <span title="U+1F25">&#x1F2D;&#x1F25;&#x1F25; &#x1F2D;&#x1F25;&#x1F25;</span> <span title="U+1F26">&#x1F2E;&#x1F26;&#x1F26; &#x1F2E;&#x1F26;&#x1F26;</span> <span title="U+1F27">&#x1F2F;&#x1F27;&#x1F27; &#x1F2F;&#x1F27;&#x1F27;</span> <span title="U+1F30">&#x1F38;&#x1F30;&#x1F30; &#x1F38;&#x1F30;&#x1F30;</span> <span title="U+1F31">&#x1F39;&#x1F31;&#x1F31; &#x1F39;&#x1F31;&#x1F31;</span> <span title="U+1F32">&#x1F3A;&#x1F32;&#x1F32; &#x1F3A;&#x1F32;&#x1F32;</span> <span title="U+1F33">&#x1F3B;&#x1F33;&#x1F33; &#x1F3B;&#x1F33;&#x1F33;</span> <span title="U+1F34">&#x1F3C;&#x1F34;&#x1F34; &#x1F3C;&#x1F34;&#x1F34;</span> <span title="U+1F35">&#x1F3D;&#x1F35;&#x1F35; &#x1F3D;&#x1F35;&#x1F35;</span> <span title="U+1F36">&#x1F3E;&#x1F36;&#x1F36; &#x1F3E;&#x1F36;&#x1F36;</span> <span title="U+1F37">&#x1F3F;&#x1F37;&#x1F37; &#x1F3F;&#x1F37;&#x1F37;</span> <span title="U+1F40">&#x1F48;&#x1F40;&#x1F40; &#x1F48;&#x1F40;&#x1F40;</span> <span title="U+1F41">&#x1F49;&#x1F41;&#x1F41; &#x1F49;&#x1F41;&#x1F41;</span> <span title="U+1F42">&#x1F4A;&#x1F42;&#x1F42; &#x1F4A;&#x1F42;&#x1F42;</span> <span title="U+1F43">&#x1F4B;&#x1F43;&#x1F43; &#x1F4B;&#x1F43;&#x1F43;</span> <span title="U+1F44">&#x1F4C;&#x1F44;&#x1F44; &#x1F4C;&#x1F44;&#x1F44;</span> <span title="U+1F45">&#x1F4D;&#x1F45;&#x1F45; &#x1F4D;&#x1F45;&#x1F45;</span> <span title="U+1F51">&#x1F59;&#x1F51;&#x1F51; &#x1F59;&#x1F51;&#x1F51;</span> <span title="U+1F53">&#x1F5B;&#x1F53;&#x1F53; &#x1F5B;&#x1F53;&#x1F53;</span> <span title="U+1F55">&#x1F5D;&#x1F55;&#x1F55; &#x1F5D;&#x1F55;&#x1F55;</span> <span title="U+1F57">&#x1F5F;&#x1F57;&#x1F57; &#x1F5F;&#x1F57;&#x1F57;</span> <span title="U+1F60">&#x1F68;&#x1F60;&#x1F60; &#x1F68;&#x1F60;&#x1F60;</span> <span title="U+1F61">&#x1F69;&#x1F61;&#x1F61; &#x1F69;&#x1F61;&#x1F61;</span> <span title="U+1F62">&#x1F6A;&#x1F62;&#x1F62; &#x1F6A;&#x1F62;&#x1F62;</span> <span title="U+1F63">&#x1F6B;&#x1F63;&#x1F63; &#x1F6B;&#x1F63;&#x1F63;</span> <span title="U+1F64">&#x1F6C;&#x1F64;&#x1F64; &#x1F6C;&#x1F64;&#x1F64;</span> <span title="U+1F65">&#x1F6D;&#x1F65;&#x1F65; &#x1F6D;&#x1F65;&#x1F65;</span> <span title="U+1F66">&#x1F6E;&#x1F66;&#x1F66; &#x1F6E;&#x1F66;&#x1F66;</span> <span title="U+1F67">&#x1F6F;&#x1F67;&#x1F67; &#x1F6F;&#x1F67;&#x1F67;</span> <span title="U+1F70">&#x1FBA;&#x1F70;&#x1F70; &#x1FBA;&#x1F70;&#x1F70;</span> <span title="U+1F71">&#x1FBB;&#x1F71;&#x1F71; &#x1FBB;&#x1F71;&#x1F71;</span> <span title="U+1F72">&#x1FC8;&#x1F72;&#x1F72; &#x1FC8;&#x1F72;&#x1F72;</span> <span title="U+1F73">&#x1FC9;&#x1F73;&#x1F73; &#x1FC9;&#x1F73;&#x1F73;</span> <span title="U+1F74">&#x1FCA;&#x1F74;&#x1F74; &#x1FCA;&#x1F74;&#x1F74;</span> <span title="U+1F75">&#x1FCB;&#x1F75;&#x1F75; &#x1FCB;&#x1F75;&#x1F75;</span> <span title="U+1F76">&#x1FDA;&#x1F76;&#x1F76; &#x1FDA;&#x1F76;&#x1F76;</span> <span title="U+1F77">&#x1FDB;&#x1F77;&#x1F77; &#x1FDB;&#x1F77;&#x1F77;</span> <span title="U+1F78">&#x1FF8;&#x1F78;&#x1F78; &#x1FF8;&#x1F78;&#x1F78;</span> <span title="U+1F79">&#x1FF9;&#x1F79;&#x1F79; &#x1FF9;&#x1F79;&#x1F79;</span> <span title="U+1F7A">&#x1FEA;&#x1F7A;&#x1F7A; &#x1FEA;&#x1F7A;&#x1F7A;</span> <span title="U+1F7B">&#x1FEB;&#x1F7B;&#x1F7B; &#x1FEB;&#x1F7B;&#x1F7B;</span> <span title="U+1F7C">&#x1FFA;&#x1F7C;&#x1F7C; &#x1FFA;&#x1F7C;&#x1F7C;</span> <span title="U+1F7D">&#x1FFB;&#x1F7D;&#x1F7D; &#x1FFB;&#x1F7D;&#x1F7D;</span> <span title="U+1F80">&#x1F88;&#x1F80;&#x1F80; &#x1F88;&#x1F80;&#x1F80;</span> <span title="U+1F81">&#x1F89;&#x1F81;&#x1F81; &#x1F89;&#x1F81;&#x1F81;</span> <span title="U+1F82">&#x1F8A;&#x1F82;&#x1F82; &#x1F8A;&#x1F82;&#x1F82;</span> <span title="U+1F83">&#x1F8B;&#x1F83;&#x1F83; &#x1F8B;&#x1F83;&#x1F83;</span> <span title="U+1F84">&#x1F8C;&#x1F84;&#x1F84; &#x1F8C;&#x1F84;&#x1F84;</span> <span title="U+1F85">&#x1F8D;&#x1F85;&#x1F85; &#x1F8D;&#x1F85;&#x1F85;</span> <span title="U+1F86">&#x1F8E;&#x1F86;&#x1F86; &#x1F8E;&#x1F86;&#x1F86;</span> <span title="U+1F87">&#x1F8F;&#x1F87;&#x1F87; &#x1F8F;&#x1F87;&#x1F87;</span> <span title="U+1F90">&#x1F98;&#x1F90;&#x1F90; &#x1F98;&#x1F90;&#x1F90;</span> <span title="U+1F91">&#x1F99;&#x1F91;&#x1F91; &#x1F99;&#x1F91;&#x1F91;</span> <span title="U+1F92">&#x1F9A;&#x1F92;&#x1F92; &#x1F9A;&#x1F92;&#x1F92;</span> <span title="U+1F93">&#x1F9B;&#x1F93;&#x1F93; &#x1F9B;&#x1F93;&#x1F93;</span> <span title="U+1F94">&#x1F9C;&#x1F94;&#x1F94; &#x1F9C;&#x1F94;&#x1F94;</span> <span title="U+1F95">&#x1F9D;&#x1F95;&#x1F95; &#x1F9D;&#x1F95;&#x1F95;</span> <span title="U+1F96">&#x1F9E;&#x1F96;&#x1F96; &#x1F9E;&#x1F96;&#x1F96;</span> <span title="U+1F97">&#x1F9F;&#x1F97;&#x1F97; &#x1F9F;&#x1F97;&#x1F97;</span> <span title="U+1FA0">&#x1FA8;&#x1FA0;&#x1FA0; &#x1FA8;&#x1FA0;&#x1FA0;</span> <span title="U+1FA1">&#x1FA9;&#x1FA1;&#x1FA1; &#x1FA9;&#x1FA1;&#x1FA1;</span> <span title="U+1FA2">&#x1FAA;&#x1FA2;&#x1FA2; &#x1FAA;&#x1FA2;&#x1FA2;</span> <span title="U+1FA3">&#x1FAB;&#x1FA3;&#x1FA3; &#x1FAB;&#x1FA3;&#x1FA3;</span> <span title="U+1FA4">&#x1FAC;&#x1FA4;&#x1FA4; &#x1FAC;&#x1FA4;&#x1FA4;</span> <span title="U+1FA5">&#x1FAD;&#x1FA5;&#x1FA5; &#x1FAD;&#x1FA5;&#x1FA5;</span> <span title="U+1FA6">&#x1FAE;&#x1FA6;&#x1FA6; &#x1FAE;&#x1FA6;&#x1FA6;</span> <span title="U+1FA7">&#x1FAF;&#x1FA7;&#x1FA7; &#x1FAF;&#x1FA7;&#x1FA7;</span> <span title="U+1FB0">&#x1FB8;&#x1FB0;&#x1FB0; &#x1FB8;&#x1FB0;&#x1FB0;</span> <span title="U+1FB1">&#x1FB9;&#x1FB1;&#x1FB1; &#x1FB9;&#x1FB1;&#x1FB1;</span> <span title="U+1FB3">&#x1FBC;&#x1FB3;&#x1FB3; &#x1FBC;&#x1FB3;&#x1FB3;</span> <span title="U+1FBE">&#x0399;&#x1FBE;&#x1FBE; &#x0399;&#x1FBE;&#x1FBE;</span> <span title="U+1FC3">&#x1FCC;&#x1FC3;&#x1FC3; &#x1FCC;&#x1FC3;&#x1FC3;</span> <span title="U+1FD0">&#x1FD8;&#x1FD0;&#x1FD0; &#x1FD8;&#x1FD0;&#x1FD0;</span> <span title="U+1FD1">&#x1FD9;&#x1FD1;&#x1FD1; &#x1FD9;&#x1FD1;&#x1FD1;</span> <span title="U+1FE0">&#x1FE8;&#x1FE0;&#x1FE0; &#x1FE8;&#x1FE0;&#x1FE0;</span> <span title="U+1FE1">&#x1FE9;&#x1FE1;&#x1FE1; &#x1FE9;&#x1FE1;&#x1FE1;</span> <span title="U+1FE5">&#x1FEC;&#x1FE5;&#x1FE5; &#x1FEC;&#x1FE5;&#x1FE5;</span> <span title="U+1FF3">&#x1FFC;&#x1FF3;&#x1FF3; &#x1FFC;&#x1FF3;&#x1FF3;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-018-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-018-ref.html
new file mode 100644
index 0000000000..df1727457d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-018-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Cyrillic</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 100%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0430">&#x0410;&#x0430;&#x0430; &#x0410;&#x0430;&#x0430;</span> <span title="U+0431">&#x0411;&#x0431;&#x0431; &#x0411;&#x0431;&#x0431;</span> <span title="U+0432">&#x0412;&#x0432;&#x0432; &#x0412;&#x0432;&#x0432;</span> <span title="U+0433">&#x0413;&#x0433;&#x0433; &#x0413;&#x0433;&#x0433;</span> <span title="U+0434">&#x0414;&#x0434;&#x0434; &#x0414;&#x0434;&#x0434;</span> <span title="U+0435">&#x0415;&#x0435;&#x0435; &#x0415;&#x0435;&#x0435;</span> <span title="U+0436">&#x0416;&#x0436;&#x0436; &#x0416;&#x0436;&#x0436;</span> <span title="U+0437">&#x0417;&#x0437;&#x0437; &#x0417;&#x0437;&#x0437;</span> <span title="U+0438">&#x0418;&#x0438;&#x0438; &#x0418;&#x0438;&#x0438;</span> <span title="U+0439">&#x0419;&#x0439;&#x0439; &#x0419;&#x0439;&#x0439;</span> <span title="U+043A">&#x041A;&#x043A;&#x043A; &#x041A;&#x043A;&#x043A;</span> <span title="U+043B">&#x041B;&#x043B;&#x043B; &#x041B;&#x043B;&#x043B;</span> <span title="U+043C">&#x041C;&#x043C;&#x043C; &#x041C;&#x043C;&#x043C;</span> <span title="U+043D">&#x041D;&#x043D;&#x043D; &#x041D;&#x043D;&#x043D;</span> <span title="U+043E">&#x041E;&#x043E;&#x043E; &#x041E;&#x043E;&#x043E;</span> <span title="U+043F">&#x041F;&#x043F;&#x043F; &#x041F;&#x043F;&#x043F;</span> <span title="U+0440">&#x0420;&#x0440;&#x0440; &#x0420;&#x0440;&#x0440;</span> <span title="U+0441">&#x0421;&#x0441;&#x0441; &#x0421;&#x0441;&#x0441;</span> <span title="U+0442">&#x0422;&#x0442;&#x0442; &#x0422;&#x0442;&#x0442;</span> <span title="U+0443">&#x0423;&#x0443;&#x0443; &#x0423;&#x0443;&#x0443;</span> <span title="U+0444">&#x0424;&#x0444;&#x0444; &#x0424;&#x0444;&#x0444;</span> <span title="U+0445">&#x0425;&#x0445;&#x0445; &#x0425;&#x0445;&#x0445;</span> <span title="U+0446">&#x0426;&#x0446;&#x0446; &#x0426;&#x0446;&#x0446;</span> <span title="U+0447">&#x0427;&#x0447;&#x0447; &#x0427;&#x0447;&#x0447;</span> <span title="U+0448">&#x0428;&#x0448;&#x0448; &#x0428;&#x0448;&#x0448;</span> <span title="U+0449">&#x0429;&#x0449;&#x0449; &#x0429;&#x0449;&#x0449;</span> <span title="U+044A">&#x042A;&#x044A;&#x044A; &#x042A;&#x044A;&#x044A;</span> <span title="U+044B">&#x042B;&#x044B;&#x044B; &#x042B;&#x044B;&#x044B;</span> <span title="U+044C">&#x042C;&#x044C;&#x044C; &#x042C;&#x044C;&#x044C;</span> <span title="U+044D">&#x042D;&#x044D;&#x044D; &#x042D;&#x044D;&#x044D;</span> <span title="U+044E">&#x042E;&#x044E;&#x044E; &#x042E;&#x044E;&#x044E;</span> <span title="U+044F">&#x042F;&#x044F;&#x044F; &#x042F;&#x044F;&#x044F;</span> <span title="U+0450">&#x0400;&#x0450;&#x0450; &#x0400;&#x0450;&#x0450;</span> <span title="U+0451">&#x0401;&#x0451;&#x0451; &#x0401;&#x0451;&#x0451;</span> <span title="U+0452">&#x0402;&#x0452;&#x0452; &#x0402;&#x0452;&#x0452;</span> <span title="U+0453">&#x0403;&#x0453;&#x0453; &#x0403;&#x0453;&#x0453;</span> <span title="U+0454">&#x0404;&#x0454;&#x0454; &#x0404;&#x0454;&#x0454;</span> <span title="U+0455">&#x0405;&#x0455;&#x0455; &#x0405;&#x0455;&#x0455;</span> <span title="U+0456">&#x0406;&#x0456;&#x0456; &#x0406;&#x0456;&#x0456;</span> <span title="U+0457">&#x0407;&#x0457;&#x0457; &#x0407;&#x0457;&#x0457;</span> <span title="U+0458">&#x0408;&#x0458;&#x0458; &#x0408;&#x0458;&#x0458;</span> <span title="U+0459">&#x0409;&#x0459;&#x0459; &#x0409;&#x0459;&#x0459;</span> <span title="U+045A">&#x040A;&#x045A;&#x045A; &#x040A;&#x045A;&#x045A;</span> <span title="U+045B">&#x040B;&#x045B;&#x045B; &#x040B;&#x045B;&#x045B;</span> <span title="U+045C">&#x040C;&#x045C;&#x045C; &#x040C;&#x045C;&#x045C;</span> <span title="U+045D">&#x040D;&#x045D;&#x045D; &#x040D;&#x045D;&#x045D;</span> <span title="U+045E">&#x040E;&#x045E;&#x045E; &#x040E;&#x045E;&#x045E;</span> <span title="U+045F">&#x040F;&#x045F;&#x045F; &#x040F;&#x045F;&#x045F;</span> <span title="U+0461">&#x0460;&#x0461;&#x0461; &#x0460;&#x0461;&#x0461;</span> <span title="U+0463">&#x0462;&#x0463;&#x0463; &#x0462;&#x0463;&#x0463;</span> <span title="U+0465">&#x0464;&#x0465;&#x0465; &#x0464;&#x0465;&#x0465;</span> <span title="U+0467">&#x0466;&#x0467;&#x0467; &#x0466;&#x0467;&#x0467;</span> <span title="U+0469">&#x0468;&#x0469;&#x0469; &#x0468;&#x0469;&#x0469;</span> <span title="U+046B">&#x046A;&#x046B;&#x046B; &#x046A;&#x046B;&#x046B;</span> <span title="U+046D">&#x046C;&#x046D;&#x046D; &#x046C;&#x046D;&#x046D;</span> <span title="U+046F">&#x046E;&#x046F;&#x046F; &#x046E;&#x046F;&#x046F;</span> <span title="U+0471">&#x0470;&#x0471;&#x0471; &#x0470;&#x0471;&#x0471;</span> <span title="U+0473">&#x0472;&#x0473;&#x0473; &#x0472;&#x0473;&#x0473;</span> <span title="U+0475">&#x0474;&#x0475;&#x0475; &#x0474;&#x0475;&#x0475;</span> <span title="U+0477">&#x0476;&#x0477;&#x0477; &#x0476;&#x0477;&#x0477;</span> <span title="U+0479">&#x0478;&#x0479;&#x0479; &#x0478;&#x0479;&#x0479;</span> <span title="U+047B">&#x047A;&#x047B;&#x047B; &#x047A;&#x047B;&#x047B;</span> <span title="U+047D">&#x047C;&#x047D;&#x047D; &#x047C;&#x047D;&#x047D;</span> <span title="U+047F">&#x047E;&#x047F;&#x047F; &#x047E;&#x047F;&#x047F;</span> <span title="U+0481">&#x0480;&#x0481;&#x0481; &#x0480;&#x0481;&#x0481;</span> <span title="U+048B">&#x048A;&#x048B;&#x048B; &#x048A;&#x048B;&#x048B;</span> <span title="U+048D">&#x048C;&#x048D;&#x048D; &#x048C;&#x048D;&#x048D;</span> <span title="U+048F">&#x048E;&#x048F;&#x048F; &#x048E;&#x048F;&#x048F;</span> <span title="U+0491">&#x0490;&#x0491;&#x0491; &#x0490;&#x0491;&#x0491;</span> <span title="U+0493">&#x0492;&#x0493;&#x0493; &#x0492;&#x0493;&#x0493;</span> <span title="U+0495">&#x0494;&#x0495;&#x0495; &#x0494;&#x0495;&#x0495;</span> <span title="U+0497">&#x0496;&#x0497;&#x0497; &#x0496;&#x0497;&#x0497;</span> <span title="U+0499">&#x0498;&#x0499;&#x0499; &#x0498;&#x0499;&#x0499;</span> <span title="U+049B">&#x049A;&#x049B;&#x049B; &#x049A;&#x049B;&#x049B;</span> <span title="U+049D">&#x049C;&#x049D;&#x049D; &#x049C;&#x049D;&#x049D;</span> <span title="U+049F">&#x049E;&#x049F;&#x049F; &#x049E;&#x049F;&#x049F;</span> <span title="U+04A1">&#x04A0;&#x04A1;&#x04A1; &#x04A0;&#x04A1;&#x04A1;</span> <span title="U+04A3">&#x04A2;&#x04A3;&#x04A3; &#x04A2;&#x04A3;&#x04A3;</span> <span title="U+04A5">&#x04A4;&#x04A5;&#x04A5; &#x04A4;&#x04A5;&#x04A5;</span> <span title="U+04A7">&#x04A6;&#x04A7;&#x04A7; &#x04A6;&#x04A7;&#x04A7;</span> <span title="U+04A9">&#x04A8;&#x04A9;&#x04A9; &#x04A8;&#x04A9;&#x04A9;</span> <span title="U+04AB">&#x04AA;&#x04AB;&#x04AB; &#x04AA;&#x04AB;&#x04AB;</span> <span title="U+04AD">&#x04AC;&#x04AD;&#x04AD; &#x04AC;&#x04AD;&#x04AD;</span> <span title="U+04AF">&#x04AE;&#x04AF;&#x04AF; &#x04AE;&#x04AF;&#x04AF;</span> <span title="U+04B1">&#x04B0;&#x04B1;&#x04B1; &#x04B0;&#x04B1;&#x04B1;</span> <span title="U+04B3">&#x04B2;&#x04B3;&#x04B3; &#x04B2;&#x04B3;&#x04B3;</span> <span title="U+04B5">&#x04B4;&#x04B5;&#x04B5; &#x04B4;&#x04B5;&#x04B5;</span> <span title="U+04B7">&#x04B6;&#x04B7;&#x04B7; &#x04B6;&#x04B7;&#x04B7;</span> <span title="U+04B9">&#x04B8;&#x04B9;&#x04B9; &#x04B8;&#x04B9;&#x04B9;</span> <span title="U+04BB">&#x04BA;&#x04BB;&#x04BB; &#x04BA;&#x04BB;&#x04BB;</span> <span title="U+04BD">&#x04BC;&#x04BD;&#x04BD; &#x04BC;&#x04BD;&#x04BD;</span> <span title="U+04BF">&#x04BE;&#x04BF;&#x04BF; &#x04BE;&#x04BF;&#x04BF;</span> <span title="U+04C2">&#x04C1;&#x04C2;&#x04C2; &#x04C1;&#x04C2;&#x04C2;</span> <span title="U+04C4">&#x04C3;&#x04C4;&#x04C4; &#x04C3;&#x04C4;&#x04C4;</span> <span title="U+04C6">&#x04C5;&#x04C6;&#x04C6; &#x04C5;&#x04C6;&#x04C6;</span> <span title="U+04C8">&#x04C7;&#x04C8;&#x04C8; &#x04C7;&#x04C8;&#x04C8;</span> <span title="U+04CA">&#x04C9;&#x04CA;&#x04CA; &#x04C9;&#x04CA;&#x04CA;</span> <span title="U+04CC">&#x04CB;&#x04CC;&#x04CC; &#x04CB;&#x04CC;&#x04CC;</span> <span title="U+04CE">&#x04CD;&#x04CE;&#x04CE; &#x04CD;&#x04CE;&#x04CE;</span> <span title="U+04CF">&#x04C0;&#x04CF;&#x04CF; &#x04C0;&#x04CF;&#x04CF;</span> <span title="U+04D1">&#x04D0;&#x04D1;&#x04D1; &#x04D0;&#x04D1;&#x04D1;</span> <span title="U+04D3">&#x04D2;&#x04D3;&#x04D3; &#x04D2;&#x04D3;&#x04D3;</span> <span title="U+04D5">&#x04D4;&#x04D5;&#x04D5; &#x04D4;&#x04D5;&#x04D5;</span> <span title="U+04D7">&#x04D6;&#x04D7;&#x04D7; &#x04D6;&#x04D7;&#x04D7;</span> <span title="U+04D9">&#x04D8;&#x04D9;&#x04D9; &#x04D8;&#x04D9;&#x04D9;</span> <span title="U+04DB">&#x04DA;&#x04DB;&#x04DB; &#x04DA;&#x04DB;&#x04DB;</span> <span title="U+04DD">&#x04DC;&#x04DD;&#x04DD; &#x04DC;&#x04DD;&#x04DD;</span> <span title="U+04DF">&#x04DE;&#x04DF;&#x04DF; &#x04DE;&#x04DF;&#x04DF;</span> <span title="U+04E1">&#x04E0;&#x04E1;&#x04E1; &#x04E0;&#x04E1;&#x04E1;</span> <span title="U+04E3">&#x04E2;&#x04E3;&#x04E3; &#x04E2;&#x04E3;&#x04E3;</span> <span title="U+04E5">&#x04E4;&#x04E5;&#x04E5; &#x04E4;&#x04E5;&#x04E5;</span> <span title="U+04E7">&#x04E6;&#x04E7;&#x04E7; &#x04E6;&#x04E7;&#x04E7;</span> <span title="U+04E9">&#x04E8;&#x04E9;&#x04E9; &#x04E8;&#x04E9;&#x04E9;</span> <span title="U+04EB">&#x04EA;&#x04EB;&#x04EB; &#x04EA;&#x04EB;&#x04EB;</span> <span title="U+04ED">&#x04EC;&#x04ED;&#x04ED; &#x04EC;&#x04ED;&#x04ED;</span> <span title="U+04EF">&#x04EE;&#x04EF;&#x04EF; &#x04EE;&#x04EF;&#x04EF;</span> <span title="U+04F1">&#x04F0;&#x04F1;&#x04F1; &#x04F0;&#x04F1;&#x04F1;</span> <span title="U+04F3">&#x04F2;&#x04F3;&#x04F3; &#x04F2;&#x04F3;&#x04F3;</span> <span title="U+04F5">&#x04F4;&#x04F5;&#x04F5; &#x04F4;&#x04F5;&#x04F5;</span> <span title="U+04F7">&#x04F6;&#x04F7;&#x04F7; &#x04F6;&#x04F7;&#x04F7;</span> <span title="U+04F9">&#x04F8;&#x04F9;&#x04F9; &#x04F8;&#x04F9;&#x04F9;</span> <span title="U+04FB">&#x04FA;&#x04FB;&#x04FB; &#x04FA;&#x04FB;&#x04FB;</span> <span title="U+04FD">&#x04FC;&#x04FD;&#x04FD; &#x04FC;&#x04FD;&#x04FD;</span> <span title="U+04FF">&#x04FE;&#x04FF;&#x04FF; &#x04FE;&#x04FF;&#x04FF;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-020-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-020-ref.html
new file mode 100644
index 0000000000..9eb1d18124
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-020-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Cyrillic Supplement</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0501">&#x0500;&#x0501;&#x0501; &#x0500;&#x0501;&#x0501;</span> <span title="U+0503">&#x0502;&#x0503;&#x0503; &#x0502;&#x0503;&#x0503;</span> <span title="U+0505">&#x0504;&#x0505;&#x0505; &#x0504;&#x0505;&#x0505;</span> <span title="U+0507">&#x0506;&#x0507;&#x0507; &#x0506;&#x0507;&#x0507;</span> <span title="U+0509">&#x0508;&#x0509;&#x0509; &#x0508;&#x0509;&#x0509;</span> <span title="U+050B">&#x050A;&#x050B;&#x050B; &#x050A;&#x050B;&#x050B;</span> <span title="U+050D">&#x050C;&#x050D;&#x050D; &#x050C;&#x050D;&#x050D;</span> <span title="U+050F">&#x050E;&#x050F;&#x050F; &#x050E;&#x050F;&#x050F;</span> <span title="U+0511">&#x0510;&#x0511;&#x0511; &#x0510;&#x0511;&#x0511;</span> <span title="U+0513">&#x0512;&#x0513;&#x0513; &#x0512;&#x0513;&#x0513;</span> <span title="U+0515">&#x0514;&#x0515;&#x0515; &#x0514;&#x0515;&#x0515;</span> <span title="U+0517">&#x0516;&#x0517;&#x0517; &#x0516;&#x0517;&#x0517;</span> <span title="U+0519">&#x0518;&#x0519;&#x0519; &#x0518;&#x0519;&#x0519;</span> <span title="U+051B">&#x051A;&#x051B;&#x051B; &#x051A;&#x051B;&#x051B;</span> <span title="U+051D">&#x051C;&#x051D;&#x051D; &#x051C;&#x051D;&#x051D;</span> <span title="U+051F">&#x051E;&#x051F;&#x051F; &#x051E;&#x051F;&#x051F;</span> <span title="U+0521">&#x0520;&#x0521;&#x0521; &#x0520;&#x0521;&#x0521;</span> <span title="U+0523">&#x0522;&#x0523;&#x0523; &#x0522;&#x0523;&#x0523;</span> <span title="U+0525">&#x0524;&#x0525;&#x0525; &#x0524;&#x0525;&#x0525;</span> <span title="U+0527">&#x0526;&#x0527;&#x0527; &#x0526;&#x0527;&#x0527;</span> <span title="U+0529">&#x0528;&#x0529;&#x0529; &#x0528;&#x0529;&#x0529;</span> <span title="U+052B">&#x052A;&#x052B;&#x052B; &#x052A;&#x052B;&#x052B;</span> <span title="U+052D">&#x052C;&#x052D;&#x052D; &#x052C;&#x052D;&#x052D;</span> <span title="U+052F">&#x052E;&#x052F;&#x052F; &#x052E;&#x052F;&#x052F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-022-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-022-ref.html
new file mode 100644
index 0000000000..a07c35b10e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-022-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Armenian</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansArmenian-Regular') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Noto Sans Armenian', webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0561">&#x0531;&#x0561;&#x0561; &#x0531;&#x0561;&#x0561;</span> <span title="U+0562">&#x0532;&#x0562;&#x0562; &#x0532;&#x0562;&#x0562;</span> <span title="U+0563">&#x0533;&#x0563;&#x0563; &#x0533;&#x0563;&#x0563;</span> <span title="U+0564">&#x0534;&#x0564;&#x0564; &#x0534;&#x0564;&#x0564;</span> <span title="U+0565">&#x0535;&#x0565;&#x0565; &#x0535;&#x0565;&#x0565;</span> <span title="U+0566">&#x0536;&#x0566;&#x0566; &#x0536;&#x0566;&#x0566;</span> <span title="U+0567">&#x0537;&#x0567;&#x0567; &#x0537;&#x0567;&#x0567;</span> <span title="U+0568">&#x0538;&#x0568;&#x0568; &#x0538;&#x0568;&#x0568;</span> <span title="U+0569">&#x0539;&#x0569;&#x0569; &#x0539;&#x0569;&#x0569;</span> <span title="U+056A">&#x053A;&#x056A;&#x056A; &#x053A;&#x056A;&#x056A;</span> <span title="U+056B">&#x053B;&#x056B;&#x056B; &#x053B;&#x056B;&#x056B;</span> <span title="U+056C">&#x053C;&#x056C;&#x056C; &#x053C;&#x056C;&#x056C;</span> <span title="U+056D">&#x053D;&#x056D;&#x056D; &#x053D;&#x056D;&#x056D;</span> <span title="U+056E">&#x053E;&#x056E;&#x056E; &#x053E;&#x056E;&#x056E;</span> <span title="U+056F">&#x053F;&#x056F;&#x056F; &#x053F;&#x056F;&#x056F;</span> <span title="U+0570">&#x0540;&#x0570;&#x0570; &#x0540;&#x0570;&#x0570;</span> <span title="U+0571">&#x0541;&#x0571;&#x0571; &#x0541;&#x0571;&#x0571;</span> <span title="U+0572">&#x0542;&#x0572;&#x0572; &#x0542;&#x0572;&#x0572;</span> <span title="U+0573">&#x0543;&#x0573;&#x0573; &#x0543;&#x0573;&#x0573;</span> <span title="U+0574">&#x0544;&#x0574;&#x0574; &#x0544;&#x0574;&#x0574;</span> <span title="U+0575">&#x0545;&#x0575;&#x0575; &#x0545;&#x0575;&#x0575;</span> <span title="U+0576">&#x0546;&#x0576;&#x0576; &#x0546;&#x0576;&#x0576;</span> <span title="U+0577">&#x0547;&#x0577;&#x0577; &#x0547;&#x0577;&#x0577;</span> <span title="U+0578">&#x0548;&#x0578;&#x0578; &#x0548;&#x0578;&#x0578;</span> <span title="U+0579">&#x0549;&#x0579;&#x0579; &#x0549;&#x0579;&#x0579;</span> <span title="U+057A">&#x054A;&#x057A;&#x057A; &#x054A;&#x057A;&#x057A;</span> <span title="U+057B">&#x054B;&#x057B;&#x057B; &#x054B;&#x057B;&#x057B;</span> <span title="U+057C">&#x054C;&#x057C;&#x057C; &#x054C;&#x057C;&#x057C;</span> <span title="U+057D">&#x054D;&#x057D;&#x057D; &#x054D;&#x057D;&#x057D;</span> <span title="U+057E">&#x054E;&#x057E;&#x057E; &#x054E;&#x057E;&#x057E;</span> <span title="U+057F">&#x054F;&#x057F;&#x057F; &#x054F;&#x057F;&#x057F;</span> <span title="U+0580">&#x0550;&#x0580;&#x0580; &#x0550;&#x0580;&#x0580;</span> <span title="U+0581">&#x0551;&#x0581;&#x0581; &#x0551;&#x0581;&#x0581;</span> <span title="U+0582">&#x0552;&#x0582;&#x0582; &#x0552;&#x0582;&#x0582;</span> <span title="U+0583">&#x0553;&#x0583;&#x0583; &#x0553;&#x0583;&#x0583;</span> <span title="U+0584">&#x0554;&#x0584;&#x0584; &#x0554;&#x0584;&#x0584;</span> <span title="U+0585">&#x0555;&#x0585;&#x0585; &#x0555;&#x0585;&#x0585;</span> <span title="U+0586">&#x0556;&#x0586;&#x0586; &#x0556;&#x0586;&#x0586;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-024-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-024-ref.html
new file mode 100644
index 0000000000..d115bf09b8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-024-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Number Forms</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2170">&#x2160;&#x2170;&#x2170; &#x2160;&#x2170;&#x2170;</span> <span title="U+2171">&#x2161;&#x2171;&#x2171; &#x2161;&#x2171;&#x2171;</span> <span title="U+2172">&#x2162;&#x2172;&#x2172; &#x2162;&#x2172;&#x2172;</span> <span title="U+2173">&#x2163;&#x2173;&#x2173; &#x2163;&#x2173;&#x2173;</span> <span title="U+2174">&#x2164;&#x2174;&#x2174; &#x2164;&#x2174;&#x2174;</span> <span title="U+2175">&#x2165;&#x2175;&#x2175; &#x2165;&#x2175;&#x2175;</span> <span title="U+2176">&#x2166;&#x2176;&#x2176; &#x2166;&#x2176;&#x2176;</span> <span title="U+2177">&#x2167;&#x2177;&#x2177; &#x2167;&#x2177;&#x2177;</span> <span title="U+2178">&#x2168;&#x2178;&#x2178; &#x2168;&#x2178;&#x2178;</span> <span title="U+2179">&#x2169;&#x2179;&#x2179; &#x2169;&#x2179;&#x2179;</span> <span title="U+217A">&#x216A;&#x217A;&#x217A; &#x216A;&#x217A;&#x217A;</span> <span title="U+217B">&#x216B;&#x217B;&#x217B; &#x216B;&#x217B;&#x217B;</span> <span title="U+217C">&#x216C;&#x217C;&#x217C; &#x216C;&#x217C;&#x217C;</span> <span title="U+217D">&#x216D;&#x217D;&#x217D; &#x216D;&#x217D;&#x217D;</span> <span title="U+217E">&#x216E;&#x217E;&#x217E; &#x216E;&#x217E;&#x217E;</span> <span title="U+217F">&#x216F;&#x217F;&#x217F; &#x216F;&#x217F;&#x217F;</span> <span title="U+2184">&#x2183;&#x2184;&#x2184; &#x2183;&#x2184;&#x2184;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-026-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-026-ref.html
new file mode 100644
index 0000000000..157c19cf1f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-026-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Enclosed Alphanumerics</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if there are NO uppercase letters.<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+24D0">&#x24D0;&#x24D0;&#x24D0;</span> <span title="U+24D1">&#x24D1;&#x24D1;&#x24D1;</span> <span title="U+24D2">&#x24D2;&#x24D2;&#x24D2;</span> <span title="U+24D3">&#x24D3;&#x24D3;&#x24D3;</span> <span title="U+24D4">&#x24D4;&#x24D4;&#x24D4;</span> <span title="U+24D5">&#x24D5;&#x24D5;&#x24D5;</span> <span title="U+24D6">&#x24D6;&#x24D6;&#x24D6;</span> <span title="U+24D7">&#x24D7;&#x24D7;&#x24D7;</span> <span title="U+24D8">&#x24D8;&#x24D8;&#x24D8;</span> <span title="U+24D9">&#x24D9;&#x24D9;&#x24D9;</span> <span title="U+24DA">&#x24DA;&#x24DA;&#x24DA;</span> <span title="U+24DB">&#x24DB;&#x24DB;&#x24DB;</span> <span title="U+24DC">&#x24DC;&#x24DC;&#x24DC;</span> <span title="U+24DD">&#x24DD;&#x24DD;&#x24DD;</span> <span title="U+24DE">&#x24DE;&#x24DE;&#x24DE;</span> <span title="U+24DF">&#x24DF;&#x24DF;&#x24DF;</span> <span title="U+24E0">&#x24E0;&#x24E0;&#x24E0;</span> <span title="U+24E1">&#x24E1;&#x24E1;&#x24E1;</span> <span title="U+24E2">&#x24E2;&#x24E2;&#x24E2;</span> <span title="U+24E3">&#x24E3;&#x24E3;&#x24E3;</span> <span title="U+24E4">&#x24E4;&#x24E4;&#x24E4;</span> <span title="U+24E5">&#x24E5;&#x24E5;&#x24E5;</span> <span title="U+24E6">&#x24E6;&#x24E6;&#x24E6;</span> <span title="U+24E7">&#x24E7;&#x24E7;&#x24E7;</span> <span title="U+24E8">&#x24E8;&#x24E8;&#x24E8;</span> <span title="U+24E9">&#x24E9;&#x24E9;&#x24E9;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-028-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-028-ref.html
new file mode 100644
index 0000000000..21e19d1715
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-028-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Deseret</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/noto/NotoSansDeseret-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+10428">&#x10400;&#x10428;&#x10428; &#x10400;&#x10428;&#x10428;</span> <span title="U+10429">&#x10401;&#x10429;&#x10429; &#x10401;&#x10429;&#x10429;</span> <span title="U+1042A">&#x10402;&#x1042A;&#x1042A; &#x10402;&#x1042A;&#x1042A;</span> <span title="U+1042B">&#x10403;&#x1042B;&#x1042B; &#x10403;&#x1042B;&#x1042B;</span> <span title="U+1042C">&#x10404;&#x1042C;&#x1042C; &#x10404;&#x1042C;&#x1042C;</span> <span title="U+1042D">&#x10405;&#x1042D;&#x1042D; &#x10405;&#x1042D;&#x1042D;</span> <span title="U+1042E">&#x10406;&#x1042E;&#x1042E; &#x10406;&#x1042E;&#x1042E;</span> <span title="U+1042F">&#x10407;&#x1042F;&#x1042F; &#x10407;&#x1042F;&#x1042F;</span> <span title="U+10430">&#x10408;&#x10430;&#x10430; &#x10408;&#x10430;&#x10430;</span> <span title="U+10431">&#x10409;&#x10431;&#x10431; &#x10409;&#x10431;&#x10431;</span> <span title="U+10432">&#x1040A;&#x10432;&#x10432; &#x1040A;&#x10432;&#x10432;</span> <span title="U+10433">&#x1040B;&#x10433;&#x10433; &#x1040B;&#x10433;&#x10433;</span> <span title="U+10434">&#x1040C;&#x10434;&#x10434; &#x1040C;&#x10434;&#x10434;</span> <span title="U+10435">&#x1040D;&#x10435;&#x10435; &#x1040D;&#x10435;&#x10435;</span> <span title="U+10436">&#x1040E;&#x10436;&#x10436; &#x1040E;&#x10436;&#x10436;</span> <span title="U+10437">&#x1040F;&#x10437;&#x10437; &#x1040F;&#x10437;&#x10437;</span> <span title="U+10438">&#x10410;&#x10438;&#x10438; &#x10410;&#x10438;&#x10438;</span> <span title="U+10439">&#x10411;&#x10439;&#x10439; &#x10411;&#x10439;&#x10439;</span> <span title="U+1043A">&#x10412;&#x1043A;&#x1043A; &#x10412;&#x1043A;&#x1043A;</span> <span title="U+1043B">&#x10413;&#x1043B;&#x1043B; &#x10413;&#x1043B;&#x1043B;</span> <span title="U+1043C">&#x10414;&#x1043C;&#x1043C; &#x10414;&#x1043C;&#x1043C;</span> <span title="U+1043D">&#x10415;&#x1043D;&#x1043D; &#x10415;&#x1043D;&#x1043D;</span> <span title="U+1043E">&#x10416;&#x1043E;&#x1043E; &#x10416;&#x1043E;&#x1043E;</span> <span title="U+1043F">&#x10417;&#x1043F;&#x1043F; &#x10417;&#x1043F;&#x1043F;</span> <span title="U+10440">&#x10418;&#x10440;&#x10440; &#x10418;&#x10440;&#x10440;</span> <span title="U+10441">&#x10419;&#x10441;&#x10441; &#x10419;&#x10441;&#x10441;</span> <span title="U+10442">&#x1041A;&#x10442;&#x10442; &#x1041A;&#x10442;&#x10442;</span> <span title="U+10443">&#x1041B;&#x10443;&#x10443; &#x1041B;&#x10443;&#x10443;</span> <span title="U+10444">&#x1041C;&#x10444;&#x10444; &#x1041C;&#x10444;&#x10444;</span> <span title="U+10445">&#x1041D;&#x10445;&#x10445; &#x1041D;&#x10445;&#x10445;</span> <span title="U+10446">&#x1041E;&#x10446;&#x10446; &#x1041E;&#x10446;&#x10446;</span> <span title="U+10447">&#x1041F;&#x10447;&#x10447; &#x1041F;&#x10447;&#x10447;</span> <span title="U+10448">&#x10420;&#x10448;&#x10448; &#x10420;&#x10448;&#x10448;</span> <span title="U+10449">&#x10421;&#x10449;&#x10449; &#x10421;&#x10449;&#x10449;</span> <span title="U+1044A">&#x10422;&#x1044A;&#x1044A; &#x10422;&#x1044A;&#x1044A;</span> <span title="U+1044B">&#x10423;&#x1044B;&#x1044B; &#x10423;&#x1044B;&#x1044B;</span> <span title="U+1044C">&#x10424;&#x1044C;&#x1044C; &#x10424;&#x1044C;&#x1044C;</span> <span title="U+1044D">&#x10425;&#x1044D;&#x1044D; &#x10425;&#x1044D;&#x1044D;</span> <span title="U+1044E">&#x10426;&#x1044E;&#x1044E; &#x10426;&#x1044E;&#x1044E;</span> <span title="U+1044F">&#x10427;&#x1044F;&#x1044F; &#x10427;&#x1044F;&#x1044F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-030-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-030-ref.html
new file mode 100644
index 0000000000..96240cae72
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-030-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Georgian Supplement</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansGeorgian-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">The text is arranged in pairs of three-letter 'words'. Test passes if the words in each pair match<br>
+If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2D00">&#x10A0;&#x2D00;&#x2D00; &#x10A0;&#x2D00;&#x2D00;</span> <span title="U+2D01">&#x10A1;&#x2D01;&#x2D01; &#x10A1;&#x2D01;&#x2D01;</span> <span title="U+2D02">&#x10A2;&#x2D02;&#x2D02; &#x10A2;&#x2D02;&#x2D02;</span> <span title="U+2D03">&#x10A3;&#x2D03;&#x2D03; &#x10A3;&#x2D03;&#x2D03;</span> <span title="U+2D04">&#x10A4;&#x2D04;&#x2D04; &#x10A4;&#x2D04;&#x2D04;</span> <span title="U+2D05">&#x10A5;&#x2D05;&#x2D05; &#x10A5;&#x2D05;&#x2D05;</span> <span title="U+2D06">&#x10A6;&#x2D06;&#x2D06; &#x10A6;&#x2D06;&#x2D06;</span> <span title="U+2D07">&#x10A7;&#x2D07;&#x2D07; &#x10A7;&#x2D07;&#x2D07;</span> <span title="U+2D08">&#x10A8;&#x2D08;&#x2D08; &#x10A8;&#x2D08;&#x2D08;</span> <span title="U+2D09">&#x10A9;&#x2D09;&#x2D09; &#x10A9;&#x2D09;&#x2D09;</span> <span title="U+2D0A">&#x10AA;&#x2D0A;&#x2D0A; &#x10AA;&#x2D0A;&#x2D0A;</span> <span title="U+2D0B">&#x10AB;&#x2D0B;&#x2D0B; &#x10AB;&#x2D0B;&#x2D0B;</span> <span title="U+2D0C">&#x10AC;&#x2D0C;&#x2D0C; &#x10AC;&#x2D0C;&#x2D0C;</span> <span title="U+2D0D">&#x10AD;&#x2D0D;&#x2D0D; &#x10AD;&#x2D0D;&#x2D0D;</span> <span title="U+2D0E">&#x10AE;&#x2D0E;&#x2D0E; &#x10AE;&#x2D0E;&#x2D0E;</span> <span title="U+2D0F">&#x10AF;&#x2D0F;&#x2D0F; &#x10AF;&#x2D0F;&#x2D0F;</span> <span title="U+2D10">&#x10B0;&#x2D10;&#x2D10; &#x10B0;&#x2D10;&#x2D10;</span> <span title="U+2D11">&#x10B1;&#x2D11;&#x2D11; &#x10B1;&#x2D11;&#x2D11;</span> <span title="U+2D12">&#x10B2;&#x2D12;&#x2D12; &#x10B2;&#x2D12;&#x2D12;</span> <span title="U+2D13">&#x10B3;&#x2D13;&#x2D13; &#x10B3;&#x2D13;&#x2D13;</span> <span title="U+2D14">&#x10B4;&#x2D14;&#x2D14; &#x10B4;&#x2D14;&#x2D14;</span> <span title="U+2D15">&#x10B5;&#x2D15;&#x2D15; &#x10B5;&#x2D15;&#x2D15;</span> <span title="U+2D16">&#x10B6;&#x2D16;&#x2D16; &#x10B6;&#x2D16;&#x2D16;</span> <span title="U+2D17">&#x10B7;&#x2D17;&#x2D17; &#x10B7;&#x2D17;&#x2D17;</span> <span title="U+2D18">&#x10B8;&#x2D18;&#x2D18; &#x10B8;&#x2D18;&#x2D18;</span> <span title="U+2D19">&#x10B9;&#x2D19;&#x2D19; &#x10B9;&#x2D19;&#x2D19;</span> <span title="U+2D1A">&#x10BA;&#x2D1A;&#x2D1A; &#x10BA;&#x2D1A;&#x2D1A;</span> <span title="U+2D1B">&#x10BB;&#x2D1B;&#x2D1B; &#x10BB;&#x2D1B;&#x2D1B;</span> <span title="U+2D1C">&#x10BC;&#x2D1C;&#x2D1C; &#x10BC;&#x2D1C;&#x2D1C;</span> <span title="U+2D1D">&#x10BD;&#x2D1D;&#x2D1D; &#x10BD;&#x2D1D;&#x2D1D;</span> <span title="U+2D1E">&#x10BE;&#x2D1E;&#x2D1E; &#x10BE;&#x2D1E;&#x2D1E;</span> <span title="U+2D1F">&#x10BF;&#x2D1F;&#x2D1F; &#x10BF;&#x2D1F;&#x2D1F;</span> <span title="U+2D20">&#x10C0;&#x2D20;&#x2D20; &#x10C0;&#x2D20;&#x2D20;</span> <span title="U+2D21">&#x10C1;&#x2D21;&#x2D21; &#x10C1;&#x2D21;&#x2D21;</span> <span title="U+2D22">&#x10C2;&#x2D22;&#x2D22; &#x10C2;&#x2D22;&#x2D22;</span> <span title="U+2D23">&#x10C3;&#x2D23;&#x2D23; &#x10C3;&#x2D23;&#x2D23;</span> <span title="U+2D24">&#x10C4;&#x2D24;&#x2D24; &#x10C4;&#x2D24;&#x2D24;</span> <span title="U+2D25">&#x10C5;&#x2D25;&#x2D25; &#x10C5;&#x2D25;&#x2D25;</span> <span title="U+2D27">&#x10C7;&#x2D27;&#x2D27; &#x10C7;&#x2D27;&#x2D27;</span> <span title="U+2D2D">&#x10CD;&#x2D2D;&#x2D2D; &#x10CD;&#x2D2D;&#x2D2D;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-031-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-031-ref.html
new file mode 100644
index 0000000000..2d0d9324bd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-031-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, initial punctuation</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', sans-serif; border: 1px solid orange; margin: 10px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test">({[-–"«'.&lt;?!Transform</div>
+<div class="ref">({[-–"«'.&lt;?!Transform</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-032-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-032-ref.xht
new file mode 100644
index 0000000000..22687d2111
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-capitalize-032-ref.xht
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Test: text-transform - capitalize - basic cases Reftest Reference</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <style type="text/css">
+ <![CDATA[
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div>
+ <span>All Words Should Be Put In Titlecase.</span>
+ </div>
+ <div>
+ <span>All Words Should Be Put In Titlecase.</span>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-001-ref.html
new file mode 100644
index 0000000000..10fe7800b1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-001-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+
+<p>Test passes if the characters in the second column are
+the same shape and size as those in the rightmost column,
+not small as those in the leftmost column.<br>
+Any missing glyph should be ignored as long as it is missing in both the second and the rightmost column.
+
+<table>
+ <tr><td>ぁ<td>あ<td>あ
+ <tr><td>ぃ<td>い<td>い
+ <tr><td>ぅ<td>う<td>う
+ <tr><td>ぇ<td>え<td>え
+ <tr><td>ぉ<td>お<td>お
+ <tr><td>ゕ<td>か<td>か
+ <tr><td>ゖ<td>け<td>け
+ <tr><td>っ<td>つ<td>つ
+ <tr><td>ゃ<td>や<td>や
+ <tr><td>ゅ<td>ゆ<td>ゆ
+ <tr><td>ょ<td>よ<td>よ
+ <tr><td>ゎ<td>わ<td>わ
+</table>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-002-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-002-ref.html
new file mode 100644
index 0000000000..69591280b2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-002-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test Reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+
+<p>Test passes if the characters in the second column are
+the same shape and size as those in the rightmost column,
+not small as those in the leftmost column.<br>
+Any missing glyph should be ignored as long as it is missing in both the second and the rightmost column.
+
+<table>
+ <tr><td>ァ<td>ア<td>ア
+ <tr><td>ィ<td>イ<td>イ
+ <tr><td>ゥ<td>ウ<td>ウ
+ <tr><td>ェ<td>エ<td>エ
+ <tr><td>ォ<td>オ<td>オ
+ <tr><td>ヵ<td>カ<td>カ
+ <tr><td>ㇰ<td>ク<td>ク
+ <tr><td>ヶ<td>ケ<td>ケ
+ <tr><td>ㇱ<td>シ<td>シ
+ <tr><td>ㇲ<td>ス<td>ス
+ <tr><td>ッ<td>ツ<td>ツ
+ <tr><td>ㇳ<td>ト<td>ト
+ <tr><td>ㇴ<td>ヌ<td>ヌ
+</table>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-003-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-003-ref.html
new file mode 100644
index 0000000000..c2a8a1e76b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-003-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test Reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+
+<p>Test passes if the characters in the second column are
+the same shape and size as those in the rightmost column,
+not small as those in the leftmost column.<br>
+Any missing glyph should be ignored as long as it is missing in both the second and the rightmost column.
+
+<table>
+ <tr><td>ㇵ<td>ハ<td>ハ
+ <tr><td>ㇶ<td>ヒ<td>ヒ
+ <tr><td>ㇷ<td>フ<td>フ
+ <tr><td>ㇸ<td>ヘ<td>ヘ
+ <tr><td>ㇹ<td>ホ<td>ホ
+ <tr><td>ㇺ<td>ム<td>ム
+ <tr><td>ャ<td>ヤ<td>ヤ
+ <tr><td>ュ<td>ユ<td>ユ
+ <tr><td>ョ<td>ヨ<td>ヨ
+ <tr><td>ㇻ<td>ラ<td>ラ
+ <tr><td>ㇼ<td>リ<td>リ
+ <tr><td>ㇽ<td>ル<td>ル
+ <tr><td>ㇾ<td>レ<td>レ
+ <tr><td>ㇿ<td>ロ<td>ロ
+ <tr><td>ヮ<td>ワ<td>ワ
+</table>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-004-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-004-ref.html
new file mode 100644
index 0000000000..4f23628af6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-004-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test Reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+
+<p>Test passes if the characters in the second column are
+the same shape and size as those in the rightmost column,
+not small as those in the leftmost column.<br>
+Any missing glyph should be ignored as long as it is missing in both the second and the rightmost column.
+
+<table>
+ <tr><td>ァ<td>ア<td>ア
+ <tr><td>ィ<td>イ<td>イ
+ <tr><td>ゥ<td>ウ<td>ウ
+ <tr><td>ェ<td>エ<td>エ
+ <tr><td>ォ<td>オ<td>オ
+ <tr><td>ッ<td>ツ<td>ツ
+ <tr><td>ャ<td>ヤ<td>ヤ
+ <tr><td>ュ<td>ユ<td>ユ
+ <tr><td>ョ<td>ヨ<td>ヨ
+</table>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-005-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-005-ref.html
new file mode 100644
index 0000000000..adedc8dc7b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-005-ref.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 test reference</title>
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+</style>
+
+<p>Test passes if both characters in each pair are the same shape <strong>and size</strong>.<br>
+Any missing glyph should be ignored
+as long as it is missing for both the first and second characters in a pair.
+
+<div>
+ <span>&#x30FC; &#x30FC;</span>
+ <span>&#x3042; &#x3042;</span>
+ <span>&#x3044; &#x3044;</span>
+ <span>&#x3046; &#x3046;</span>
+ <span>&#x3048; &#x3048;</span>
+ <span>&#x304A; &#x304A;</span>
+ <span>&#x304B; &#x304B;</span>
+ <span>&#x304C; &#x304C;</span>
+ <span>&#x304D; &#x304D;</span>
+ <span>&#x304E; &#x304E;</span>
+ <span>&#x304F; &#x304F;</span>
+ <span>&#x3050; &#x3050;</span>
+ <span>&#x3051; &#x3051;</span>
+ <span>&#x3052; &#x3052;</span>
+ <span>&#x3053; &#x3053;</span>
+ <span>&#x3054; &#x3054;</span>
+ <span>&#x3055; &#x3055;</span>
+ <span>&#x3056; &#x3056;</span>
+ <span>&#x3057; &#x3057;</span>
+ <span>&#x3058; &#x3058;</span>
+ <span>&#x3059; &#x3059;</span>
+ <span>&#x305A; &#x305A;</span>
+ <span>&#x305B; &#x305B;</span>
+ <span>&#x305C; &#x305C;</span>
+ <span>&#x305D; &#x305D;</span>
+ <span>&#x305E; &#x305E;</span>
+ <span>&#x305F; &#x305F;</span>
+ <span>&#x3060; &#x3060;</span>
+ <span>&#x3061; &#x3061;</span>
+ <span>&#x3062; &#x3062;</span>
+ <span>&#x3064; &#x3064;</span>
+ <span>&#x3065; &#x3065;</span>
+ <span>&#x3066; &#x3066;</span>
+ <span>&#x3067; &#x3067;</span>
+ <span>&#x3068; &#x3068;</span>
+ <span>&#x3069; &#x3069;</span>
+ <span>&#x306A; &#x306A;</span>
+ <span>&#x306B; &#x306B;</span>
+ <span>&#x306C; &#x306C;</span>
+ <span>&#x306D; &#x306D;</span>
+ <span>&#x306E; &#x306E;</span>
+ <span>&#x306F; &#x306F;</span>
+ <span>&#x3070; &#x3070;</span>
+ <span>&#x3071; &#x3071;</span>
+ <span>&#x3072; &#x3072;</span>
+ <span>&#x3073; &#x3073;</span>
+ <span>&#x3074; &#x3074;</span>
+ <span>&#x3075; &#x3075;</span>
+ <span>&#x3076; &#x3076;</span>
+ <span>&#x3077; &#x3077;</span>
+ <span>&#x3078; &#x3078;</span>
+ <span>&#x3079; &#x3079;</span>
+ <span>&#x307A; &#x307A;</span>
+ <span>&#x307B; &#x307B;</span>
+ <span>&#x307C; &#x307C;</span>
+ <span>&#x307D; &#x307D;</span>
+ <span>&#x307E; &#x307E;</span>
+ <span>&#x307F; &#x307F;</span>
+ <span>&#x3080; &#x3080;</span>
+ <span>&#x3081; &#x3081;</span>
+ <span>&#x3082; &#x3082;</span>
+ <span>&#x3084; &#x3084;</span>
+ <span>&#x3086; &#x3086;</span>
+ <span>&#x3088; &#x3088;</span>
+ <span>&#x3089; &#x3089;</span>
+ <span>&#x308A; &#x308A;</span>
+ <span>&#x308B; &#x308B;</span>
+ <span>&#x308C; &#x308C;</span>
+ <span>&#x308D; &#x308D;</span>
+ <span>&#x308F; &#x308F;</span>
+ <span>&#x3090; &#x3090;</span>
+ <span>&#x3091; &#x3091;</span>
+ <span>&#x3092; &#x3092;</span>
+ <span>&#x3093; &#x3093;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-006-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-006-ref.html
new file mode 100644
index 0000000000..f806093ab9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-006-ref.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 test reference</title>
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+</style>
+
+<p>Test passes if both characters in each pair are the same shape <strong>and size</strong>.<br>
+Any missing glyph should be ignored
+as long as it is missing for both the first and second characters in a pair.
+
+<div>
+ <span>&#x30A2; &#x30A2;</span>
+ <span>&#x30A4; &#x30A4;</span>
+ <span>&#x30A6; &#x30A6;</span>
+ <span>&#x30A8; &#x30A8;</span>
+ <span>&#x30AA; &#x30AA;</span>
+ <span>&#x30AB; &#x30AB;</span>
+ <span>&#x30AC; &#x30AC;</span>
+ <span>&#x30AD; &#x30AD;</span>
+ <span>&#x30AE; &#x30AE;</span>
+ <span>&#x30AF; &#x30AF;</span>
+ <span>&#x30B0; &#x30B0;</span>
+ <span>&#x30B1; &#x30B1;</span>
+ <span>&#x30B2; &#x30B2;</span>
+ <span>&#x30B3; &#x30B3;</span>
+ <span>&#x30B4; &#x30B4;</span>
+ <span>&#x30B5; &#x30B5;</span>
+ <span>&#x30B6; &#x30B6;</span>
+ <span>&#x30B7; &#x30B7;</span>
+ <span>&#x30B8; &#x30B8;</span>
+ <span>&#x30B9; &#x30B9;</span>
+ <span>&#x30BA; &#x30BA;</span>
+ <span>&#x30BB; &#x30BB;</span>
+ <span>&#x30BC; &#x30BC;</span>
+ <span>&#x30BD; &#x30BD;</span>
+ <span>&#x30BE; &#x30BE;</span>
+ <span>&#x30BF; &#x30BF;</span>
+ <span>&#x30C0; &#x30C0;</span>
+ <span>&#x30C1; &#x30C1;</span>
+ <span>&#x30C2; &#x30C2;</span>
+ <span>&#x30C4; &#x30C4;</span>
+ <span>&#x30C5; &#x30C5;</span>
+ <span>&#x30C6; &#x30C6;</span>
+ <span>&#x30C7; &#x30C7;</span>
+ <span>&#x30C8; &#x30C8;</span>
+ <span>&#x30C9; &#x30C9;</span>
+ <span>&#x30CA; &#x30CA;</span>
+ <span>&#x30CB; &#x30CB;</span>
+ <span>&#x30CC; &#x30CC;</span>
+ <span>&#x30CD; &#x30CD;</span>
+ <span>&#x30CE; &#x30CE;</span>
+ <span>&#x30CF; &#x30CF;</span>
+ <span>&#x30D0; &#x30D0;</span>
+ <span>&#x30D1; &#x30D1;</span>
+ <span>&#x30D2; &#x30D2;</span>
+ <span>&#x30D3; &#x30D3;</span>
+ <span>&#x30D4; &#x30D4;</span>
+ <span>&#x30D5; &#x30D5;</span>
+ <span>&#x30D6; &#x30D6;</span>
+ <span>&#x30D7; &#x30D7;</span>
+ <span>&#x30D8; &#x30D8;</span>
+ <span>&#x30D9; &#x30D9;</span>
+ <span>&#x30DA; &#x30DA;</span>
+ <span>&#x30DB; &#x30DB;</span>
+ <span>&#x30DC; &#x30DC;</span>
+ <span>&#x30DD; &#x30DD;</span>
+ <span>&#x30DE; &#x30DE;</span>
+ <span>&#x30DF; &#x30DF;</span>
+ <span>&#x30E0; &#x30E0;</span>
+ <span>&#x30E1; &#x30E1;</span>
+ <span>&#x30E2; &#x30E2;</span>
+ <span>&#x30E4; &#x30E4;</span>
+ <span>&#x30E6; &#x30E6;</span>
+ <span>&#x30E8; &#x30E8;</span>
+ <span>&#x30E9; &#x30E9;</span>
+ <span>&#x30EA; &#x30EA;</span>
+ <span>&#x30EB; &#x30EB;</span>
+ <span>&#x30EC; &#x30EC;</span>
+ <span>&#x30ED; &#x30ED;</span>
+ <span>&#x30EF; &#x30EF;</span>
+ <span>&#x30F0; &#x30F0;</span>
+ <span>&#x30F1; &#x30F1;</span>
+ <span>&#x30F2; &#x30F2;</span>
+ <span>&#x30F3; &#x30F3;</span>
+ <span>&#x30F4; &#x30F4;</span>
+ <span>&#x309B; &#x309B;</span>
+ <span>&#x309C; &#x309C;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-007-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-007-ref.html
new file mode 100644
index 0000000000..b07e9197fd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-007-ref.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 test reference</title>
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+</style>
+
+<p>Test passes if both characters in each pair are the same shape <strong>and size</strong>.<br>
+Any missing glyph should be ignored
+as long as it is missing for both the first and second characters in a pair.
+
+<div>
+ <span>&#xFF65; &#xFF65;</span>
+ <span>&#xFF66; &#xFF66;</span>
+ <span>&#xFF70; &#xFF70;</span>
+ <span>&#xFF71; &#xFF71;</span>
+ <span>&#xFF72; &#xFF72;</span>
+ <span>&#xFF73; &#xFF73;</span>
+ <span>&#xFF74; &#xFF74;</span>
+ <span>&#xFF75; &#xFF75;</span>
+ <span>&#xFF76; &#xFF76;</span>
+ <span>&#xFF77; &#xFF77;</span>
+ <span>&#xFF78; &#xFF78;</span>
+ <span>&#xFF79; &#xFF79;</span>
+ <span>&#xFF7A; &#xFF7A;</span>
+ <span>&#xFF7B; &#xFF7B;</span>
+ <span>&#xFF7C; &#xFF7C;</span>
+ <span>&#xFF7D; &#xFF7D;</span>
+ <span>&#xFF7E; &#xFF7E;</span>
+ <span>&#xFF7F; &#xFF7F;</span>
+ <span>&#xFF80; &#xFF80;</span>
+ <span>&#xFF81; &#xFF81;</span>
+ <span>&#xFF82; &#xFF82;</span>
+ <span>&#xFF83; &#xFF83;</span>
+ <span>&#xFF84; &#xFF84;</span>
+ <span>&#xFF85; &#xFF85;</span>
+ <span>&#xFF86; &#xFF86;</span>
+ <span>&#xFF87; &#xFF87;</span>
+ <span>&#xFF88; &#xFF88;</span>
+ <span>&#xFF89; &#xFF89;</span>
+ <span>&#xFF8A; &#xFF8A;</span>
+ <span>&#xFF8B; &#xFF8B;</span>
+ <span>&#xFF8C; &#xFF8C;</span>
+ <span>&#xFF8D; &#xFF8D;</span>
+ <span>&#xFF8E; &#xFF8E;</span>
+ <span>&#xFF8F; &#xFF8F;</span>
+ <span>&#xFF90; &#xFF90;</span>
+ <span>&#xFF91; &#xFF91;</span>
+ <span>&#xFF92; &#xFF92;</span>
+ <span>&#xFF93; &#xFF93;</span>
+ <span>&#xFF94; &#xFF94;</span>
+ <span>&#xFF95; &#xFF95;</span>
+ <span>&#xFF96; &#xFF96;</span>
+ <span>&#xFF97; &#xFF97;</span>
+ <span>&#xFF98; &#xFF98;</span>
+ <span>&#xFF99; &#xFF99;</span>
+ <span>&#xFF9A; &#xFF9A;</span>
+ <span>&#xFF9B; &#xFF9B;</span>
+ <span>&#xFF9C; &#xFF9C;</span>
+ <span>&#xFF9D; &#xFF9D;</span>
+ <span>&#xFF9E; &#xFF9E;</span>
+ <span>&#xFF9F; &#xFF9F;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-008-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-008-ref.html
new file mode 100644
index 0000000000..42fc5104ac
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-full-size-kana-008-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Reference: Unicode 15 kana and text-transform: full-size-kana</title>
+<link rel="author" title="Elika Etemad" href="http://fantasai.inkedblade.net/contact">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-full-size-kana">
+<style>
+td:nth-of-type(2) {
+ text-transform: full-size-kana
+}
+</style>
+
+<p>Test passes if the characters in the second column are
+the same shape and size as those in the rightmost column,
+not small as those in the leftmost column.<br>
+Any missing glyph should be ignored as long as it is missing in both the second and the rightmost column.
+
+<table>
+ <tr><td>&#x1B132;<td>&#x3053;<td>&#x3053;
+ <tr><td>&#x1B150;<td>&#x3090;<td>&#x3090;
+ <tr><td>&#x1B151;<td>&#x3091;<td>&#x3091;
+ <tr><td>&#x1B152;<td>&#x3092;<td>&#x3092;
+ <tr><td>&#x1B155;<td>&#x30B3;<td>&#x30B3;
+ <tr><td>&#x1B164;<td>&#x30F0;<td>&#x30F0;
+ <tr><td>&#x1B165;<td>&#x30F1;<td>&#x30F1;
+ <tr><td>&#x1B166;<td>&#x30F2;<td>&#x30F2;
+ <tr><td>&#x1B167;<td>&#x30F3;<td>&#x30F3;
+</table>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-001-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-001-ref.xht
new file mode 100644
index 0000000000..e8a5f1acc3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-001-ref.xht
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Test: text-transform - fullwidth - basic cases Reftest Reference</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <style type="text/css">
+ <![CDATA[
+ @font-face {
+ font-family: 'mplus-1p-regular';
+ src: url('/fonts/mplus-1p-regular.woff') format('woff');
+ }
+ span {
+ font-family: 'mplus-1p-regular';
+ background-color: cyan;
+ }
+ .test {
+ color: Blue;
+ line-height: 1.1em;
+ }
+ .test div {
+ display: inline-block;
+ margin-bottom: .5em;
+ text-align: center;
+ white-space: nowrap;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the upper character in each pair matches the lower one in both shape <strong>and size</strong>.
+ </p>
+ <div class="test">
+
+ <!-- FULLWIDTH LATIN -->
+ <div>[<span> </span>]<br />[<span> </span>]</div>
+ <div><span>!</span><br /><span>!</span></div>
+ <div><span>"</span><br /><span>"</span></div>
+ <div><span>#</span><br /><span>#</span></div>
+ <div><span>$</span><br /><span>$</span></div>
+ <div><span>%</span><br /><span>%</span></div>
+ <div><span>&</span><br /><span>&</span></div>
+ <div><span>'</span><br /><span>'</span></div>
+ <div><span>(</span><br /><span>(</span></div>
+ <div><span>)</span><br /><span>)</span></div>
+ <div><span>*</span><br /><span>*</span></div>
+ <div><span>+</span><br /><span>+</span></div>
+ <div><span>,</span><br /><span>,</span></div>
+ <div><span>-</span><br /><span>-</span></div>
+ <div><span>.</span><br /><span>.</span></div>
+ <div><span>/</span><br /><span>/</span></div>
+
+ <div><span>0</span><br /><span>0</span></div>
+ <div><span>1</span><br /><span>1</span></div>
+ <div><span>2</span><br /><span>2</span></div>
+ <div><span>3</span><br /><span>3</span></div>
+ <div><span>4</span><br /><span>4</span></div>
+ <div><span>5</span><br /><span>5</span></div>
+ <div><span>6</span><br /><span>6</span></div>
+ <div><span>7</span><br /><span>7</span></div>
+ <div><span>8</span><br /><span>8</span></div>
+ <div><span>9</span><br /><span>9</span></div>
+
+ <div><span>:</span><br /><span>:</span></div>
+ <div><span>;</span><br /><span>;</span></div>
+ <div><span><</span><br /><span><</span></div>
+ <div><span>=</span><br /><span>=</span></div>
+ <div><span>></span><br /><span>></span></div>
+ <div><span>?</span><br /><span>?</span></div>
+ <div><span>@</span><br /><span>@</span></div>
+
+ <div><span>A</span><br /><span>A</span></div>
+ <div><span>B</span><br /><span>B</span></div>
+ <div><span>C</span><br /><span>C</span></div>
+ <div><span>D</span><br /><span>D</span></div>
+ <div><span>E</span><br /><span>E</span></div>
+ <div><span>F</span><br /><span>F</span></div>
+ <div><span>G</span><br /><span>G</span></div>
+ <div><span>H</span><br /><span>H</span></div>
+ <div><span>I</span><br /><span>I</span></div>
+ <div><span>J</span><br /><span>J</span></div>
+ <div><span>K</span><br /><span>K</span></div>
+ <div><span>L</span><br /><span>L</span></div>
+ <div><span>M</span><br /><span>M</span></div>
+ <div><span>N</span><br /><span>N</span></div>
+ <div><span>O</span><br /><span>O</span></div>
+ <div><span>P</span><br /><span>P</span></div>
+ <div><span>Q</span><br /><span>Q</span></div>
+ <div><span>R</span><br /><span>R</span></div>
+ <div><span>S</span><br /><span>S</span></div>
+ <div><span>T</span><br /><span>T</span></div>
+ <div><span>U</span><br /><span>U</span></div>
+ <div><span>V</span><br /><span>V</span></div>
+ <div><span>W</span><br /><span>W</span></div>
+ <div><span>X</span><br /><span>X</span></div>
+ <div><span>Y</span><br /><span>Y</span></div>
+ <div><span>Z</span><br /><span>Z</span></div>
+
+ <div><span>[</span><br /><span>[</span></div>
+ <div><span>\</span><br /><span>\</span></div>
+ <div><span>]</span><br /><span>]</span></div>
+ <div><span>^</span><br /><span>^</span></div>
+ <div><span>_</span><br /><span>_</span></div>
+ <div><span>`</span><br /><span>`</span></div>
+
+ <div><span>a</span><br /><span>a</span></div>
+ <div><span>b</span><br /><span>b</span></div>
+ <div><span>c</span><br /><span>c</span></div>
+ <div><span>d</span><br /><span>d</span></div>
+ <div><span>e</span><br /><span>e</span></div>
+ <div><span>f</span><br /><span>f</span></div>
+ <div><span>g</span><br /><span>g</span></div>
+ <div><span>h</span><br /><span>h</span></div>
+ <div><span>i</span><br /><span>i</span></div>
+ <div><span>j</span><br /><span>j</span></div>
+ <div><span>k</span><br /><span>k</span></div>
+ <div><span>l</span><br /><span>l</span></div>
+ <div><span>m</span><br /><span>m</span></div>
+ <div><span>n</span><br /><span>n</span></div>
+ <div><span>o</span><br /><span>o</span></div>
+ <div><span>p</span><br /><span>p</span></div>
+ <div><span>q</span><br /><span>q</span></div>
+ <div><span>r</span><br /><span>r</span></div>
+ <div><span>s</span><br /><span>s</span></div>
+ <div><span>t</span><br /><span>t</span></div>
+ <div><span>u</span><br /><span>u</span></div>
+ <div><span>v</span><br /><span>v</span></div>
+ <div><span>w</span><br /><span>w</span></div>
+ <div><span>x</span><br /><span>x</span></div>
+ <div><span>y</span><br /><span>y</span></div>
+ <div><span>z</span><br /><span>z</span></div>
+
+ <div><span>{</span><br /><span>{</span></div>
+ <div><span>|</span><br /><span>|</span></div>
+ <div><span>}</span><br /><span>}</span></div>
+ <div><span>~</span><br /><span>~</span></div>
+
+ <div><span>⦅</span><br /><span>⦅</span></div> <!-- LEFT WHITE PARENTHESIS -->
+ <div><span>⦆</span><br /><span>⦆</span></div> <!-- RIGHT WHITE PARENTHESIS -->
+
+ <!-- HALFWIDTH KATAKANA -->
+ <div><span>。</span><br /><span>。</span></div>
+ <div><span>「</span><br /><span>「</span></div>
+ <div><span>」</span><br /><span>」</span></div>
+ <div><span>、</span><br /><span>、</span></div>
+ <div><span>・</span><br /><span>・</span></div>
+
+ <div><span>ヲ</span><br /><span>ヲ</span></div>
+ <div><span>ァ</span><br /><span>ァ</span></div>
+ <div><span>ィ</span><br /><span>ィ</span></div>
+ <div><span>ゥ</span><br /><span>ゥ</span></div>
+ <div><span>ェ</span><br /><span>ェ</span></div>
+ <div><span>ォ</span><br /><span>ォ</span></div>
+ <div><span>ャ</span><br /><span>ャ</span></div>
+ <div><span>ュ</span><br /><span>ュ</span></div>
+ <div><span>ョ</span><br /><span>ョ</span></div>
+ <div><span>ッ</span><br /><span>ッ</span></div>
+ <div><span>ー</span><br /><span>ー</span></div>
+
+ <div><span>ア</span><br /><span>ア</span></div>
+ <div><span>イ</span><br /><span>イ</span></div>
+ <div><span>ウ</span><br /><span>ウ</span></div>
+ <div><span>エ</span><br /><span>エ</span></div>
+ <div><span>オ</span><br /><span>オ</span></div>
+ <div><span>カ</span><br /><span>カ</span></div>
+ <div><span>キ</span><br /><span>キ</span></div>
+ <div><span>ク</span><br /><span>ク</span></div>
+ <div><span>ケ</span><br /><span>ケ</span></div>
+ <div><span>コ</span><br /><span>コ</span></div>
+ <div><span>サ</span><br /><span>サ</span></div>
+ <div><span>シ</span><br /><span>シ</span></div>
+ <div><span>ス</span><br /><span>ス</span></div>
+ <div><span>セ</span><br /><span>セ</span></div>
+ <div><span>ソ</span><br /><span>ソ</span></div>
+ <div><span>タ</span><br /><span>タ</span></div>
+ <div><span>チ</span><br /><span>チ</span></div>
+ <div><span>ツ</span><br /><span>ツ</span></div>
+ <div><span>テ</span><br /><span>テ</span></div>
+ <div><span>ト</span><br /><span>ト</span></div>
+ <div><span>ナ</span><br /><span>ナ</span></div>
+ <div><span>ニ</span><br /><span>ニ</span></div>
+ <div><span>ヌ</span><br /><span>ヌ</span></div>
+ <div><span>ネ</span><br /><span>ネ</span></div>
+ <div><span>ノ</span><br /><span>ノ</span></div>
+ <div><span>ハ</span><br /><span>ハ</span></div>
+ <div><span>ヒ</span><br /><span>ヒ</span></div>
+ <div><span>フ</span><br /><span>フ</span></div>
+ <div><span>ヘ</span><br /><span>ヘ</span></div>
+ <div><span>ホ</span><br /><span>ホ</span></div>
+ <div><span>マ</span><br /><span>マ</span></div>
+ <div><span>ミ</span><br /><span>ミ</span></div>
+ <div><span>ム</span><br /><span>ム</span></div>
+ <div><span>メ</span><br /><span>メ</span></div>
+ <div><span>モ</span><br /><span>モ</span></div>
+ <div><span>ヤ</span><br /><span>ヤ</span></div>
+ <div><span>ユ</span><br /><span>ユ</span></div>
+ <div><span>ヨ</span><br /><span>ヨ</span></div>
+ <div><span>ラ</span><br /><span>ラ</span></div>
+ <div><span>リ</span><br /><span>リ</span></div>
+ <div><span>ル</span><br /><span>ル</span></div>
+ <div><span>レ</span><br /><span>レ</span></div>
+ <div><span>ロ</span><br /><span>ロ</span></div>
+ <div><span>ワ</span><br /><span>ワ</span></div>
+ <div><span>ン</span><br /><span>ン</span></div>
+
+ <div><span>&nbsp;&#x3099;</span><br /><span>&nbsp;&#x3099;</span></div>
+ <div><span>&nbsp;&#x309A;</span><br /><span>&nbsp;&#x309A;</span></div>
+
+ <!-- HALFWIDTH HANGUL -->
+ <div>[<span>&#x115F;</span>]<br />[<span>&#x115F;</span>]</div> <!-- HANGUL FILLER -->
+ <div><span>ᆨ</span><br /><span>ᆨ</span></div> <!-- HANGUL LETTER KIYEOK -->
+ <div><span>ㄲ</span><br /><span>ㄲ</span></div> <!-- HANGUL LETTER SSANGKIYEOK -->
+ <div><span>ᆪ</span><br /><span>ᆪ</span></div> <!-- HANGUL LETTER KIYEOK-SIOS -->
+ <div><span>ᆫ</span><br /><span>ᆫ</span></div> <!-- HANGUL LETTER NIEUN -->
+ <div><span>ᆬ</span><br /><span>ᆬ</span></div> <!-- HANGUL LETTER NIEUN-CIEUC -->
+ <div><span>ᆭ</span><br /><span>ᆭ</span></div> <!-- HANGUL LETTER NIEUN-HIEUH -->
+ <div><span>ᆮ</span><br /><span>ᆮ</span></div> <!-- HANGUL LETTER TIKEUT -->
+ <div><span>ᄄ</span><br /><span>ᄄ</span></div> <!-- HANGUL LETTER SSANGTIKEUT -->
+ <div><span>ᆯ</span><br /><span>ᆯ</span></div> <!-- HANGUL LETTER RIEUL -->
+ <div><span>ᆰ</span><br /><span>ᆰ</span></div> <!-- HANGUL LETTER RIEUL-KIYEOK -->
+ <div><span>ᆱ</span><br /><span>ᆱ</span></div> <!-- HANGUL LETTER RIEUL-MIEUM -->
+ <div><span>ᆲ</span><br /><span>ᆲ</span></div> <!-- HANGUL LETTER RIEUL-PIEUP -->
+ <div><span>ᆳ</span><br /><span>ᆳ</span></div> <!-- HANGUL LETTER RIEUL-SIOS -->
+ <div><span>ᆴ</span><br /><span>ᆴ</span></div> <!-- HANGUL LETTER RIEUL-THIEUTH -->
+ <div><span>ᆵ</span><br /><span>ᆵ</span></div> <!-- HANGUL LETTER RIEUL-PHIEUPH -->
+ <div><span>ㅀ</span><br /><span>ㅀ</span></div> <!-- HANGUL LETTER RIEUL-HIEUH -->
+ <div><span>ᄆ</span><br /><span>ᄆ</span></div> <!-- HANGUL LETTER MIEUM -->
+ <div><span>ᄇ</span><br /><span>ᄇ</span></div> <!-- HANGUL LETTER PIEUP -->
+ <div><span>ᄈ</span><br /><span>ᄈ</span></div> <!-- HANGUL LETTER SSANGPIEUP -->
+ <div><span>ᆹ</span><br /><span>ᆹ</span></div> <!-- HANGUL LETTER PIEUP-SIOS -->
+ <div><span>ᄉ</span><br /><span>ᄉ</span></div> <!-- HANGUL LETTER SIOS -->
+ <div><span>ᆻ</span><br /><span>ᆻ</span></div> <!-- HANGUL LETTER SSANGSIOS -->
+ <div><span>ᄋ</span><br /><span>ᄋ</span></div> <!-- HANGUL LETTER IEUNG -->
+ <div><span>ᆽ</span><br /><span>ᆽ</span></div> <!-- HANGUL LETTER CIEUC -->
+ <div><span>ᄍ</span><br /><span>ᄍ</span></div> <!-- HANGUL LETTER SSANGCIEUC -->
+ <div><span>ᆾ</span><br /><span>ᆾ</span></div> <!-- HANGUL LETTER CHIEUCH -->
+ <div><span>ᄏ</span><br /><span>ᄏ</span></div> <!-- HANGUL LETTER KHIEUKH -->
+ <div><span>ᇀ</span><br /><span>ᇀ</span></div> <!-- HANGUL LETTER THIEUTH -->
+ <div><span>ᄑ</span><br /><span>ᄑ</span></div> <!-- HANGUL LETTER PHIEUPH -->
+ <div><span>ᇂ</span><br /><span>ᇂ</span></div> <!-- HANGUL LETTER HIEUH -->
+ <div><span>ᅡ</span><br /><span>ᅡ</span></div> <!-- HANGUL LETTER A -->
+ <div><span>ᅢ</span><br /><span>ᅢ</span></div> <!-- HANGUL LETTER AE -->
+ <div><span>ᅣ</span><br /><span>ᅣ</span></div> <!-- HANGUL LETTER YA -->
+ <div><span>ᅤ</span><br /><span>ᅤ</span></div> <!-- HANGUL LETTER YAE -->
+ <div><span>ᅥ</span><br /><span>ᅥ</span></div> <!-- HANGUL LETTER EO -->
+ <div><span>ᅦ</span><br /><span>ᅦ</span></div> <!-- HANGUL LETTER E -->
+
+ <div><span>ᅧ</span><br /><span>ᅧ</span></div> <!-- HANGUL LETTER YEO -->
+ <div><span>ᅨ</span><br /><span>ᅨ</span></div> <!-- HANGUL LETTER YE -->
+ <div><span>ᅩ</span><br /><span>ᅩ</span></div> <!-- HANGUL LETTER O -->
+ <div><span>ᅪ</span><br /><span>ᅪ</span></div> <!-- HANGUL LETTER WA -->
+ <div><span>ᅫ</span><br /><span>ᅫ</span></div> <!-- HANGUL LETTER WAE -->
+ <div><span>ᅬ</span><br /><span>ᅬ</span></div> <!-- HANGUL LETTER OE -->
+
+ <div><span>ᅭ</span><br /><span>ᅭ</span></div> <!-- HANGUL LETTER YO -->
+ <div><span>ᅮ</span><br /><span>ᅮ</span></div> <!-- HANGUL LETTER U -->
+ <div><span>ᅯ</span><br /><span>ᅯ</span></div> <!-- HANGUL LETTER WEO -->
+ <div><span>ᅰ</span><br /><span>ᅰ</span></div> <!-- HANGUL LETTER WE -->
+ <div><span>ᅱ</span><br /><span>ᅱ</span></div> <!-- HANGUL LETTER WI -->
+ <div><span>ᅲ</span><br /><span>ᅲ</span></div> <!-- HANGUL LETTER YU -->
+
+ <div><span>ᅳ</span><br /><span>ᅳ</span></div> <!-- HANGUL LETTER EU -->
+ <div><span>ᅴ</span><br /><span>ᅴ</span></div> <!-- HANGUL LETTER YI -->
+ <div><span>ᅵ</span><br /><span>ᅵ</span></div> <!-- HANGUL LETTER I -->
+
+ <!-- FULLWIDTH SIGN -->
+ <div><span>¢</span><br /><span>¢</span></div> <!-- CENT SIGN -->
+ <div><span>£</span><br /><span>£</span></div> <!-- POUND SIGN -->
+ <div><span>¬</span><br /><span>¬</span></div> <!-- NOT SIGN -->
+ <div><span> ̄</span><br /><span> ̄</span></div> <!-- MACRON -->
+ <div><span>¦</span><br /><span>¦</span></div> <!-- BROKEN BAR -->
+ <div><span>¥</span><br /><span>¥</span></div> <!-- YEN SIGN -->
+ <div><span>₩</span><br /><span>₩</span></div> <!-- WON SIGN -->
+
+ <!-- HALFWIDTH SIGN -->
+ <div><span>│</span><br /><span>│</span></div> <!-- FORMS LIGHT VERTICAL -->
+ <div><span>←</span><br /><span>←</span></div> <!-- LEFTWARDS ARROW -->
+ <div><span>↑</span><br /><span>↑</span></div> <!-- UPWARDS ARROW -->
+ <div><span>→</span><br /><span>→</span></div> <!-- RIGHTWARDS ARROW -->
+ <div><span>↓</span><br /><span>↓</span></div> <!-- DOWNWARDS ARROW -->
+ <div><span>■</span><br /><span>■</span></div> <!-- BLACK SQUARE -->
+ <div><span>○</span><br /><span>○</span></div> <!-- WHITE CIRCLE -->
+
+ <!-- HALFWIDTH LATIN -->
+ <div><span>A</span><br /><span>A</span></div>
+ <div><span>B</span><br /><span>B</span></div>
+ <div><span>C</span><br /><span>C</span></div>
+
+ <div><span>a</span><br /><span>a</span></div>
+ <div><span>b</span><br /><span>b</span></div>
+ <div><span>c</span><br /><span>c</span></div>
+
+ <!-- FULLWIDTH KANA -->
+ <div><span>あ</span><br /><span>あ</span></div>
+ <div><span>い</span><br /><span>い</span></div>
+ <div><span>う</span><br /><span>う</span></div>
+ <div><span>え</span><br /><span>え</span></div>
+ <div><span>お</span><br /><span>お</span></div>
+
+ <div><span>ア</span><br /><span>ア</span></div>
+ <div><span>イ</span><br /><span>イ</span></div>
+ <div><span>ウ</span><br /><span>ウ</span></div>
+ <div><span>エ</span><br /><span>エ</span></div>
+ <div><span>オ</span><br /><span>オ</span></div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html
new file mode 100644
index 0000000000..3d2f9c7be2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test Reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 50px/1 Ahem;
+ color: green;
+}
+</style>
+
+<p>Test passes if there are two green squares and no red.
+<div>x&#x3000;x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html
new file mode 100644
index 0000000000..b8fc5662bd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 50px/1 Ahem;
+ color: green;
+}
+</style>
+
+<p>Test passes if there are two green squares and no red.
+<div>x&#x3000;&#x3000;&#x3000;x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-008-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-008-ref.html
new file mode 100644
index 0000000000..efe6508e2e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-008-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>test reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 20px/1 Ahem;
+ margin: 1em 0;
+ white-space: pre;
+}
+</style>
+
+<p>Test passes if all black boxes below have the same width and height and are aligned vertically.
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-009-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-009-ref.html
new file mode 100644
index 0000000000..915e8444f1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-fullwidth-009-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>test reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 10px/1 Ahem;
+ margin: 1em 0;
+ white-space: pre;
+}
+</style>
+
+<p>Test passes if all black boxes below have the same width and height and are aligned vertically.
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
+<div> x<br> x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-lowercase-101-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-lowercase-101-ref.xht
new file mode 100644
index 0000000000..3d6eb4af8a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-lowercase-101-ref.xht
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Test: text-transform - lowercase - basic cases Reftest Reference</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <style type="text/css">
+ <![CDATA[
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div>
+ <span>all characters should be put in lowercase.</span>
+ </div>
+ <div>
+ <span>all characters should be put in lowercase.</span>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-multiple-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-multiple-001-ref.html
new file mode 100644
index 0000000000..694ae87877
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-multiple-001-ref.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="ja">
+<meta charset=utf-8>
+<title>text-transform with multiple values</title>
+<body style="font-family:serif">
+<h4>Each pair of lines should look identical:</h4>
+<hr>
+<div>HELLO TRANSFORMED WORLD</div>
+<div>HELLO TRANSFORMED WORLD</div>
+<hr>
+<div>hello transformed world</div>
+<div>hello transformed world</div>
+<hr>
+<div>HELLO Transformed World</div>
+<div>HELLO Transformed World</div>
+<hr>
+<div>KATAKANA: アイウエオカクケシスツトヌ</div>
+<div>KATAKANA: アイウエオカクケシスツトヌ</div>
+<hr>
+<div>hiragana: あいうえおかけつやゆよわ</div>
+<div>hiragana: あいうえおかけつやゆよわ</div>
+<hr>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-none-001-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-none-001-ref.xht
new file mode 100644
index 0000000000..8f822c62df
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-none-001-ref.xht
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Test: text-transform - none - basic cases Reftest Reference</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <style type="text/css">
+ <![CDATA[
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div>
+ <span>All words should have no effects.</span>
+ </div>
+ <div>
+ <span>All words should have no effects.</span>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-shaping-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-shaping-001-ref.html
new file mode 100644
index 0000000000..693007e896
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-shaping-001-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test reference</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<style>
+ div { font-size: 4em; }
+ body {
+ max-width: 600px;
+ max-width: max-content;
+ }
+</style>
+
+<p>Test passes if there are two identical strings below. Pay attention to the right-most character.
+<div dir=rtl lang=ar>عائلة</div>
+<div dir=rtl lang=ar>عائلة</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-001-ref.html
new file mode 100644
index 0000000000..6fe91c7828
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-001-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Dutch IJ</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="nl">IJsland</div>
+<div class="ref">IJsland</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002-ref.html
new file mode 100644
index 0000000000..5259caa770
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek tonos</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="el">ΚΑΛΗΜΕΡΑ ΑΥΡΙΟ</div>
+<div class="ref">ΚΑΛΗΜΕΡΑ ΑΥΡΙΟ</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002a-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002a-ref.html
new file mode 100644
index 0000000000..2108495c94
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-002a-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek dialytika</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="el">ΘΕΪΚΟ</div>
+<div class="ref">ΘΕΪΚΟ</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-003-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-003-ref.html
new file mode 100644
index 0000000000..818d5006f6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-003-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, more Greek accents</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="el">ΕΥΦΥΪΑ ΝΕΡΑΪΔΑ</div>
+<div class="ref">ΕΥΦΥΪΑ ΝΕΡΑΪΔΑ</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-004-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-004-ref.html
new file mode 100644
index 0000000000..3047f66b13
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-004-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek initial stress</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="el">Όμηρος</div>
+<div class="ref">Όμηρος</div>
+<!-- Notes:
+The result of this test should be ignored if text-transform-tailoring-002 fails.
+-->
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-005-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-005-ref.html
new file mode 100644
index 0000000000..66ce847e30
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-tailoring-005-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek disjunctive eta</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 400px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test" lang="el">ΗΣΟΥΝ Ή ΕΓΩ Ή ΕΣΥ</div>
+<div class="ref">ΗΣΟΥΝ Ή ΕΓΩ Ή ΕΣΥ</div>
+<!-- Notes:
+The result of this test should be ignored if text-transform-tailoring-002 fails.
+-->
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-101-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-101-ref.xht
new file mode 100644
index 0000000000..e80ca4ed7b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-101-ref.xht
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Test: text-transform - uppercase - basic cases Reftest Reference</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <style type="text/css">
+ <![CDATA[
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div>
+ <span>ALL CHARACTERS SHOULD BE PUT IN UPPERCASE.</span>
+ </div>
+ <div>
+ <span>ALL CHARACTERS SHOULD BE PUT IN UPPERCASE.</span>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-dynamic-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-dynamic-ref.html
new file mode 100644
index 0000000000..1fede4447d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-uppercase-dynamic-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+.test { text-transform: uppercase; }
+</style>
+<div class="test" lang="my">
+ <span id="sp">i̇̃ Ĩ</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-001-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-001-ref.html
new file mode 100644
index 0000000000..1c5fa0a981
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-001-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Basic and Latin-1 uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>A A</span> <span>B B</span> <span>C C</span> <span>D D</span> <span>E E</span> <span>F F</span> <span>G G</span> <span>H H</span> <span>I I</span> <span>J J</span> <span>K K</span> <span>L L</span> <span>M M</span> <span>N N</span> <span>O O</span> <span>P P</span> <span>Q Q</span> <span>R R</span> <span>S S</span> <span>T T</span> <span>U U</span> <span>V V</span> <span>W W</span> <span>X X</span> <span>Y Y</span> <span>Z Z</span> <span title="U+00B5">&#x039C; &#x039C;</span> <span title="U+00E0">&#x00C0; &#x00C0;</span> <span title="U+00E1">&#x00C1; &#x00C1;</span> <span title="U+00E2">&#x00C2; &#x00C2;</span> <span title="U+00E3">&#x00C3; &#x00C3;</span> <span title="U+00E4">&#x00C4; &#x00C4;</span> <span title="U+00E5">&#x00C5; &#x00C5;</span> <span title="U+00E6">&#x00C6; &#x00C6;</span> <span title="U+00E7">&#x00C7; &#x00C7;</span> <span title="U+00E8">&#x00C8; &#x00C8;</span> <span title="U+00E9">&#x00C9; &#x00C9;</span> <span title="U+00EA">&#x00CA; &#x00CA;</span> <span title="U+00EB">&#x00CB; &#x00CB;</span> <span title="U+00EC">&#x00CC; &#x00CC;</span> <span title="U+00ED">&#x00CD; &#x00CD;</span> <span title="U+00EE">&#x00CE; &#x00CE;</span> <span title="U+00EF">&#x00CF; &#x00CF;</span> <span title="U+00F0">&#x00D0; &#x00D0;</span> <span title="U+00F1">&#x00D1; &#x00D1;</span> <span title="U+00F2">&#x00D2; &#x00D2;</span> <span title="U+00F3">&#x00D3; &#x00D3;</span> <span title="U+00F4">&#x00D4; &#x00D4;</span> <span title="U+00F5">&#x00D5; &#x00D5;</span> <span title="U+00F6">&#x00D6; &#x00D6;</span> <span title="U+00F8">&#x00D8; &#x00D8;</span> <span title="U+00F9">&#x00D9; &#x00D9;</span> <span title="U+00FA">&#x00DA; &#x00DA;</span> <span title="U+00FB">&#x00DB; &#x00DB;</span> <span title="U+00FC">&#x00DC; &#x00DC;</span> <span title="U+00FD">&#x00DD; &#x00DD;</span> <span title="U+00FE">&#x00DE; &#x00DE;</span> <span title="U+00FF">&#x0178; &#x0178;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-002-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-002-ref.html
new file mode 100644
index 0000000000..8418d39731
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-002-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Basic and Latin-1 lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>a a</span> <span>b b</span> <span>c c</span> <span>d d</span> <span>e e</span> <span>f f</span> <span>g g</span> <span>h h</span> <span>i i</span> <span>j j</span> <span>k k</span> <span>l l</span> <span>m m</span> <span>n n</span> <span>o o</span> <span>p p</span> <span>q q</span> <span>r r</span> <span>s s</span> <span>t t</span> <span>u u</span> <span>v v</span> <span>w w</span> <span>x x</span> <span>y y</span> <span>z z</span> <span title="U+00C0">&#x00E0; &#x00E0;</span> <span title="U+00C1">&#x00E1; &#x00E1;</span> <span title="U+00C2">&#x00E2; &#x00E2;</span> <span title="U+00C3">&#x00E3; &#x00E3;</span> <span title="U+00C4">&#x00E4; &#x00E4;</span> <span title="U+00C5">&#x00E5; &#x00E5;</span> <span title="U+00C6">&#x00E6; &#x00E6;</span> <span title="U+00C7">&#x00E7; &#x00E7;</span> <span title="U+00C8">&#x00E8; &#x00E8;</span> <span title="U+00C9">&#x00E9; &#x00E9;</span> <span title="U+00CA">&#x00EA; &#x00EA;</span> <span title="U+00CB">&#x00EB; &#x00EB;</span> <span title="U+00CC">&#x00EC; &#x00EC;</span> <span title="U+00CD">&#x00ED; &#x00ED;</span> <span title="U+00CE">&#x00EE; &#x00EE;</span> <span title="U+00CF">&#x00EF; &#x00EF;</span> <span title="U+00D0">&#x00F0; &#x00F0;</span> <span title="U+00D1">&#x00F1; &#x00F1;</span> <span title="U+00D2">&#x00F2; &#x00F2;</span> <span title="U+00D3">&#x00F3; &#x00F3;</span> <span title="U+00D4">&#x00F4; &#x00F4;</span> <span title="U+00D5">&#x00F5; &#x00F5;</span> <span title="U+00D6">&#x00F6; &#x00F6;</span> <span title="U+00D8">&#x00F8; &#x00F8;</span> <span title="U+00D9">&#x00F9; &#x00F9;</span> <span title="U+00DA">&#x00FA; &#x00FA;</span> <span title="U+00DB">&#x00FB; &#x00FB;</span> <span title="U+00DC">&#x00FC; &#x00FC;</span> <span title="U+00DD">&#x00FD; &#x00FD;</span> <span title="U+00DE">&#x00FE; &#x00FE;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-003-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-003-ref.html
new file mode 100644
index 0000000000..9793a95dd3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-003-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended Additional, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1E01">&#x1E00; &#x1E00;</span> <span title="U+1E03">&#x1E02; &#x1E02;</span> <span title="U+1E05">&#x1E04; &#x1E04;</span> <span title="U+1E07">&#x1E06; &#x1E06;</span> <span title="U+1E09">&#x1E08; &#x1E08;</span> <span title="U+1E0B">&#x1E0A; &#x1E0A;</span> <span title="U+1E0D">&#x1E0C; &#x1E0C;</span> <span title="U+1E0F">&#x1E0E; &#x1E0E;</span> <span title="U+1E11">&#x1E10; &#x1E10;</span> <span title="U+1E13">&#x1E12; &#x1E12;</span> <span title="U+1E15">&#x1E14; &#x1E14;</span> <span title="U+1E17">&#x1E16; &#x1E16;</span> <span title="U+1E19">&#x1E18; &#x1E18;</span> <span title="U+1E1B">&#x1E1A; &#x1E1A;</span> <span title="U+1E1D">&#x1E1C; &#x1E1C;</span> <span title="U+1E1F">&#x1E1E; &#x1E1E;</span> <span title="U+1E21">&#x1E20; &#x1E20;</span> <span title="U+1E23">&#x1E22; &#x1E22;</span> <span title="U+1E25">&#x1E24; &#x1E24;</span> <span title="U+1E27">&#x1E26; &#x1E26;</span> <span title="U+1E29">&#x1E28; &#x1E28;</span> <span title="U+1E2B">&#x1E2A; &#x1E2A;</span> <span title="U+1E2D">&#x1E2C; &#x1E2C;</span> <span title="U+1E2F">&#x1E2E; &#x1E2E;</span> <span title="U+1E31">&#x1E30; &#x1E30;</span> <span title="U+1E33">&#x1E32; &#x1E32;</span> <span title="U+1E35">&#x1E34; &#x1E34;</span> <span title="U+1E37">&#x1E36; &#x1E36;</span> <span title="U+1E39">&#x1E38; &#x1E38;</span> <span title="U+1E3B">&#x1E3A; &#x1E3A;</span> <span title="U+1E3D">&#x1E3C; &#x1E3C;</span> <span title="U+1E3F">&#x1E3E; &#x1E3E;</span> <span title="U+1E41">&#x1E40; &#x1E40;</span> <span title="U+1E43">&#x1E42; &#x1E42;</span> <span title="U+1E45">&#x1E44; &#x1E44;</span> <span title="U+1E47">&#x1E46; &#x1E46;</span> <span title="U+1E49">&#x1E48; &#x1E48;</span> <span title="U+1E4B">&#x1E4A; &#x1E4A;</span> <span title="U+1E4D">&#x1E4C; &#x1E4C;</span> <span title="U+1E4F">&#x1E4E; &#x1E4E;</span> <span title="U+1E51">&#x1E50; &#x1E50;</span> <span title="U+1E53">&#x1E52; &#x1E52;</span> <span title="U+1E55">&#x1E54; &#x1E54;</span> <span title="U+1E57">&#x1E56; &#x1E56;</span> <span title="U+1E59">&#x1E58; &#x1E58;</span> <span title="U+1E5B">&#x1E5A; &#x1E5A;</span> <span title="U+1E5D">&#x1E5C; &#x1E5C;</span> <span title="U+1E5F">&#x1E5E; &#x1E5E;</span> <span title="U+1E61">&#x1E60; &#x1E60;</span> <span title="U+1E63">&#x1E62; &#x1E62;</span> <span title="U+1E65">&#x1E64; &#x1E64;</span> <span title="U+1E67">&#x1E66; &#x1E66;</span> <span title="U+1E69">&#x1E68; &#x1E68;</span> <span title="U+1E6B">&#x1E6A; &#x1E6A;</span> <span title="U+1E6D">&#x1E6C; &#x1E6C;</span> <span title="U+1E6F">&#x1E6E; &#x1E6E;</span> <span title="U+1E71">&#x1E70; &#x1E70;</span> <span title="U+1E73">&#x1E72; &#x1E72;</span> <span title="U+1E75">&#x1E74; &#x1E74;</span> <span title="U+1E77">&#x1E76; &#x1E76;</span> <span title="U+1E79">&#x1E78; &#x1E78;</span> <span title="U+1E7B">&#x1E7A; &#x1E7A;</span> <span title="U+1E7D">&#x1E7C; &#x1E7C;</span> <span title="U+1E7F">&#x1E7E; &#x1E7E;</span> <span title="U+1E81">&#x1E80; &#x1E80;</span> <span title="U+1E83">&#x1E82; &#x1E82;</span> <span title="U+1E85">&#x1E84; &#x1E84;</span> <span title="U+1E87">&#x1E86; &#x1E86;</span> <span title="U+1E89">&#x1E88; &#x1E88;</span> <span title="U+1E8B">&#x1E8A; &#x1E8A;</span> <span title="U+1E8D">&#x1E8C; &#x1E8C;</span> <span title="U+1E8F">&#x1E8E; &#x1E8E;</span> <span title="U+1E91">&#x1E90; &#x1E90;</span> <span title="U+1E93">&#x1E92; &#x1E92;</span> <span title="U+1E95">&#x1E94; &#x1E94;</span> <span title="U+1E9B">&#x1E60; &#x1E60;</span> <span title="U+1EA1">&#x1EA0; &#x1EA0;</span> <span title="U+1EA3">&#x1EA2; &#x1EA2;</span> <span title="U+1EA5">&#x1EA4; &#x1EA4;</span> <span title="U+1EA7">&#x1EA6; &#x1EA6;</span> <span title="U+1EA9">&#x1EA8; &#x1EA8;</span> <span title="U+1EAB">&#x1EAA; &#x1EAA;</span> <span title="U+1EAD">&#x1EAC; &#x1EAC;</span> <span title="U+1EAF">&#x1EAE; &#x1EAE;</span> <span title="U+1EB1">&#x1EB0; &#x1EB0;</span> <span title="U+1EB3">&#x1EB2; &#x1EB2;</span> <span title="U+1EB5">&#x1EB4; &#x1EB4;</span> <span title="U+1EB7">&#x1EB6; &#x1EB6;</span> <span title="U+1EB9">&#x1EB8; &#x1EB8;</span> <span title="U+1EBB">&#x1EBA; &#x1EBA;</span> <span title="U+1EBD">&#x1EBC; &#x1EBC;</span> <span title="U+1EBF">&#x1EBE; &#x1EBE;</span> <span title="U+1EC1">&#x1EC0; &#x1EC0;</span> <span title="U+1EC3">&#x1EC2; &#x1EC2;</span> <span title="U+1EC5">&#x1EC4; &#x1EC4;</span> <span title="U+1EC7">&#x1EC6; &#x1EC6;</span> <span title="U+1EC9">&#x1EC8; &#x1EC8;</span> <span title="U+1ECB">&#x1ECA; &#x1ECA;</span> <span title="U+1ECD">&#x1ECC; &#x1ECC;</span> <span title="U+1ECF">&#x1ECE; &#x1ECE;</span> <span title="U+1ED1">&#x1ED0; &#x1ED0;</span> <span title="U+1ED3">&#x1ED2; &#x1ED2;</span> <span title="U+1ED5">&#x1ED4; &#x1ED4;</span> <span title="U+1ED7">&#x1ED6; &#x1ED6;</span> <span title="U+1ED9">&#x1ED8; &#x1ED8;</span> <span title="U+1EDB">&#x1EDA; &#x1EDA;</span> <span title="U+1EDD">&#x1EDC; &#x1EDC;</span> <span title="U+1EDF">&#x1EDE; &#x1EDE;</span> <span title="U+1EE1">&#x1EE0; &#x1EE0;</span> <span title="U+1EE3">&#x1EE2; &#x1EE2;</span> <span title="U+1EE5">&#x1EE4; &#x1EE4;</span> <span title="U+1EE7">&#x1EE6; &#x1EE6;</span> <span title="U+1EE9">&#x1EE8; &#x1EE8;</span> <span title="U+1EEB">&#x1EEA; &#x1EEA;</span> <span title="U+1EED">&#x1EEC; &#x1EEC;</span> <span title="U+1EEF">&#x1EEE; &#x1EEE;</span> <span title="U+1EF1">&#x1EF0; &#x1EF0;</span> <span title="U+1EF3">&#x1EF2; &#x1EF2;</span> <span title="U+1EF5">&#x1EF4; &#x1EF4;</span> <span title="U+1EF7">&#x1EF6; &#x1EF6;</span> <span title="U+1EF9">&#x1EF8; &#x1EF8;</span> <span title="U+1EFB">&#x1EFA; &#x1EFA;</span> <span title="U+1EFD">&#x1EFC; &#x1EFC;</span> <span title="U+1EFF">&#x1EFE; &#x1EFE;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x1E96; &#x1E97; &#x1E98; &#x1E99; &#x1E9A; &#x1E9C; &#x1E9D; &#x1E9F;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-004-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-004-ref.html
new file mode 100644
index 0000000000..dae2e050ec
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-004-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended Additional, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1E00">&#x1E01; &#x1E01;</span> <span title="U+1E02">&#x1E03; &#x1E03;</span> <span title="U+1E04">&#x1E05; &#x1E05;</span> <span title="U+1E06">&#x1E07; &#x1E07;</span> <span title="U+1E08">&#x1E09; &#x1E09;</span> <span title="U+1E0A">&#x1E0B; &#x1E0B;</span> <span title="U+1E0C">&#x1E0D; &#x1E0D;</span> <span title="U+1E0E">&#x1E0F; &#x1E0F;</span> <span title="U+1E10">&#x1E11; &#x1E11;</span> <span title="U+1E12">&#x1E13; &#x1E13;</span> <span title="U+1E14">&#x1E15; &#x1E15;</span> <span title="U+1E16">&#x1E17; &#x1E17;</span> <span title="U+1E18">&#x1E19; &#x1E19;</span> <span title="U+1E1A">&#x1E1B; &#x1E1B;</span> <span title="U+1E1C">&#x1E1D; &#x1E1D;</span> <span title="U+1E1E">&#x1E1F; &#x1E1F;</span> <span title="U+1E20">&#x1E21; &#x1E21;</span> <span title="U+1E22">&#x1E23; &#x1E23;</span> <span title="U+1E24">&#x1E25; &#x1E25;</span> <span title="U+1E26">&#x1E27; &#x1E27;</span> <span title="U+1E28">&#x1E29; &#x1E29;</span> <span title="U+1E2A">&#x1E2B; &#x1E2B;</span> <span title="U+1E2C">&#x1E2D; &#x1E2D;</span> <span title="U+1E2E">&#x1E2F; &#x1E2F;</span> <span title="U+1E30">&#x1E31; &#x1E31;</span> <span title="U+1E32">&#x1E33; &#x1E33;</span> <span title="U+1E34">&#x1E35; &#x1E35;</span> <span title="U+1E36">&#x1E37; &#x1E37;</span> <span title="U+1E38">&#x1E39; &#x1E39;</span> <span title="U+1E3A">&#x1E3B; &#x1E3B;</span> <span title="U+1E3C">&#x1E3D; &#x1E3D;</span> <span title="U+1E3E">&#x1E3F; &#x1E3F;</span> <span title="U+1E40">&#x1E41; &#x1E41;</span> <span title="U+1E42">&#x1E43; &#x1E43;</span> <span title="U+1E44">&#x1E45; &#x1E45;</span> <span title="U+1E46">&#x1E47; &#x1E47;</span> <span title="U+1E48">&#x1E49; &#x1E49;</span> <span title="U+1E4A">&#x1E4B; &#x1E4B;</span> <span title="U+1E4C">&#x1E4D; &#x1E4D;</span> <span title="U+1E4E">&#x1E4F; &#x1E4F;</span> <span title="U+1E50">&#x1E51; &#x1E51;</span> <span title="U+1E52">&#x1E53; &#x1E53;</span> <span title="U+1E54">&#x1E55; &#x1E55;</span> <span title="U+1E56">&#x1E57; &#x1E57;</span> <span title="U+1E58">&#x1E59; &#x1E59;</span> <span title="U+1E5A">&#x1E5B; &#x1E5B;</span> <span title="U+1E5C">&#x1E5D; &#x1E5D;</span> <span title="U+1E5E">&#x1E5F; &#x1E5F;</span> <span title="U+1E60">&#x1E61; &#x1E61;</span> <span title="U+1E62">&#x1E63; &#x1E63;</span> <span title="U+1E64">&#x1E65; &#x1E65;</span> <span title="U+1E66">&#x1E67; &#x1E67;</span> <span title="U+1E68">&#x1E69; &#x1E69;</span> <span title="U+1E6A">&#x1E6B; &#x1E6B;</span> <span title="U+1E6C">&#x1E6D; &#x1E6D;</span> <span title="U+1E6E">&#x1E6F; &#x1E6F;</span> <span title="U+1E70">&#x1E71; &#x1E71;</span> <span title="U+1E72">&#x1E73; &#x1E73;</span> <span title="U+1E74">&#x1E75; &#x1E75;</span> <span title="U+1E76">&#x1E77; &#x1E77;</span> <span title="U+1E78">&#x1E79; &#x1E79;</span> <span title="U+1E7A">&#x1E7B; &#x1E7B;</span> <span title="U+1E7C">&#x1E7D; &#x1E7D;</span> <span title="U+1E7E">&#x1E7F; &#x1E7F;</span> <span title="U+1E80">&#x1E81; &#x1E81;</span> <span title="U+1E82">&#x1E83; &#x1E83;</span> <span title="U+1E84">&#x1E85; &#x1E85;</span> <span title="U+1E86">&#x1E87; &#x1E87;</span> <span title="U+1E88">&#x1E89; &#x1E89;</span> <span title="U+1E8A">&#x1E8B; &#x1E8B;</span> <span title="U+1E8C">&#x1E8D; &#x1E8D;</span> <span title="U+1E8E">&#x1E8F; &#x1E8F;</span> <span title="U+1E90">&#x1E91; &#x1E91;</span> <span title="U+1E92">&#x1E93; &#x1E93;</span> <span title="U+1E94">&#x1E95; &#x1E95;</span> <span title="U+1E9E">&#x00DF; &#x00DF;</span> <span title="U+1EA0">&#x1EA1; &#x1EA1;</span> <span title="U+1EA2">&#x1EA3; &#x1EA3;</span> <span title="U+1EA4">&#x1EA5; &#x1EA5;</span> <span title="U+1EA6">&#x1EA7; &#x1EA7;</span> <span title="U+1EA8">&#x1EA9; &#x1EA9;</span> <span title="U+1EAA">&#x1EAB; &#x1EAB;</span> <span title="U+1EAC">&#x1EAD; &#x1EAD;</span> <span title="U+1EAE">&#x1EAF; &#x1EAF;</span> <span title="U+1EB0">&#x1EB1; &#x1EB1;</span> <span title="U+1EB2">&#x1EB3; &#x1EB3;</span> <span title="U+1EB4">&#x1EB5; &#x1EB5;</span> <span title="U+1EB6">&#x1EB7; &#x1EB7;</span> <span title="U+1EB8">&#x1EB9; &#x1EB9;</span> <span title="U+1EBA">&#x1EBB; &#x1EBB;</span> <span title="U+1EBC">&#x1EBD; &#x1EBD;</span> <span title="U+1EBE">&#x1EBF; &#x1EBF;</span> <span title="U+1EC0">&#x1EC1; &#x1EC1;</span> <span title="U+1EC2">&#x1EC3; &#x1EC3;</span> <span title="U+1EC4">&#x1EC5; &#x1EC5;</span> <span title="U+1EC6">&#x1EC7; &#x1EC7;</span> <span title="U+1EC8">&#x1EC9; &#x1EC9;</span> <span title="U+1ECA">&#x1ECB; &#x1ECB;</span> <span title="U+1ECC">&#x1ECD; &#x1ECD;</span> <span title="U+1ECE">&#x1ECF; &#x1ECF;</span> <span title="U+1ED0">&#x1ED1; &#x1ED1;</span> <span title="U+1ED2">&#x1ED3; &#x1ED3;</span> <span title="U+1ED4">&#x1ED5; &#x1ED5;</span> <span title="U+1ED6">&#x1ED7; &#x1ED7;</span> <span title="U+1ED8">&#x1ED9; &#x1ED9;</span> <span title="U+1EDA">&#x1EDB; &#x1EDB;</span> <span title="U+1EDC">&#x1EDD; &#x1EDD;</span> <span title="U+1EDE">&#x1EDF; &#x1EDF;</span> <span title="U+1EE0">&#x1EE1; &#x1EE1;</span> <span title="U+1EE2">&#x1EE3; &#x1EE3;</span> <span title="U+1EE4">&#x1EE5; &#x1EE5;</span> <span title="U+1EE6">&#x1EE7; &#x1EE7;</span> <span title="U+1EE8">&#x1EE9; &#x1EE9;</span> <span title="U+1EEA">&#x1EEB; &#x1EEB;</span> <span title="U+1EEC">&#x1EED; &#x1EED;</span> <span title="U+1EEE">&#x1EEF; &#x1EEF;</span> <span title="U+1EF0">&#x1EF1; &#x1EF1;</span> <span title="U+1EF2">&#x1EF3; &#x1EF3;</span> <span title="U+1EF4">&#x1EF5; &#x1EF5;</span> <span title="U+1EF6">&#x1EF7; &#x1EF7;</span> <span title="U+1EF8">&#x1EF9; &#x1EF9;</span> <span title="U+1EFA">&#x1EFB; &#x1EFB;</span> <span title="U+1EFC">&#x1EFD; &#x1EFD;</span> <span title="U+1EFE">&#x1EFF; &#x1EFF;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x1E96; &#x1E97; &#x1E98; &#x1E99; &#x1E9A; &#x1E9C; &#x1E9D; &#x1E9F;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-005-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-005-ref.html
new file mode 100644
index 0000000000..9ce44d1e55
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-005-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-A, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0101">&#x0100; &#x0100;</span> <span title="U+0103">&#x0102; &#x0102;</span> <span title="U+0105">&#x0104; &#x0104;</span> <span title="U+0107">&#x0106; &#x0106;</span> <span title="U+0109">&#x0108; &#x0108;</span> <span title="U+010B">&#x010A; &#x010A;</span> <span title="U+010D">&#x010C; &#x010C;</span> <span title="U+010F">&#x010E; &#x010E;</span> <span title="U+0111">&#x0110; &#x0110;</span> <span title="U+0113">&#x0112; &#x0112;</span> <span title="U+0115">&#x0114; &#x0114;</span> <span title="U+0117">&#x0116; &#x0116;</span> <span title="U+0119">&#x0118; &#x0118;</span> <span title="U+011B">&#x011A; &#x011A;</span> <span title="U+011D">&#x011C; &#x011C;</span> <span title="U+011F">&#x011E; &#x011E;</span> <span title="U+0121">&#x0120; &#x0120;</span> <span title="U+0123">&#x0122; &#x0122;</span> <span title="U+0125">&#x0124; &#x0124;</span> <span title="U+0127">&#x0126; &#x0126;</span> <span title="U+0129">&#x0128; &#x0128;</span> <span title="U+012B">&#x012A; &#x012A;</span> <span title="U+012D">&#x012C; &#x012C;</span> <span title="U+012F">&#x012E; &#x012E;</span> <span title="U+0131">&#x0049; &#x0049;</span> <span title="U+0133">&#x0132; &#x0132;</span> <span title="U+0135">&#x0134; &#x0134;</span> <span title="U+0137">&#x0136; &#x0136;</span> <span title="U+013A">&#x0139; &#x0139;</span> <span title="U+013C">&#x013B; &#x013B;</span> <span title="U+013E">&#x013D; &#x013D;</span> <span title="U+0140">&#x013F; &#x013F;</span> <span title="U+0142">&#x0141; &#x0141;</span> <span title="U+0144">&#x0143; &#x0143;</span> <span title="U+0146">&#x0145; &#x0145;</span> <span title="U+0148">&#x0147; &#x0147;</span> <span title="U+014B">&#x014A; &#x014A;</span> <span title="U+014D">&#x014C; &#x014C;</span> <span title="U+014F">&#x014E; &#x014E;</span> <span title="U+0151">&#x0150; &#x0150;</span> <span title="U+0153">&#x0152; &#x0152;</span> <span title="U+0155">&#x0154; &#x0154;</span> <span title="U+0157">&#x0156; &#x0156;</span> <span title="U+0159">&#x0158; &#x0158;</span> <span title="U+015B">&#x015A; &#x015A;</span> <span title="U+015D">&#x015C; &#x015C;</span> <span title="U+015F">&#x015E; &#x015E;</span> <span title="U+0161">&#x0160; &#x0160;</span> <span title="U+0163">&#x0162; &#x0162;</span> <span title="U+0165">&#x0164; &#x0164;</span> <span title="U+0167">&#x0166; &#x0166;</span> <span title="U+0169">&#x0168; &#x0168;</span> <span title="U+016B">&#x016A; &#x016A;</span> <span title="U+016D">&#x016C; &#x016C;</span> <span title="U+016F">&#x016E; &#x016E;</span> <span title="U+0171">&#x0170; &#x0170;</span> <span title="U+0173">&#x0172; &#x0172;</span> <span title="U+0175">&#x0174; &#x0174;</span> <span title="U+0177">&#x0176; &#x0176;</span> <span title="U+017A">&#x0179; &#x0179;</span> <span title="U+017C">&#x017B; &#x017B;</span> <span title="U+017E">&#x017D; &#x017D;</span> <span title="U+017F">&#x0053; &#x0053;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0130;, &#x0138;, &#x0149;, &#x0178;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-006-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-006-ref.html
new file mode 100644
index 0000000000..61c4d240cd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-006-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-A, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0100">&#x0101; &#x0101;</span> <span title="U+0102">&#x0103; &#x0103;</span> <span title="U+0104">&#x0105; &#x0105;</span> <span title="U+0106">&#x0107; &#x0107;</span> <span title="U+0108">&#x0109; &#x0109;</span> <span title="U+010A">&#x010B; &#x010B;</span> <span title="U+010C">&#x010D; &#x010D;</span> <span title="U+010E">&#x010F; &#x010F;</span> <span title="U+0110">&#x0111; &#x0111;</span> <span title="U+0112">&#x0113; &#x0113;</span> <span title="U+0114">&#x0115; &#x0115;</span> <span title="U+0116">&#x0117; &#x0117;</span> <span title="U+0118">&#x0119; &#x0119;</span> <span title="U+011A">&#x011B; &#x011B;</span> <span title="U+011C">&#x011D; &#x011D;</span> <span title="U+011E">&#x011F; &#x011F;</span> <span title="U+0120">&#x0121; &#x0121;</span> <span title="U+0122">&#x0123; &#x0123;</span> <span title="U+0124">&#x0125; &#x0125;</span> <span title="U+0126">&#x0127; &#x0127;</span> <span title="U+0128">&#x0129; &#x0129;</span> <span title="U+012A">&#x012B; &#x012B;</span> <span title="U+012C">&#x012D; &#x012D;</span> <span title="U+012E">&#x012F; &#x012F;</span> <span title="U+0130">&#x0069; &#x0069;</span> <span title="U+0132">&#x0133; &#x0133;</span> <span title="U+0134">&#x0135; &#x0135;</span> <span title="U+0136">&#x0137; &#x0137;</span> <span title="U+0139">&#x013A; &#x013A;</span> <span title="U+013B">&#x013C; &#x013C;</span> <span title="U+013D">&#x013E; &#x013E;</span> <span title="U+013F">&#x0140; &#x0140;</span> <span title="U+0141">&#x0142; &#x0142;</span> <span title="U+0143">&#x0144; &#x0144;</span> <span title="U+0145">&#x0146; &#x0146;</span> <span title="U+0147">&#x0148; &#x0148;</span> <span title="U+014A">&#x014B; &#x014B;</span> <span title="U+014C">&#x014D; &#x014D;</span> <span title="U+014E">&#x014F; &#x014F;</span> <span title="U+0150">&#x0151; &#x0151;</span> <span title="U+0152">&#x0153; &#x0153;</span> <span title="U+0154">&#x0155; &#x0155;</span> <span title="U+0156">&#x0157; &#x0157;</span> <span title="U+0158">&#x0159; &#x0159;</span> <span title="U+015A">&#x015B; &#x015B;</span> <span title="U+015C">&#x015D; &#x015D;</span> <span title="U+015E">&#x015F; &#x015F;</span> <span title="U+0160">&#x0161; &#x0161;</span> <span title="U+0162">&#x0163; &#x0163;</span> <span title="U+0164">&#x0165; &#x0165;</span> <span title="U+0166">&#x0167; &#x0167;</span> <span title="U+0168">&#x0169; &#x0169;</span> <span title="U+016A">&#x016B; &#x016B;</span> <span title="U+016C">&#x016D; &#x016D;</span> <span title="U+016E">&#x016F; &#x016F;</span> <span title="U+0170">&#x0171; &#x0171;</span> <span title="U+0172">&#x0173; &#x0173;</span> <span title="U+0174">&#x0175; &#x0175;</span> <span title="U+0176">&#x0177; &#x0177;</span> <span title="U+0178">&#x00FF; &#x00FF;</span> <span title="U+0179">&#x017A; &#x017A;</span> <span title="U+017B">&#x017C; &#x017C;</span> <span title="U+017D">&#x017E; &#x017E;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0131;, &#x0138;, &#x0149;, &#x017F;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-007-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-007-ref.html
new file mode 100644
index 0000000000..6f98a12cbd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-007-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-B, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0180">&#x0243; &#x0243;</span> <span title="U+0183">&#x0182; &#x0182;</span> <span title="U+0185">&#x0184; &#x0184;</span> <span title="U+0188">&#x0187; &#x0187;</span> <span title="U+018C">&#x018B; &#x018B;</span> <span title="U+0192">&#x0191; &#x0191;</span> <span title="U+0195">&#x01F6; &#x01F6;</span> <span title="U+0199">&#x0198; &#x0198;</span> <span title="U+019A">&#x023D; &#x023D;</span> <span title="U+019E">&#x0220; &#x0220;</span> <span title="U+01A1">&#x01A0; &#x01A0;</span> <span title="U+01A3">&#x01A2; &#x01A2;</span> <span title="U+01A5">&#x01A4; &#x01A4;</span> <span title="U+01A8">&#x01A7; &#x01A7;</span> <span title="U+01AD">&#x01AC; &#x01AC;</span> <span title="U+01B0">&#x01AF; &#x01AF;</span> <span title="U+01B4">&#x01B3; &#x01B3;</span> <span title="U+01B6">&#x01B5; &#x01B5;</span> <span title="U+01B9">&#x01B8; &#x01B8;</span> <span title="U+01BD">&#x01BC; &#x01BC;</span> <span title="U+01BF">&#x01F7; &#x01F7;</span> <span title="U+01C5">&#x01C4; &#x01C4;</span> <span title="U+01C6">&#x01C4; &#x01C4;</span> <span title="U+01C8">&#x01C7; &#x01C7;</span> <span title="U+01C9">&#x01C7; &#x01C7;</span> <span title="U+01CB">&#x01CA; &#x01CA;</span> <span title="U+01CC">&#x01CA; &#x01CA;</span> <span title="U+01CE">&#x01CD; &#x01CD;</span> <span title="U+01D0">&#x01CF; &#x01CF;</span> <span title="U+01D2">&#x01D1; &#x01D1;</span> <span title="U+01D4">&#x01D3; &#x01D3;</span> <span title="U+01D6">&#x01D5; &#x01D5;</span> <span title="U+01D8">&#x01D7; &#x01D7;</span> <span title="U+01DA">&#x01D9; &#x01D9;</span> <span title="U+01DC">&#x01DB; &#x01DB;</span> <span title="U+01DD">&#x018E; &#x018E;</span> <span title="U+01DF">&#x01DE; &#x01DE;</span> <span title="U+01E1">&#x01E0; &#x01E0;</span> <span title="U+01E3">&#x01E2; &#x01E2;</span> <span title="U+01E5">&#x01E4; &#x01E4;</span> <span title="U+01E7">&#x01E6; &#x01E6;</span> <span title="U+01E9">&#x01E8; &#x01E8;</span> <span title="U+01EB">&#x01EA; &#x01EA;</span> <span title="U+01ED">&#x01EC; &#x01EC;</span> <span title="U+01EF">&#x01EE; &#x01EE;</span> <span title="U+01F2">&#x01F1; &#x01F1;</span> <span title="U+01F3">&#x01F1; &#x01F1;</span> <span title="U+01F5">&#x01F4; &#x01F4;</span> <span title="U+01F9">&#x01F8; &#x01F8;</span> <span title="U+01FB">&#x01FA; &#x01FA;</span> <span title="U+01FD">&#x01FC; &#x01FC;</span> <span title="U+01FF">&#x01FE; &#x01FE;</span> <span title="U+0201">&#x0200; &#x0200;</span> <span title="U+0203">&#x0202; &#x0202;</span> <span title="U+0205">&#x0204; &#x0204;</span> <span title="U+0207">&#x0206; &#x0206;</span> <span title="U+0209">&#x0208; &#x0208;</span> <span title="U+020B">&#x020A; &#x020A;</span> <span title="U+020D">&#x020C; &#x020C;</span> <span title="U+020F">&#x020E; &#x020E;</span> <span title="U+0211">&#x0210; &#x0210;</span> <span title="U+0213">&#x0212; &#x0212;</span> <span title="U+0215">&#x0214; &#x0214;</span> <span title="U+0217">&#x0216; &#x0216;</span> <span title="U+0219">&#x0218; &#x0218;</span> <span title="U+021B">&#x021A; &#x021A;</span> <span title="U+021D">&#x021C; &#x021C;</span> <span title="U+021F">&#x021E; &#x021E;</span> <span title="U+0223">&#x0222; &#x0222;</span> <span title="U+0225">&#x0224; &#x0224;</span> <span title="U+0227">&#x0226; &#x0226;</span> <span title="U+0229">&#x0228; &#x0228;</span> <span title="U+022B">&#x022A; &#x022A;</span> <span title="U+022D">&#x022C; &#x022C;</span> <span title="U+022F">&#x022E; &#x022E;</span> <span title="U+0231">&#x0230; &#x0230;</span> <span title="U+0233">&#x0232; &#x0232;</span> <span title="U+023C">&#x023B; &#x023B;</span> <span title="U+023F">&#x2C7E; &#x2C7E;</span> <span title="U+0240">&#x2C7F; &#x2C7F;</span> <span title="U+0242">&#x0241; &#x0241;</span> <span title="U+0247">&#x0246; &#x0246;</span> <span title="U+0249">&#x0248; &#x0248;</span> <span title="U+024B">&#x024A; &#x024A;</span> <span title="U+024D">&#x024C; &#x024C;</span> <span title="U+024F">&#x024E; &#x024E;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x018D; &#x019B; &#x01AA; &#x01AB; &#x01BA; &#x01BB; &#x01BE; &#x01C0; &#x01C1; &#x01C2; &#x01C3; &#x01F0; &#x0221; &#x0234; &#x0235; &#x0236; &#x0237; &#x0238; &#x0239;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-008-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-008-ref.html
new file mode 100644
index 0000000000..1ea4aa60c1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-008-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-B, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0181">&#x0253; &#x0253;</span> <span title="U+0182">&#x0183; &#x0183;</span> <span title="U+0184">&#x0185; &#x0185;</span> <span title="U+0186">&#x0254; &#x0254;</span> <span title="U+0187">&#x0188; &#x0188;</span> <span title="U+0189">&#x0256; &#x0256;</span> <span title="U+018A">&#x0257; &#x0257;</span> <span title="U+018B">&#x018C; &#x018C;</span> <span title="U+018E">&#x01DD; &#x01DD;</span> <span title="U+018F">&#x0259; &#x0259;</span> <span title="U+0190">&#x025B; &#x025B;</span> <span title="U+0191">&#x0192; &#x0192;</span> <span title="U+0193">&#x0260; &#x0260;</span> <span title="U+0194">&#x0263; &#x0263;</span> <span title="U+0196">&#x0269; &#x0269;</span> <span title="U+0197">&#x0268; &#x0268;</span> <span title="U+0198">&#x0199; &#x0199;</span> <span title="U+019C">&#x026F; &#x026F;</span> <span title="U+019D">&#x0272; &#x0272;</span> <span title="U+019F">&#x0275; &#x0275;</span> <span title="U+01A0">&#x01A1; &#x01A1;</span> <span title="U+01A2">&#x01A3; &#x01A3;</span> <span title="U+01A4">&#x01A5; &#x01A5;</span> <span title="U+01A6">&#x0280; &#x0280;</span> <span title="U+01A7">&#x01A8; &#x01A8;</span> <span title="U+01A9">&#x0283; &#x0283;</span> <span title="U+01AC">&#x01AD; &#x01AD;</span> <span title="U+01AE">&#x0288; &#x0288;</span> <span title="U+01AF">&#x01B0; &#x01B0;</span> <span title="U+01B1">&#x028A; &#x028A;</span> <span title="U+01B2">&#x028B; &#x028B;</span> <span title="U+01B3">&#x01B4; &#x01B4;</span> <span title="U+01B5">&#x01B6; &#x01B6;</span> <span title="U+01B7">&#x0292; &#x0292;</span> <span title="U+01B8">&#x01B9; &#x01B9;</span> <span title="U+01BC">&#x01BD; &#x01BD;</span> <span title="U+01C4">&#x01C6; &#x01C6;</span> <span title="U+01C5">&#x01C6; &#x01C6;</span> <span title="U+01C7">&#x01C9; &#x01C9;</span> <span title="U+01C8">&#x01C9; &#x01C9;</span> <span title="U+01CA">&#x01CC; &#x01CC;</span> <span title="U+01CB">&#x01CC; &#x01CC;</span> <span title="U+01CD">&#x01CE; &#x01CE;</span> <span title="U+01CF">&#x01D0; &#x01D0;</span> <span title="U+01D1">&#x01D2; &#x01D2;</span> <span title="U+01D3">&#x01D4; &#x01D4;</span> <span title="U+01D5">&#x01D6; &#x01D6;</span> <span title="U+01D7">&#x01D8; &#x01D8;</span> <span title="U+01D9">&#x01DA; &#x01DA;</span> <span title="U+01DB">&#x01DC; &#x01DC;</span> <span title="U+01DE">&#x01DF; &#x01DF;</span> <span title="U+01E0">&#x01E1; &#x01E1;</span> <span title="U+01E2">&#x01E3; &#x01E3;</span> <span title="U+01E4">&#x01E5; &#x01E5;</span> <span title="U+01E6">&#x01E7; &#x01E7;</span> <span title="U+01E8">&#x01E9; &#x01E9;</span> <span title="U+01EA">&#x01EB; &#x01EB;</span> <span title="U+01EC">&#x01ED; &#x01ED;</span> <span title="U+01EE">&#x01EF; &#x01EF;</span> <span title="U+01F1">&#x01F3; &#x01F3;</span> <span title="U+01F2">&#x01F3; &#x01F3;</span> <span title="U+01F4">&#x01F5; &#x01F5;</span> <span title="U+01F6">&#x0195; &#x0195;</span> <span title="U+01F7">&#x01BF; &#x01BF;</span> <span title="U+01F8">&#x01F9; &#x01F9;</span> <span title="U+01FA">&#x01FB; &#x01FB;</span> <span title="U+01FC">&#x01FD; &#x01FD;</span> <span title="U+01FE">&#x01FF; &#x01FF;</span> <span title="U+0200">&#x0201; &#x0201;</span> <span title="U+0202">&#x0203; &#x0203;</span> <span title="U+0204">&#x0205; &#x0205;</span> <span title="U+0206">&#x0207; &#x0207;</span> <span title="U+0208">&#x0209; &#x0209;</span> <span title="U+020A">&#x020B; &#x020B;</span> <span title="U+020C">&#x020D; &#x020D;</span> <span title="U+020E">&#x020F; &#x020F;</span> <span title="U+0210">&#x0211; &#x0211;</span> <span title="U+0212">&#x0213; &#x0213;</span> <span title="U+0214">&#x0215; &#x0215;</span> <span title="U+0216">&#x0217; &#x0217;</span> <span title="U+0218">&#x0219; &#x0219;</span> <span title="U+021A">&#x021B; &#x021B;</span> <span title="U+021C">&#x021D; &#x021D;</span> <span title="U+021E">&#x021F; &#x021F;</span> <span title="U+0220">&#x019E; &#x019E;</span> <span title="U+0222">&#x0223; &#x0223;</span> <span title="U+0224">&#x0225; &#x0225;</span> <span title="U+0226">&#x0227; &#x0227;</span> <span title="U+0228">&#x0229; &#x0229;</span> <span title="U+022A">&#x022B; &#x022B;</span> <span title="U+022C">&#x022D; &#x022D;</span> <span title="U+022E">&#x022F; &#x022F;</span> <span title="U+0230">&#x0231; &#x0231;</span> <span title="U+0232">&#x0233; &#x0233;</span> <span title="U+023A">&#x2C65; &#x2C65;</span> <span title="U+023B">&#x023C; &#x023C;</span> <span title="U+023D">&#x019A; &#x019A;</span> <span title="U+023E">&#x2C66; &#x2C66;</span> <span title="U+0241">&#x0242; &#x0242;</span> <span title="U+0243">&#x0180; &#x0180;</span> <span title="U+0244">&#x0289; &#x0289;</span> <span title="U+0245">&#x028C; &#x028C;</span> <span title="U+0246">&#x0247; &#x0247;</span> <span title="U+0248">&#x0249; &#x0249;</span> <span title="U+024A">&#x024B; &#x024B;</span> <span title="U+024C">&#x024D; &#x024D;</span> <span title="U+024E">&#x024F; &#x024F;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x018D; &#x019B; &#x01AA; &#x01AB; &#x01BA; &#x01BB; &#x01BE; &#x01C0; &#x01C1; &#x01C2; &#x01C3; &#x01F0; &#x0221; &#x0234; &#x0235; &#x0236; &#x0237; &#x0238; &#x0239;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-009-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-009-ref.html
new file mode 100644
index 0000000000..e3a6808176
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-009-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-C, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2C61">&#x2C60; &#x2C60;</span> <span title="U+2C65">&#x023A; &#x023A;</span> <span title="U+2C66">&#x023E; &#x023E;</span> <span title="U+2C68">&#x2C67; &#x2C67;</span> <span title="U+2C6A">&#x2C69; &#x2C69;</span> <span title="U+2C6C">&#x2C6B; &#x2C6B;</span> <span title="U+2C73">&#x2C72; &#x2C72;</span> <span title="U+2C76">&#x2C75; &#x2C75;</span> </div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2C71; &#x2C74; &#x2C77; &#x2C78; &#x2C79; &#x2C7A; &#x2C7B; &#x2C7C; &#x2C7D;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-010-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-010-ref.html
new file mode 100644
index 0000000000..4554c2834e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-010-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-C, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2C60">&#x2C61; &#x2C61;</span> <span title="U+2C62">&#x026B; &#x026B;</span> <span title="U+2C63">&#x1D7D; &#x1D7D;</span> <span title="U+2C64">&#x027D; &#x027D;</span> <span title="U+2C67">&#x2C68; &#x2C68;</span> <span title="U+2C69">&#x2C6A; &#x2C6A;</span> <span title="U+2C6B">&#x2C6C; &#x2C6C;</span> <span title="U+2C6D">&#x0251; &#x0251;</span> <span title="U+2C6E">&#x0271; &#x0271;</span> <span title="U+2C6F">&#x0250; &#x0250;</span> <span title="U+2C70">&#x0252; &#x0252;</span> <span title="U+2C72">&#x2C73; &#x2C73;</span> <span title="U+2C75">&#x2C76; &#x2C76;</span> <span title="U+2C7E">&#x023F; &#x023F;</span> <span title="U+2C7F">&#x0240; &#x0240;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2C71; &#x2C74; &#x2C77; &#x2C78; &#x2C79; &#x2C7A; &#x2C7B; &#x2C7C; &#x2C7D;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-011-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-011-ref.html
new file mode 100644
index 0000000000..e5dad75eb0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-011-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Full-width Latin, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+FF41">&#xFF21; &#xFF21;</span> <span title="U+FF42">&#xFF22; &#xFF22;</span> <span title="U+FF43">&#xFF23; &#xFF23;</span> <span title="U+FF44">&#xFF24; &#xFF24;</span> <span title="U+FF45">&#xFF25; &#xFF25;</span> <span title="U+FF46">&#xFF26; &#xFF26;</span> <span title="U+FF47">&#xFF27; &#xFF27;</span> <span title="U+FF48">&#xFF28; &#xFF28;</span> <span title="U+FF49">&#xFF29; &#xFF29;</span> <span title="U+FF4A">&#xFF2A; &#xFF2A;</span> <span title="U+FF4B">&#xFF2B; &#xFF2B;</span> <span title="U+FF4C">&#xFF2C; &#xFF2C;</span> <span title="U+FF4D">&#xFF2D; &#xFF2D;</span> <span title="U+FF4E">&#xFF2E; &#xFF2E;</span> <span title="U+FF4F">&#xFF2F; &#xFF2F;</span> <span title="U+FF50">&#xFF30; &#xFF30;</span> <span title="U+FF51">&#xFF31; &#xFF31;</span> <span title="U+FF52">&#xFF32; &#xFF32;</span> <span title="U+FF53">&#xFF33; &#xFF33;</span> <span title="U+FF54">&#xFF34; &#xFF34;</span> <span title="U+FF55">&#xFF35; &#xFF35;</span> <span title="U+FF56">&#xFF36; &#xFF36;</span> <span title="U+FF57">&#xFF37; &#xFF37;</span> <span title="U+FF58">&#xFF38; &#xFF38;</span> <span title="U+FF59">&#xFF39; &#xFF39;</span> <span title="U+FF5A">&#xFF3A; &#xFF3A;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0138; &#x0149;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-012-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-012-ref.html
new file mode 100644
index 0000000000..e7a56f7c90
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-012-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Full-width Latin, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+FF21">&#xFF41; &#xFF41;</span> <span title="U+FF22">&#xFF42; &#xFF42;</span> <span title="U+FF23">&#xFF43; &#xFF43;</span> <span title="U+FF24">&#xFF44; &#xFF44;</span> <span title="U+FF25">&#xFF45; &#xFF45;</span> <span title="U+FF26">&#xFF46; &#xFF46;</span> <span title="U+FF27">&#xFF47; &#xFF47;</span> <span title="U+FF28">&#xFF48; &#xFF48;</span> <span title="U+FF29">&#xFF49; &#xFF49;</span> <span title="U+FF2A">&#xFF4A; &#xFF4A;</span> <span title="U+FF2B">&#xFF4B; &#xFF4B;</span> <span title="U+FF2C">&#xFF4C; &#xFF4C;</span> <span title="U+FF2D">&#xFF4D; &#xFF4D;</span> <span title="U+FF2E">&#xFF4E; &#xFF4E;</span> <span title="U+FF2F">&#xFF4F; &#xFF4F;</span> <span title="U+FF30">&#xFF50; &#xFF50;</span> <span title="U+FF31">&#xFF51; &#xFF51;</span> <span title="U+FF32">&#xFF52; &#xFF52;</span> <span title="U+FF33">&#xFF53; &#xFF53;</span> <span title="U+FF34">&#xFF54; &#xFF54;</span> <span title="U+FF35">&#xFF55; &#xFF55;</span> <span title="U+FF36">&#xFF56; &#xFF56;</span> <span title="U+FF37">&#xFF57; &#xFF57;</span> <span title="U+FF38">&#xFF58; &#xFF58;</span> <span title="U+FF39">&#xFF59; &#xFF59;</span> <span title="U+FF3A">&#xFF5A; &#xFF5A;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0138; &#x0149;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-014-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-014-ref.html
new file mode 100644
index 0000000000..cd42f018b0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-014-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek and Coptic, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0371">&#x0370; &#x0370;</span> <span title="U+0373">&#x0372; &#x0372;</span> <span title="U+0377">&#x0376; &#x0376;</span> <span title="U+037B">&#x03FD; &#x03FD;</span> <span title="U+037C">&#x03FE; &#x03FE;</span> <span title="U+037D">&#x03FF; &#x03FF;</span> <span title="U+03AC">&#x0386; &#x0386;</span> <span title="U+03AD">&#x0388; &#x0388;</span> <span title="U+03AE">&#x0389; &#x0389;</span> <span title="U+03AF">&#x038A; &#x038A;</span> <span title="U+03B1">&#x0391; &#x0391;</span> <span title="U+03B2">&#x0392; &#x0392;</span> <span title="U+03B3">&#x0393; &#x0393;</span> <span title="U+03B4">&#x0394; &#x0394;</span> <span title="U+03B5">&#x0395; &#x0395;</span> <span title="U+03B6">&#x0396; &#x0396;</span> <span title="U+03B7">&#x0397; &#x0397;</span> <span title="U+03B8">&#x0398; &#x0398;</span> <span title="U+03B9">&#x0399; &#x0399;</span> <span title="U+03BA">&#x039A; &#x039A;</span> <span title="U+03BB">&#x039B; &#x039B;</span> <span title="U+03BC">&#x039C; &#x039C;</span> <span title="U+03BD">&#x039D; &#x039D;</span> <span title="U+03BE">&#x039E; &#x039E;</span> <span title="U+03BF">&#x039F; &#x039F;</span> <span title="U+03C0">&#x03A0; &#x03A0;</span> <span title="U+03C1">&#x03A1; &#x03A1;</span> <span title="U+03C2">&#x03A3; &#x03A3;</span> <span title="U+03C3">&#x03A3; &#x03A3;</span> <span title="U+03C4">&#x03A4; &#x03A4;</span> <span title="U+03C5">&#x03A5; &#x03A5;</span> <span title="U+03C6">&#x03A6; &#x03A6;</span> <span title="U+03C7">&#x03A7; &#x03A7;</span> <span title="U+03C8">&#x03A8; &#x03A8;</span> <span title="U+03C9">&#x03A9; &#x03A9;</span> <span title="U+03CA">&#x03AA; &#x03AA;</span> <span title="U+03CB">&#x03AB; &#x03AB;</span> <span title="U+03CC">&#x038C; &#x038C;</span> <span title="U+03CD">&#x038E; &#x038E;</span> <span title="U+03CE">&#x038F; &#x038F;</span> <span title="U+03D0">&#x0392; &#x0392;</span> <span title="U+03D1">&#x0398; &#x0398;</span> <span title="U+03D5">&#x03A6; &#x03A6;</span> <span title="U+03D6">&#x03A0; &#x03A0;</span> <span title="U+03D7">&#x03CF; &#x03CF;</span> <span title="U+03D9">&#x03D8; &#x03D8;</span> <span title="U+03DB">&#x03DA; &#x03DA;</span> <span title="U+03DD">&#x03DC; &#x03DC;</span> <span title="U+03DF">&#x03DE; &#x03DE;</span> <span title="U+03E1">&#x03E0; &#x03E0;</span> <span title="U+03E3">&#x03E2; &#x03E2;</span> <span title="U+03E5">&#x03E4; &#x03E4;</span> <span title="U+03E7">&#x03E6; &#x03E6;</span> <span title="U+03E9">&#x03E8; &#x03E8;</span> <span title="U+03EB">&#x03EA; &#x03EA;</span> <span title="U+03ED">&#x03EC; &#x03EC;</span> <span title="U+03EF">&#x03EE; &#x03EE;</span> <span title="U+03F0">&#x039A; &#x039A;</span> <span title="U+03F1">&#x03A1; &#x03A1;</span> <span title="U+03F2">&#x03F9; &#x03F9;</span> <span title="U+03F3">&#x037F; &#x037F;</span> <span title="U+03F5">&#x0395; &#x0395;</span> <span title="U+03F8">&#x03F7; &#x03F7;</span> <span title="U+03FB">&#x03FA; &#x03FA;</span> </div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0374; &#x0375; &#x037A; &#x037E; &#x0384; &#x0385; &#x0387; &#x0390; &#x03B0; &#x03D2; &#x03D3; &#x03D4; &#x03F6; &#x03FC;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-015-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-015-ref.html
new file mode 100644
index 0000000000..4c33e53cf9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-015-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek and Coptic, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0370">&#x0371; &#x0371;</span> <span title="U+0372">&#x0373; &#x0373;</span> <span title="U+0376">&#x0377; &#x0377;</span> <span title="U+037F">&#x03F3; &#x03F3;</span> <span title="U+0386">&#x03AC; &#x03AC;</span> <span title="U+0388">&#x03AD; &#x03AD;</span> <span title="U+0389">&#x03AE; &#x03AE;</span> <span title="U+038A">&#x03AF; &#x03AF;</span> <span title="U+038C">&#x03CC; &#x03CC;</span> <span title="U+038E">&#x03CD; &#x03CD;</span> <span title="U+038F">&#x03CE; &#x03CE;</span> <span title="U+0391">&#x03B1; &#x03B1;</span> <span title="U+0392">&#x03B2; &#x03B2;</span> <span title="U+0393">&#x03B3; &#x03B3;</span> <span title="U+0394">&#x03B4; &#x03B4;</span> <span title="U+0395">&#x03B5; &#x03B5;</span> <span title="U+0396">&#x03B6; &#x03B6;</span> <span title="U+0397">&#x03B7; &#x03B7;</span> <span title="U+0398">&#x03B8; &#x03B8;</span> <span title="U+0399">&#x03B9; &#x03B9;</span> <span title="U+039A">&#x03BA; &#x03BA;</span> <span title="U+039B">&#x03BB; &#x03BB;</span> <span title="U+039C">&#x03BC; &#x03BC;</span> <span title="U+039D">&#x03BD; &#x03BD;</span> <span title="U+039E">&#x03BE; &#x03BE;</span> <span title="U+039F">&#x03BF; &#x03BF;</span> <span title="U+03A0">&#x03C0; &#x03C0;</span> <span title="U+03A1">&#x03C1; &#x03C1;</span> <span title="U+03A3">&#x03C3; &#x03C3;</span> <span title="U+03A4">&#x03C4; &#x03C4;</span> <span title="U+03A5">&#x03C5; &#x03C5;</span> <span title="U+03A6">&#x03C6; &#x03C6;</span> <span title="U+03A7">&#x03C7; &#x03C7;</span> <span title="U+03A8">&#x03C8; &#x03C8;</span> <span title="U+03A9">&#x03C9; &#x03C9;</span> <span title="U+03AA">&#x03CA; &#x03CA;</span> <span title="U+03AB">&#x03CB; &#x03CB;</span> <span title="U+03CF">&#x03D7; &#x03D7;</span> <span title="U+03D8">&#x03D9; &#x03D9;</span> <span title="U+03DA">&#x03DB; &#x03DB;</span> <span title="U+03DC">&#x03DD; &#x03DD;</span> <span title="U+03DE">&#x03DF; &#x03DF;</span> <span title="U+03E0">&#x03E1; &#x03E1;</span> <span title="U+03E2">&#x03E3; &#x03E3;</span> <span title="U+03E4">&#x03E5; &#x03E5;</span> <span title="U+03E6">&#x03E7; &#x03E7;</span> <span title="U+03E8">&#x03E9; &#x03E9;</span> <span title="U+03EA">&#x03EB; &#x03EB;</span> <span title="U+03EC">&#x03ED; &#x03ED;</span> <span title="U+03EE">&#x03EF; &#x03EF;</span> <span title="U+03F4">&#x03B8; &#x03B8;</span> <span title="U+03F7">&#x03F8; &#x03F8;</span> <span title="U+03F9">&#x03F2; &#x03F2;</span> <span title="U+03FA">&#x03FB; &#x03FB;</span> <span title="U+03FD">&#x037B; &#x037B;</span> <span title="U+03FE">&#x037C; &#x037C;</span> <span title="U+03FF">&#x037D; &#x037D;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0374; &#x0375; &#x037A; &#x037E; &#x0384; &#x0385; &#x0387; &#x0390; &#x03B0; &#x03D2; &#x03D3; &#x03D4; &#x03F6; &#x03FC;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-016-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-016-ref.html
new file mode 100644
index 0000000000..b7c434ffb1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-016-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek Extended, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1F00">&#x1F08; &#x1F08;</span> <span title="U+1F01">&#x1F09; &#x1F09;</span> <span title="U+1F02">&#x1F0A; &#x1F0A;</span> <span title="U+1F03">&#x1F0B; &#x1F0B;</span> <span title="U+1F04">&#x1F0C; &#x1F0C;</span> <span title="U+1F05">&#x1F0D; &#x1F0D;</span> <span title="U+1F06">&#x1F0E; &#x1F0E;</span> <span title="U+1F07">&#x1F0F; &#x1F0F;</span> <span title="U+1F10">&#x1F18; &#x1F18;</span> <span title="U+1F11">&#x1F19; &#x1F19;</span> <span title="U+1F12">&#x1F1A; &#x1F1A;</span> <span title="U+1F13">&#x1F1B; &#x1F1B;</span> <span title="U+1F14">&#x1F1C; &#x1F1C;</span> <span title="U+1F15">&#x1F1D; &#x1F1D;</span> <span title="U+1F20">&#x1F28; &#x1F28;</span> <span title="U+1F21">&#x1F29; &#x1F29;</span> <span title="U+1F22">&#x1F2A; &#x1F2A;</span> <span title="U+1F23">&#x1F2B; &#x1F2B;</span> <span title="U+1F24">&#x1F2C; &#x1F2C;</span> <span title="U+1F25">&#x1F2D; &#x1F2D;</span> <span title="U+1F26">&#x1F2E; &#x1F2E;</span> <span title="U+1F27">&#x1F2F; &#x1F2F;</span> <span title="U+1F30">&#x1F38; &#x1F38;</span> <span title="U+1F31">&#x1F39; &#x1F39;</span> <span title="U+1F32">&#x1F3A; &#x1F3A;</span> <span title="U+1F33">&#x1F3B; &#x1F3B;</span> <span title="U+1F34">&#x1F3C; &#x1F3C;</span> <span title="U+1F35">&#x1F3D; &#x1F3D;</span> <span title="U+1F36">&#x1F3E; &#x1F3E;</span> <span title="U+1F37">&#x1F3F; &#x1F3F;</span> <span title="U+1F40">&#x1F48; &#x1F48;</span> <span title="U+1F41">&#x1F49; &#x1F49;</span> <span title="U+1F42">&#x1F4A; &#x1F4A;</span> <span title="U+1F43">&#x1F4B; &#x1F4B;</span> <span title="U+1F44">&#x1F4C; &#x1F4C;</span> <span title="U+1F45">&#x1F4D; &#x1F4D;</span> <span title="U+1F51">&#x1F59; &#x1F59;</span> <span title="U+1F53">&#x1F5B; &#x1F5B;</span> <span title="U+1F55">&#x1F5D; &#x1F5D;</span> <span title="U+1F57">&#x1F5F; &#x1F5F;</span> <span title="U+1F60">&#x1F68; &#x1F68;</span> <span title="U+1F61">&#x1F69; &#x1F69;</span> <span title="U+1F62">&#x1F6A; &#x1F6A;</span> <span title="U+1F63">&#x1F6B; &#x1F6B;</span> <span title="U+1F64">&#x1F6C; &#x1F6C;</span> <span title="U+1F65">&#x1F6D; &#x1F6D;</span> <span title="U+1F66">&#x1F6E; &#x1F6E;</span> <span title="U+1F67">&#x1F6F; &#x1F6F;</span> <span title="U+1F70">&#x1FBA; &#x1FBA;</span> <span title="U+1F71">&#x1FBB; &#x1FBB;</span> <span title="U+1F72">&#x1FC8; &#x1FC8;</span> <span title="U+1F73">&#x1FC9; &#x1FC9;</span> <span title="U+1F74">&#x1FCA; &#x1FCA;</span> <span title="U+1F75">&#x1FCB; &#x1FCB;</span> <span title="U+1F76">&#x1FDA; &#x1FDA;</span> <span title="U+1F77">&#x1FDB; &#x1FDB;</span> <span title="U+1F78">&#x1FF8; &#x1FF8;</span> <span title="U+1F79">&#x1FF9; &#x1FF9;</span> <span title="U+1F7A">&#x1FEA; &#x1FEA;</span> <span title="U+1F7B">&#x1FEB; &#x1FEB;</span> <span title="U+1F7C">&#x1FFA; &#x1FFA;</span> <span title="U+1F7D">&#x1FFB; &#x1FFB;</span> <span title="U+1F80">&#x1F88; &#x1F88;</span> <span title="U+1F81">&#x1F89; &#x1F89;</span> <span title="U+1F82">&#x1F8A; &#x1F8A;</span> <span title="U+1F83">&#x1F8B; &#x1F8B;</span> <span title="U+1F84">&#x1F8C; &#x1F8C;</span> <span title="U+1F85">&#x1F8D; &#x1F8D;</span> <span title="U+1F86">&#x1F8E; &#x1F8E;</span> <span title="U+1F87">&#x1F8F; &#x1F8F;</span> <span title="U+1F90">&#x1F98; &#x1F98;</span> <span title="U+1F91">&#x1F99; &#x1F99;</span> <span title="U+1F92">&#x1F9A; &#x1F9A;</span> <span title="U+1F93">&#x1F9B; &#x1F9B;</span> <span title="U+1F94">&#x1F9C; &#x1F9C;</span> <span title="U+1F95">&#x1F9D; &#x1F9D;</span> <span title="U+1F96">&#x1F9E; &#x1F9E;</span> <span title="U+1F97">&#x1F9F; &#x1F9F;</span> <span title="U+1FA0">&#x1FA8; &#x1FA8;</span> <span title="U+1FA1">&#x1FA9; &#x1FA9;</span> <span title="U+1FA2">&#x1FAA; &#x1FAA;</span> <span title="U+1FA3">&#x1FAB; &#x1FAB;</span> <span title="U+1FA4">&#x1FAC; &#x1FAC;</span> <span title="U+1FA5">&#x1FAD; &#x1FAD;</span> <span title="U+1FA6">&#x1FAE; &#x1FAE;</span> <span title="U+1FA7">&#x1FAF; &#x1FAF;</span> <span title="U+1FB0">&#x1FB8; &#x1FB8;</span> <span title="U+1FB1">&#x1FB9; &#x1FB9;</span> <span title="U+1FB3">&#x1FBC; &#x1FBC;</span> <span title="U+1FBE">&#x0399; &#x0399;</span> <span title="U+1FC3">&#x1FCC; &#x1FCC;</span> <span title="U+1FD0">&#x1FD8; &#x1FD8;</span> <span title="U+1FD1">&#x1FD9; &#x1FD9;</span> <span title="U+1FE0">&#x1FE8; &#x1FE8;</span> <span title="U+1FE1">&#x1FE9; &#x1FE9;</span> <span title="U+1FE5">&#x1FEC; &#x1FEC;</span> <span title="U+1FF3">&#x1FFC; &#x1FFC;</span></div>
+<!--Notes:
+Glyphs for the following characters are not available in the Doulos Sil font, so will need to be tested at a later date: &#xA79B; &#xA79D; &#xA79F; &#xA79A; &#xA79C; &#xA79E;
+Characters from this block that do not have case equivalents: &#x1F50; &#x1F52; &#x1F54; &#x1F56; &#x1FB2; &#x1FB4; &#x1FB6; &#x1FB7; &#x1FBD; &#x1FBF; &#x1FC0; &#x1FC1; &#x1FC2; &#x1FC4; &#x1FC6; &#x1FC7; &#x1FCD; &#x1FCE; &#x1FCF; &#x1FD2; &#x1FD3; &#x1FD6; &#x1FD7; &#x1FDD; &#x1FDE; &#x1FDF; &#x1FE2; &#x1FE3; &#x1FE4; &#x1FE6; &#x1FE7; &#x1FED; &#x1FEE; &#x1FEF; &#x1FF2; &#x1FF4; &#x1FF6; &#x1FF7; &#x1FFD; &#x1FFE;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-017-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-017-ref.html
new file mode 100644
index 0000000000..97cdadf8bf
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-017-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek Extended, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+1F08">&#x1F00; &#x1F00;</span> <span title="U+1F09">&#x1F01; &#x1F01;</span> <span title="U+1F0A">&#x1F02; &#x1F02;</span> <span title="U+1F0B">&#x1F03; &#x1F03;</span> <span title="U+1F0C">&#x1F04; &#x1F04;</span> <span title="U+1F0D">&#x1F05; &#x1F05;</span> <span title="U+1F0E">&#x1F06; &#x1F06;</span> <span title="U+1F0F">&#x1F07; &#x1F07;</span> <span title="U+1F18">&#x1F10; &#x1F10;</span> <span title="U+1F19">&#x1F11; &#x1F11;</span> <span title="U+1F1A">&#x1F12; &#x1F12;</span> <span title="U+1F1B">&#x1F13; &#x1F13;</span> <span title="U+1F1C">&#x1F14; &#x1F14;</span> <span title="U+1F1D">&#x1F15; &#x1F15;</span> <span title="U+1F28">&#x1F20; &#x1F20;</span> <span title="U+1F29">&#x1F21; &#x1F21;</span> <span title="U+1F2A">&#x1F22; &#x1F22;</span> <span title="U+1F2B">&#x1F23; &#x1F23;</span> <span title="U+1F2C">&#x1F24; &#x1F24;</span> <span title="U+1F2D">&#x1F25; &#x1F25;</span> <span title="U+1F2E">&#x1F26; &#x1F26;</span> <span title="U+1F2F">&#x1F27; &#x1F27;</span> <span title="U+1F38">&#x1F30; &#x1F30;</span> <span title="U+1F39">&#x1F31; &#x1F31;</span> <span title="U+1F3A">&#x1F32; &#x1F32;</span> <span title="U+1F3B">&#x1F33; &#x1F33;</span> <span title="U+1F3C">&#x1F34; &#x1F34;</span> <span title="U+1F3D">&#x1F35; &#x1F35;</span> <span title="U+1F3E">&#x1F36; &#x1F36;</span> <span title="U+1F3F">&#x1F37; &#x1F37;</span> <span title="U+1F48">&#x1F40; &#x1F40;</span> <span title="U+1F49">&#x1F41; &#x1F41;</span> <span title="U+1F4A">&#x1F42; &#x1F42;</span> <span title="U+1F4B">&#x1F43; &#x1F43;</span> <span title="U+1F4C">&#x1F44; &#x1F44;</span> <span title="U+1F4D">&#x1F45; &#x1F45;</span> <span title="U+1F59">&#x1F51; &#x1F51;</span> <span title="U+1F5B">&#x1F53; &#x1F53;</span> <span title="U+1F5D">&#x1F55; &#x1F55;</span> <span title="U+1F5F">&#x1F57; &#x1F57;</span> <span title="U+1F68">&#x1F60; &#x1F60;</span> <span title="U+1F69">&#x1F61; &#x1F61;</span> <span title="U+1F6A">&#x1F62; &#x1F62;</span> <span title="U+1F6B">&#x1F63; &#x1F63;</span> <span title="U+1F6C">&#x1F64; &#x1F64;</span> <span title="U+1F6D">&#x1F65; &#x1F65;</span> <span title="U+1F6E">&#x1F66; &#x1F66;</span> <span title="U+1F6F">&#x1F67; &#x1F67;</span> <span title="U+1F88">&#x1F80; &#x1F80;</span> <span title="U+1F89">&#x1F81; &#x1F81;</span> <span title="U+1F8A">&#x1F82; &#x1F82;</span> <span title="U+1F8B">&#x1F83; &#x1F83;</span> <span title="U+1F8C">&#x1F84; &#x1F84;</span> <span title="U+1F8D">&#x1F85; &#x1F85;</span> <span title="U+1F8E">&#x1F86; &#x1F86;</span> <span title="U+1F8F">&#x1F87; &#x1F87;</span> <span title="U+1F98">&#x1F90; &#x1F90;</span> <span title="U+1F99">&#x1F91; &#x1F91;</span> <span title="U+1F9A">&#x1F92; &#x1F92;</span> <span title="U+1F9B">&#x1F93; &#x1F93;</span> <span title="U+1F9C">&#x1F94; &#x1F94;</span> <span title="U+1F9D">&#x1F95; &#x1F95;</span> <span title="U+1F9E">&#x1F96; &#x1F96;</span> <span title="U+1F9F">&#x1F97; &#x1F97;</span> <span title="U+1FA8">&#x1FA0; &#x1FA0;</span> <span title="U+1FA9">&#x1FA1; &#x1FA1;</span> <span title="U+1FAA">&#x1FA2; &#x1FA2;</span> <span title="U+1FAB">&#x1FA3; &#x1FA3;</span> <span title="U+1FAC">&#x1FA4; &#x1FA4;</span> <span title="U+1FAD">&#x1FA5; &#x1FA5;</span> <span title="U+1FAE">&#x1FA6; &#x1FA6;</span> <span title="U+1FAF">&#x1FA7; &#x1FA7;</span> <span title="U+1FB8">&#x1FB0; &#x1FB0;</span> <span title="U+1FB9">&#x1FB1; &#x1FB1;</span> <span title="U+1FBA">&#x1F70; &#x1F70;</span> <span title="U+1FBB">&#x1F71; &#x1F71;</span> <span title="U+1FBC">&#x1FB3; &#x1FB3;</span> <span title="U+1FC8">&#x1F72; &#x1F72;</span> <span title="U+1FC9">&#x1F73; &#x1F73;</span> <span title="U+1FCA">&#x1F74; &#x1F74;</span> <span title="U+1FCB">&#x1F75; &#x1F75;</span> <span title="U+1FCC">&#x1FC3; &#x1FC3;</span> <span title="U+1FD8">&#x1FD0; &#x1FD0;</span> <span title="U+1FD9">&#x1FD1; &#x1FD1;</span> <span title="U+1FDA">&#x1F76; &#x1F76;</span> <span title="U+1FDB">&#x1F77; &#x1F77;</span> <span title="U+1FE8">&#x1FE0; &#x1FE0;</span> <span title="U+1FE9">&#x1FE1; &#x1FE1;</span> <span title="U+1FEA">&#x1F7A; &#x1F7A;</span> <span title="U+1FEB">&#x1F7B; &#x1F7B;</span> <span title="U+1FEC">&#x1FE5; &#x1FE5;</span> <span title="U+1FF8">&#x1F78; &#x1F78;</span> <span title="U+1FF9">&#x1F79; &#x1F79;</span> <span title="U+1FFA">&#x1F7C; &#x1F7C;</span> <span title="U+1FFB">&#x1F7D; &#x1F7D;</span> <span title="U+1FFC">&#x1FF3; &#x1FF3;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x1F50; &#x1F52; &#x1F54; &#x1F56; &#x1FB2; &#x1FB4; &#x1FB6; &#x1FB7; &#x1FBD; &#x1FBF; &#x1FC0; &#x1FC1; &#x1FC2; &#x1FC4; &#x1FC6; &#x1FC7; &#x1FCD; &#x1FCE; &#x1FCF; &#x1FD2; &#x1FD3; &#x1FD6; &#x1FD7; &#x1FDD; &#x1FDE; &#x1FDF; &#x1FE2; &#x1FE3; &#x1FE4; &#x1FE6; &#x1FE7; &#x1FED; &#x1FEE; &#x1FEF; &#x1FF2; &#x1FF4; &#x1FF6; &#x1FF7; &#x1FFD; &#x1FFE;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-018-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-018-ref.html
new file mode 100644
index 0000000000..362022d7ce
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-018-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0430">&#x0410; &#x0410;</span> <span title="U+0431">&#x0411; &#x0411;</span> <span title="U+0432">&#x0412; &#x0412;</span> <span title="U+0433">&#x0413; &#x0413;</span> <span title="U+0434">&#x0414; &#x0414;</span> <span title="U+0435">&#x0415; &#x0415;</span> <span title="U+0436">&#x0416; &#x0416;</span> <span title="U+0437">&#x0417; &#x0417;</span> <span title="U+0438">&#x0418; &#x0418;</span> <span title="U+0439">&#x0419; &#x0419;</span> <span title="U+043A">&#x041A; &#x041A;</span> <span title="U+043B">&#x041B; &#x041B;</span> <span title="U+043C">&#x041C; &#x041C;</span> <span title="U+043D">&#x041D; &#x041D;</span> <span title="U+043E">&#x041E; &#x041E;</span> <span title="U+043F">&#x041F; &#x041F;</span> <span title="U+0440">&#x0420; &#x0420;</span> <span title="U+0441">&#x0421; &#x0421;</span> <span title="U+0442">&#x0422; &#x0422;</span> <span title="U+0443">&#x0423; &#x0423;</span> <span title="U+0444">&#x0424; &#x0424;</span> <span title="U+0445">&#x0425; &#x0425;</span> <span title="U+0446">&#x0426; &#x0426;</span> <span title="U+0447">&#x0427; &#x0427;</span> <span title="U+0448">&#x0428; &#x0428;</span> <span title="U+0449">&#x0429; &#x0429;</span> <span title="U+044A">&#x042A; &#x042A;</span> <span title="U+044B">&#x042B; &#x042B;</span> <span title="U+044C">&#x042C; &#x042C;</span> <span title="U+044D">&#x042D; &#x042D;</span> <span title="U+044E">&#x042E; &#x042E;</span> <span title="U+044F">&#x042F; &#x042F;</span> <span title="U+0450">&#x0400; &#x0400;</span> <span title="U+0451">&#x0401; &#x0401;</span> <span title="U+0452">&#x0402; &#x0402;</span> <span title="U+0453">&#x0403; &#x0403;</span> <span title="U+0454">&#x0404; &#x0404;</span> <span title="U+0455">&#x0405; &#x0405;</span> <span title="U+0456">&#x0406; &#x0406;</span> <span title="U+0457">&#x0407; &#x0407;</span> <span title="U+0458">&#x0408; &#x0408;</span> <span title="U+0459">&#x0409; &#x0409;</span> <span title="U+045A">&#x040A; &#x040A;</span> <span title="U+045B">&#x040B; &#x040B;</span> <span title="U+045C">&#x040C; &#x040C;</span> <span title="U+045D">&#x040D; &#x040D;</span> <span title="U+045E">&#x040E; &#x040E;</span> <span title="U+045F">&#x040F; &#x040F;</span> <span title="U+0461">&#x0460; &#x0460;</span> <span title="U+0463">&#x0462; &#x0462;</span> <span title="U+0465">&#x0464; &#x0464;</span> <span title="U+0467">&#x0466; &#x0466;</span> <span title="U+0469">&#x0468; &#x0468;</span> <span title="U+046B">&#x046A; &#x046A;</span> <span title="U+046D">&#x046C; &#x046C;</span> <span title="U+046F">&#x046E; &#x046E;</span> <span title="U+0471">&#x0470; &#x0470;</span> <span title="U+0473">&#x0472; &#x0472;</span> <span title="U+0475">&#x0474; &#x0474;</span> <span title="U+0477">&#x0476; &#x0476;</span> <span title="U+0479">&#x0478; &#x0478;</span> <span title="U+047B">&#x047A; &#x047A;</span> <span title="U+047D">&#x047C; &#x047C;</span> <span title="U+047F">&#x047E; &#x047E;</span> <span title="U+0481">&#x0480; &#x0480;</span> <span title="U+048B">&#x048A; &#x048A;</span> <span title="U+048D">&#x048C; &#x048C;</span> <span title="U+048F">&#x048E; &#x048E;</span> <span title="U+0491">&#x0490; &#x0490;</span> <span title="U+0493">&#x0492; &#x0492;</span> <span title="U+0495">&#x0494; &#x0494;</span> <span title="U+0497">&#x0496; &#x0496;</span> <span title="U+0499">&#x0498; &#x0498;</span> <span title="U+049B">&#x049A; &#x049A;</span> <span title="U+049D">&#x049C; &#x049C;</span> <span title="U+049F">&#x049E; &#x049E;</span> <span title="U+04A1">&#x04A0; &#x04A0;</span> <span title="U+04A3">&#x04A2; &#x04A2;</span> <span title="U+04A5">&#x04A4; &#x04A4;</span> <span title="U+04A7">&#x04A6; &#x04A6;</span> <span title="U+04A9">&#x04A8; &#x04A8;</span> <span title="U+04AB">&#x04AA; &#x04AA;</span> <span title="U+04AD">&#x04AC; &#x04AC;</span> <span title="U+04AF">&#x04AE; &#x04AE;</span> <span title="U+04B1">&#x04B0; &#x04B0;</span> <span title="U+04B3">&#x04B2; &#x04B2;</span> <span title="U+04B5">&#x04B4; &#x04B4;</span> <span title="U+04B7">&#x04B6; &#x04B6;</span> <span title="U+04B9">&#x04B8; &#x04B8;</span> <span title="U+04BB">&#x04BA; &#x04BA;</span> <span title="U+04BD">&#x04BC; &#x04BC;</span> <span title="U+04BF">&#x04BE; &#x04BE;</span> <span title="U+04C2">&#x04C1; &#x04C1;</span> <span title="U+04C4">&#x04C3; &#x04C3;</span> <span title="U+04C6">&#x04C5; &#x04C5;</span> <span title="U+04C8">&#x04C7; &#x04C7;</span> <span title="U+04CA">&#x04C9; &#x04C9;</span> <span title="U+04CC">&#x04CB; &#x04CB;</span> <span title="U+04CE">&#x04CD; &#x04CD;</span> <span title="U+04CF">&#x04C0; &#x04C0;</span> <span title="U+04D1">&#x04D0; &#x04D0;</span> <span title="U+04D3">&#x04D2; &#x04D2;</span> <span title="U+04D5">&#x04D4; &#x04D4;</span> <span title="U+04D7">&#x04D6; &#x04D6;</span> <span title="U+04D9">&#x04D8; &#x04D8;</span> <span title="U+04DB">&#x04DA; &#x04DA;</span> <span title="U+04DD">&#x04DC; &#x04DC;</span> <span title="U+04DF">&#x04DE; &#x04DE;</span> <span title="U+04E1">&#x04E0; &#x04E0;</span> <span title="U+04E3">&#x04E2; &#x04E2;</span> <span title="U+04E5">&#x04E4; &#x04E4;</span> <span title="U+04E7">&#x04E6; &#x04E6;</span> <span title="U+04E9">&#x04E8; &#x04E8;</span> <span title="U+04EB">&#x04EA; &#x04EA;</span> <span title="U+04ED">&#x04EC; &#x04EC;</span> <span title="U+04EF">&#x04EE; &#x04EE;</span> <span title="U+04F1">&#x04F0; &#x04F0;</span> <span title="U+04F3">&#x04F2; &#x04F2;</span> <span title="U+04F5">&#x04F4; &#x04F4;</span> <span title="U+04F7">&#x04F6; &#x04F6;</span> <span title="U+04F9">&#x04F8; &#x04F8;</span> <span title="U+04FB">&#x04FA; &#x04FA;</span> <span title="U+04FD">&#x04FC; &#x04FC;</span> <span title="U+04FF">&#x04FE; &#x04FE;</span> </div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0482; &#x0483; &#x0484; &#x0485; &#x0486; &#x0487; &#x0488; &#x0489;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-019-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-019-ref.html
new file mode 100644
index 0000000000..03616d7d7a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-019-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0400">&#x0450; &#x0450;</span> <span title="U+0401">&#x0451; &#x0451;</span> <span title="U+0402">&#x0452; &#x0452;</span> <span title="U+0403">&#x0453; &#x0453;</span> <span title="U+0404">&#x0454; &#x0454;</span> <span title="U+0405">&#x0455; &#x0455;</span> <span title="U+0406">&#x0456; &#x0456;</span> <span title="U+0407">&#x0457; &#x0457;</span> <span title="U+0408">&#x0458; &#x0458;</span> <span title="U+0409">&#x0459; &#x0459;</span> <span title="U+040A">&#x045A; &#x045A;</span> <span title="U+040B">&#x045B; &#x045B;</span> <span title="U+040C">&#x045C; &#x045C;</span> <span title="U+040D">&#x045D; &#x045D;</span> <span title="U+040E">&#x045E; &#x045E;</span> <span title="U+040F">&#x045F; &#x045F;</span> <span title="U+0410">&#x0430; &#x0430;</span> <span title="U+0411">&#x0431; &#x0431;</span> <span title="U+0412">&#x0432; &#x0432;</span> <span title="U+0413">&#x0433; &#x0433;</span> <span title="U+0414">&#x0434; &#x0434;</span> <span title="U+0415">&#x0435; &#x0435;</span> <span title="U+0416">&#x0436; &#x0436;</span> <span title="U+0417">&#x0437; &#x0437;</span> <span title="U+0418">&#x0438; &#x0438;</span> <span title="U+0419">&#x0439; &#x0439;</span> <span title="U+041A">&#x043A; &#x043A;</span> <span title="U+041B">&#x043B; &#x043B;</span> <span title="U+041C">&#x043C; &#x043C;</span> <span title="U+041D">&#x043D; &#x043D;</span> <span title="U+041E">&#x043E; &#x043E;</span> <span title="U+041F">&#x043F; &#x043F;</span> <span title="U+0420">&#x0440; &#x0440;</span> <span title="U+0421">&#x0441; &#x0441;</span> <span title="U+0422">&#x0442; &#x0442;</span> <span title="U+0423">&#x0443; &#x0443;</span> <span title="U+0424">&#x0444; &#x0444;</span> <span title="U+0425">&#x0445; &#x0445;</span> <span title="U+0426">&#x0446; &#x0446;</span> <span title="U+0427">&#x0447; &#x0447;</span> <span title="U+0428">&#x0448; &#x0448;</span> <span title="U+0429">&#x0449; &#x0449;</span> <span title="U+042A">&#x044A; &#x044A;</span> <span title="U+042B">&#x044B; &#x044B;</span> <span title="U+042C">&#x044C; &#x044C;</span> <span title="U+042D">&#x044D; &#x044D;</span> <span title="U+042E">&#x044E; &#x044E;</span> <span title="U+042F">&#x044F; &#x044F;</span> <span title="U+0460">&#x0461; &#x0461;</span> <span title="U+0462">&#x0463; &#x0463;</span> <span title="U+0464">&#x0465; &#x0465;</span> <span title="U+0466">&#x0467; &#x0467;</span> <span title="U+0468">&#x0469; &#x0469;</span> <span title="U+046A">&#x046B; &#x046B;</span> <span title="U+046C">&#x046D; &#x046D;</span> <span title="U+046E">&#x046F; &#x046F;</span> <span title="U+0470">&#x0471; &#x0471;</span> <span title="U+0472">&#x0473; &#x0473;</span> <span title="U+0474">&#x0475; &#x0475;</span> <span title="U+0476">&#x0477; &#x0477;</span> <span title="U+0478">&#x0479; &#x0479;</span> <span title="U+047A">&#x047B; &#x047B;</span> <span title="U+047C">&#x047D; &#x047D;</span> <span title="U+047E">&#x047F; &#x047F;</span> <span title="U+0480">&#x0481; &#x0481;</span> <span title="U+048A">&#x048B; &#x048B;</span> <span title="U+048C">&#x048D; &#x048D;</span> <span title="U+048E">&#x048F; &#x048F;</span> <span title="U+0490">&#x0491; &#x0491;</span> <span title="U+0492">&#x0493; &#x0493;</span> <span title="U+0494">&#x0495; &#x0495;</span> <span title="U+0496">&#x0497; &#x0497;</span> <span title="U+0498">&#x0499; &#x0499;</span> <span title="U+049A">&#x049B; &#x049B;</span> <span title="U+049C">&#x049D; &#x049D;</span> <span title="U+049E">&#x049F; &#x049F;</span> <span title="U+04A0">&#x04A1; &#x04A1;</span> <span title="U+04A2">&#x04A3; &#x04A3;</span> <span title="U+04A4">&#x04A5; &#x04A5;</span> <span title="U+04A6">&#x04A7; &#x04A7;</span> <span title="U+04A8">&#x04A9; &#x04A9;</span> <span title="U+04AA">&#x04AB; &#x04AB;</span> <span title="U+04AC">&#x04AD; &#x04AD;</span> <span title="U+04AE">&#x04AF; &#x04AF;</span> <span title="U+04B0">&#x04B1; &#x04B1;</span> <span title="U+04B2">&#x04B3; &#x04B3;</span> <span title="U+04B4">&#x04B5; &#x04B5;</span> <span title="U+04B6">&#x04B7; &#x04B7;</span> <span title="U+04B8">&#x04B9; &#x04B9;</span> <span title="U+04BA">&#x04BB; &#x04BB;</span> <span title="U+04BC">&#x04BD; &#x04BD;</span> <span title="U+04BE">&#x04BF; &#x04BF;</span> <span title="U+04C0">&#x04CF; &#x04CF;</span> <span title="U+04C1">&#x04C2; &#x04C2;</span> <span title="U+04C3">&#x04C4; &#x04C4;</span> <span title="U+04C5">&#x04C6; &#x04C6;</span> <span title="U+04C7">&#x04C8; &#x04C8;</span> <span title="U+04C9">&#x04CA; &#x04CA;</span> <span title="U+04CB">&#x04CC; &#x04CC;</span> <span title="U+04CD">&#x04CE; &#x04CE;</span> <span title="U+04D0">&#x04D1; &#x04D1;</span> <span title="U+04D2">&#x04D3; &#x04D3;</span> <span title="U+04D4">&#x04D5; &#x04D5;</span> <span title="U+04D6">&#x04D7; &#x04D7;</span> <span title="U+04D8">&#x04D9; &#x04D9;</span> <span title="U+04DA">&#x04DB; &#x04DB;</span> <span title="U+04DC">&#x04DD; &#x04DD;</span> <span title="U+04DE">&#x04DF; &#x04DF;</span> <span title="U+04E0">&#x04E1; &#x04E1;</span> <span title="U+04E2">&#x04E3; &#x04E3;</span> <span title="U+04E4">&#x04E5; &#x04E5;</span> <span title="U+04E6">&#x04E7; &#x04E7;</span> <span title="U+04E8">&#x04E9; &#x04E9;</span> <span title="U+04EA">&#x04EB; &#x04EB;</span> <span title="U+04EC">&#x04ED; &#x04ED;</span> <span title="U+04EE">&#x04EF; &#x04EF;</span> <span title="U+04F0">&#x04F1; &#x04F1;</span> <span title="U+04F2">&#x04F3; &#x04F3;</span> <span title="U+04F4">&#x04F5; &#x04F5;</span> <span title="U+04F6">&#x04F7; &#x04F7;</span> <span title="U+04F8">&#x04F9; &#x04F9;</span> <span title="U+04FA">&#x04FB; &#x04FB;</span> <span title="U+04FC">&#x04FD; &#x04FD;</span> <span title="U+04FE">&#x04FF; &#x04FF;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0482; &#x0483; &#x0484; &#x0485; &#x0486; &#x0487; &#x0488; &#x0489;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-020-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-020-ref.html
new file mode 100644
index 0000000000..1dbad5ed81
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-020-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Supplement, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0501">&#x0500; &#x0500;</span> <span title="U+0503">&#x0502; &#x0502;</span> <span title="U+0505">&#x0504; &#x0504;</span> <span title="U+0507">&#x0506; &#x0506;</span> <span title="U+0509">&#x0508; &#x0508;</span> <span title="U+050B">&#x050A; &#x050A;</span> <span title="U+050D">&#x050C; &#x050C;</span> <span title="U+050F">&#x050E; &#x050E;</span> <span title="U+0511">&#x0510; &#x0510;</span> <span title="U+0513">&#x0512; &#x0512;</span> <span title="U+0515">&#x0514; &#x0514;</span> <span title="U+0517">&#x0516; &#x0516;</span> <span title="U+0519">&#x0518; &#x0518;</span> <span title="U+051B">&#x051A; &#x051A;</span> <span title="U+051D">&#x051C; &#x051C;</span> <span title="U+051F">&#x051E; &#x051E;</span> <span title="U+0521">&#x0520; &#x0520;</span> <span title="U+0523">&#x0522; &#x0522;</span> <span title="U+0525">&#x0524; &#x0524;</span> <span title="U+0527">&#x0526; &#x0526;</span> <span title="U+0529">&#x0528; &#x0528;</span> <span title="U+052B">&#x052A; &#x052A;</span> <span title="U+052D">&#x052C; &#x052C;</span> <span title="U+052F">&#x052E; &#x052E;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-021-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-021-ref.html
new file mode 100644
index 0000000000..17fd94a6fe
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-021-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0500">&#x0501; &#x0501;</span> <span title="U+0502">&#x0503; &#x0503;</span> <span title="U+0504">&#x0505; &#x0505;</span> <span title="U+0506">&#x0507; &#x0507;</span> <span title="U+0508">&#x0509; &#x0509;</span> <span title="U+050A">&#x050B; &#x050B;</span> <span title="U+050C">&#x050D; &#x050D;</span> <span title="U+050E">&#x050F; &#x050F;</span> <span title="U+0510">&#x0511; &#x0511;</span> <span title="U+0512">&#x0513; &#x0513;</span> <span title="U+0514">&#x0515; &#x0515;</span> <span title="U+0516">&#x0517; &#x0517;</span> <span title="U+0518">&#x0519; &#x0519;</span> <span title="U+051A">&#x051B; &#x051B;</span> <span title="U+051C">&#x051D; &#x051D;</span> <span title="U+051E">&#x051F; &#x051F;</span> <span title="U+0520">&#x0521; &#x0521;</span> <span title="U+0522">&#x0523; &#x0523;</span> <span title="U+0524">&#x0525; &#x0525;</span> <span title="U+0526">&#x0527; &#x0527;</span> <span title="U+0528">&#x0529; &#x0529;</span> <span title="U+052A">&#x052B; &#x052B;</span> <span title="U+052C">&#x052D; &#x052D;</span> <span title="U+052E">&#x052F; &#x052F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-022-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-022-ref.html
new file mode 100644
index 0000000000..7a025ca223
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-022-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Armenian, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansArmenian-Regular') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Noto Sans Armenian', webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0561">&#x0531; &#x0531;</span> <span title="U+0562">&#x0532; &#x0532;</span> <span title="U+0563">&#x0533; &#x0533;</span> <span title="U+0564">&#x0534; &#x0534;</span> <span title="U+0565">&#x0535; &#x0535;</span> <span title="U+0566">&#x0536; &#x0536;</span> <span title="U+0567">&#x0537; &#x0537;</span> <span title="U+0568">&#x0538; &#x0538;</span> <span title="U+0569">&#x0539; &#x0539;</span> <span title="U+056A">&#x053A; &#x053A;</span> <span title="U+056B">&#x053B; &#x053B;</span> <span title="U+056C">&#x053C; &#x053C;</span> <span title="U+056D">&#x053D; &#x053D;</span> <span title="U+056E">&#x053E; &#x053E;</span> <span title="U+056F">&#x053F; &#x053F;</span> <span title="U+0570">&#x0540; &#x0540;</span> <span title="U+0571">&#x0541; &#x0541;</span> <span title="U+0572">&#x0542; &#x0542;</span> <span title="U+0573">&#x0543; &#x0543;</span> <span title="U+0574">&#x0544; &#x0544;</span> <span title="U+0575">&#x0545; &#x0545;</span> <span title="U+0576">&#x0546; &#x0546;</span> <span title="U+0577">&#x0547; &#x0547;</span> <span title="U+0578">&#x0548; &#x0548;</span> <span title="U+0579">&#x0549; &#x0549;</span> <span title="U+057A">&#x054A; &#x054A;</span> <span title="U+057B">&#x054B; &#x054B;</span> <span title="U+057C">&#x054C; &#x054C;</span> <span title="U+057D">&#x054D; &#x054D;</span> <span title="U+057E">&#x054E; &#x054E;</span> <span title="U+057F">&#x054F; &#x054F;</span> <span title="U+0580">&#x0550; &#x0550;</span> <span title="U+0581">&#x0551; &#x0551;</span> <span title="U+0582">&#x0552; &#x0552;</span> <span title="U+0583">&#x0553; &#x0553;</span> <span title="U+0584">&#x0554; &#x0554;</span> <span title="U+0585">&#x0555; &#x0555;</span> <span title="U+0586">&#x0556; &#x0556;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0559; &#x055A; &#x055B; &#x055C; &#x055D; &#x055E; &#x055F; &#x0587; &#x0589; &#x058A; &#x058D; &#x058E; &#x058F;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-023-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-023-ref.html
new file mode 100644
index 0000000000..4108fc090c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-023-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansArmenian-Regular') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Noto Sans Armenian', webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+0531">&#x0561; &#x0561;</span> <span title="U+0532">&#x0562; &#x0562;</span> <span title="U+0533">&#x0563; &#x0563;</span> <span title="U+0534">&#x0564; &#x0564;</span> <span title="U+0535">&#x0565; &#x0565;</span> <span title="U+0536">&#x0566; &#x0566;</span> <span title="U+0537">&#x0567; &#x0567;</span> <span title="U+0538">&#x0568; &#x0568;</span> <span title="U+0539">&#x0569; &#x0569;</span> <span title="U+053A">&#x056A; &#x056A;</span> <span title="U+053B">&#x056B; &#x056B;</span> <span title="U+053C">&#x056C; &#x056C;</span> <span title="U+053D">&#x056D; &#x056D;</span> <span title="U+053E">&#x056E; &#x056E;</span> <span title="U+053F">&#x056F; &#x056F;</span> <span title="U+0540">&#x0570; &#x0570;</span> <span title="U+0541">&#x0571; &#x0571;</span> <span title="U+0542">&#x0572; &#x0572;</span> <span title="U+0543">&#x0573; &#x0573;</span> <span title="U+0544">&#x0574; &#x0574;</span> <span title="U+0545">&#x0575; &#x0575;</span> <span title="U+0546">&#x0576; &#x0576;</span> <span title="U+0547">&#x0577; &#x0577;</span> <span title="U+0548">&#x0578; &#x0578;</span> <span title="U+0549">&#x0579; &#x0579;</span> <span title="U+054A">&#x057A; &#x057A;</span> <span title="U+054B">&#x057B; &#x057B;</span> <span title="U+054C">&#x057C; &#x057C;</span> <span title="U+054D">&#x057D; &#x057D;</span> <span title="U+054E">&#x057E; &#x057E;</span> <span title="U+054F">&#x057F; &#x057F;</span> <span title="U+0550">&#x0580; &#x0580;</span> <span title="U+0551">&#x0581; &#x0581;</span> <span title="U+0552">&#x0582; &#x0582;</span> <span title="U+0553">&#x0583; &#x0583;</span> <span title="U+0554">&#x0584; &#x0584;</span> <span title="U+0555">&#x0585; &#x0585;</span> <span title="U+0556">&#x0586; &#x0586;</span> </div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x0559; &#x055A; &#x055B; &#x055C; &#x055D; &#x055E; &#x055F; &#x0587; &#x0589; &#x058A; &#x058D; &#x058E; &#x058F;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-024-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-024-ref.html
new file mode 100644
index 0000000000..f5a403f670
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-024-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Number Forms, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2170">&#x2160; &#x2160;</span> <span title="U+2171">&#x2161; &#x2161;</span> <span title="U+2172">&#x2162; &#x2162;</span> <span title="U+2173">&#x2163; &#x2163;</span> <span title="U+2174">&#x2164; &#x2164;</span> <span title="U+2175">&#x2165; &#x2165;</span> <span title="U+2176">&#x2166; &#x2166;</span> <span title="U+2177">&#x2167; &#x2167;</span> <span title="U+2178">&#x2168; &#x2168;</span> <span title="U+2179">&#x2169; &#x2169;</span> <span title="U+217A">&#x216A; &#x216A;</span> <span title="U+217B">&#x216B; &#x216B;</span> <span title="U+217C">&#x216C; &#x216C;</span> <span title="U+217D">&#x216D; &#x216D;</span> <span title="U+217E">&#x216E; &#x216E;</span> <span title="U+217F">&#x216F; &#x216F;</span> <span title="U+2184">&#x2183; &#x2183;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2150; &#x2151; &#x2152; &#x2153; &#x2154; &#x2155; &#x2156; &#x2157; &#x2158; &#x2159; &#x215A; &#x215B; &#x215C; &#x215D; &#x215E; &#x215F; &#x2180; &#x2181; &#x2182; &#x2185; &#x2186; &#x2187; &#x2188; &#x2189; &#x2150; &#x2151; &#x2152; &#x2153; &#x2154; &#x2155; &#x2156; &#x2157; &#x2158; &#x2159; &#x215A; &#x215B; &#x215C; &#x215D; &#x215E; &#x215F; &#x2180; &#x2181; &#x2182; &#x2185; &#x2186; &#x2187; &#x2188; &#x2189;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-025-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-025-ref.html
new file mode 100644
index 0000000000..a4bb76e845
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-025-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Number Forms, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2160">&#x2170; &#x2170;</span> <span title="U+2161">&#x2171; &#x2171;</span> <span title="U+2162">&#x2172; &#x2172;</span> <span title="U+2163">&#x2173; &#x2173;</span> <span title="U+2164">&#x2174; &#x2174;</span> <span title="U+2165">&#x2175; &#x2175;</span> <span title="U+2166">&#x2176; &#x2176;</span> <span title="U+2167">&#x2177; &#x2177;</span> <span title="U+2168">&#x2178; &#x2178;</span> <span title="U+2169">&#x2179; &#x2179;</span> <span title="U+216A">&#x217A; &#x217A;</span> <span title="U+216B">&#x217B; &#x217B;</span> <span title="U+216C">&#x217C; &#x217C;</span> <span title="U+216D">&#x217D; &#x217D;</span> <span title="U+216E">&#x217E; &#x217E;</span> <span title="U+216F">&#x217F; &#x217F;</span> <span title="U+2183">&#x2184; &#x2184;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2150; &#x2151; &#x2152; &#x2153; &#x2154; &#x2155; &#x2156; &#x2157; &#x2158; &#x2159; &#x215A; &#x215B; &#x215C; &#x215D; &#x215E; &#x215F; &#x2180; &#x2181; &#x2182; &#x2185; &#x2186; &#x2187; &#x2188; &#x2189; &#x2150; &#x2151; &#x2152; &#x2153; &#x2154; &#x2155; &#x2156; &#x2157; &#x2158; &#x2159; &#x215A; &#x215B; &#x215C; &#x215D; &#x215E; &#x215F; &#x2180; &#x2181; &#x2182; &#x2185; &#x2186; &#x2187; &#x2188; &#x2189;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-026-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-026-ref.html
new file mode 100644
index 0000000000..d5afb862a4
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-026-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Enclosed Alphanumerics, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+24D0">&#x24B6; &#x24B6;</span> <span title="U+24D1">&#x24B7; &#x24B7;</span> <span title="U+24D2">&#x24B8; &#x24B8;</span> <span title="U+24D3">&#x24B9; &#x24B9;</span> <span title="U+24D4">&#x24BA; &#x24BA;</span> <span title="U+24D5">&#x24BB; &#x24BB;</span> <span title="U+24D6">&#x24BC; &#x24BC;</span> <span title="U+24D7">&#x24BD; &#x24BD;</span> <span title="U+24D8">&#x24BE; &#x24BE;</span> <span title="U+24D9">&#x24BF; &#x24BF;</span> <span title="U+24DA">&#x24C0; &#x24C0;</span> <span title="U+24DB">&#x24C1; &#x24C1;</span> <span title="U+24DC">&#x24C2; &#x24C2;</span> <span title="U+24DD">&#x24C3; &#x24C3;</span> <span title="U+24DE">&#x24C4; &#x24C4;</span> <span title="U+24DF">&#x24C5; &#x24C5;</span> <span title="U+24E0">&#x24C6; &#x24C6;</span> <span title="U+24E1">&#x24C7; &#x24C7;</span> <span title="U+24E2">&#x24C8; &#x24C8;</span> <span title="U+24E3">&#x24C9; &#x24C9;</span> <span title="U+24E4">&#x24CA; &#x24CA;</span> <span title="U+24E5">&#x24CB; &#x24CB;</span> <span title="U+24E6">&#x24CC; &#x24CC;</span> <span title="U+24E7">&#x24CD; &#x24CD;</span> <span title="U+24E8">&#x24CE; &#x24CE;</span> <span title="U+24E9">&#x24CF; &#x24CF;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2460; &#x2461; &#x2462; &#x2463; &#x2464; &#x2465; &#x2466; &#x2467; &#x2468; &#x2469; &#x246A; &#x246B; &#x246C; &#x246D; &#x246E; &#x246F; &#x2470; &#x2471; &#x2472; &#x2473; &#x2474; &#x2475; &#x2476; &#x2477; &#x2478; &#x2479; &#x247A; &#x247B; &#x247C; &#x247D; &#x247E; &#x247F; &#x2480; &#x2481; &#x2482; &#x2483; &#x2484; &#x2485; &#x2486; &#x2487; &#x2488; &#x2489; &#x248A; &#x248B; &#x248C; &#x248D; &#x248E; &#x248F; &#x2490; &#x2491; &#x2492; &#x2493; &#x2494; &#x2495; &#x2496; &#x2497; &#x2498; &#x2499; &#x249A; &#x249B; &#x249C; &#x249D; &#x249E; &#x249F; &#x24A0; &#x24A1; &#x24A2; &#x24A3; &#x24A4; &#x24A5; &#x24A6; &#x24A7; &#x24A8; &#x24A9; &#x24AA; &#x24AB; &#x24AC; &#x24AD; &#x24AE; &#x24AF; &#x24B0; &#x24B1; &#x24B2; &#x24B3; &#x24B4; &#x24B5; &#x24EA; &#x24EB; &#x24EC; &#x24ED; &#x24EE; &#x24EF; &#x24F0; &#x24F1; &#x24F2; &#x24F3; &#x24F4; &#x24F5; &#x24F6; &#x24F7; &#x24F8; &#x24F9; &#x24FA; &#x24FB; &#x24FC; &#x24FD; &#x24FE; &#x24FF;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-027-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-027-ref.html
new file mode 100644
index 0000000000..b1f5f17bf5
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-027-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Enclosed Alphanumerics, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+24B6">&#x24D0; &#x24D0;</span> <span title="U+24B7">&#x24D1; &#x24D1;</span> <span title="U+24B8">&#x24D2; &#x24D2;</span> <span title="U+24B9">&#x24D3; &#x24D3;</span> <span title="U+24BA">&#x24D4; &#x24D4;</span> <span title="U+24BB">&#x24D5; &#x24D5;</span> <span title="U+24BC">&#x24D6; &#x24D6;</span> <span title="U+24BD">&#x24D7; &#x24D7;</span> <span title="U+24BE">&#x24D8; &#x24D8;</span> <span title="U+24BF">&#x24D9; &#x24D9;</span> <span title="U+24C0">&#x24DA; &#x24DA;</span> <span title="U+24C1">&#x24DB; &#x24DB;</span> <span title="U+24C2">&#x24DC; &#x24DC;</span> <span title="U+24C3">&#x24DD; &#x24DD;</span> <span title="U+24C4">&#x24DE; &#x24DE;</span> <span title="U+24C5">&#x24DF; &#x24DF;</span> <span title="U+24C6">&#x24E0; &#x24E0;</span> <span title="U+24C7">&#x24E1; &#x24E1;</span> <span title="U+24C8">&#x24E2; &#x24E2;</span> <span title="U+24C9">&#x24E3; &#x24E3;</span> <span title="U+24CA">&#x24E4; &#x24E4;</span> <span title="U+24CB">&#x24E5; &#x24E5;</span> <span title="U+24CC">&#x24E6; &#x24E6;</span> <span title="U+24CD">&#x24E7; &#x24E7;</span> <span title="U+24CE">&#x24E8; &#x24E8;</span> <span title="U+24CF">&#x24E9; &#x24E9;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x2460; &#x2461; &#x2462; &#x2463; &#x2464; &#x2465; &#x2466; &#x2467; &#x2468; &#x2469; &#x246A; &#x246B; &#x246C; &#x246D; &#x246E; &#x246F; &#x2470; &#x2471; &#x2472; &#x2473; &#x2474; &#x2475; &#x2476; &#x2477; &#x2478; &#x2479; &#x247A; &#x247B; &#x247C; &#x247D; &#x247E; &#x247F; &#x2480; &#x2481; &#x2482; &#x2483; &#x2484; &#x2485; &#x2486; &#x2487; &#x2488; &#x2489; &#x248A; &#x248B; &#x248C; &#x248D; &#x248E; &#x248F; &#x2490; &#x2491; &#x2492; &#x2493; &#x2494; &#x2495; &#x2496; &#x2497; &#x2498; &#x2499; &#x249A; &#x249B; &#x249C; &#x249D; &#x249E; &#x249F; &#x24A0; &#x24A1; &#x24A2; &#x24A3; &#x24A4; &#x24A5; &#x24A6; &#x24A7; &#x24A8; &#x24A9; &#x24AA; &#x24AB; &#x24AC; &#x24AD; &#x24AE; &#x24AF; &#x24B0; &#x24B1; &#x24B2; &#x24B3; &#x24B4; &#x24B5; &#x24EA; &#x24EB; &#x24EC; &#x24ED; &#x24EE; &#x24EF; &#x24F0; &#x24F1; &#x24F2; &#x24F3; &#x24F4; &#x24F5; &#x24F6; &#x24F7; &#x24F8; &#x24F9; &#x24FA; &#x24FB; &#x24FC; &#x24FD; &#x24FE; &#x24FF;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-028-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-028-ref.html
new file mode 100644
index 0000000000..93d1103ce0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-028-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Deseret, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/noto/NotoSansDeseret-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+10428">&#x10400; &#x10400;</span> <span title="U+10429">&#x10401; &#x10401;</span> <span title="U+1042A">&#x10402; &#x10402;</span> <span title="U+1042B">&#x10403; &#x10403;</span> <span title="U+1042C">&#x10404; &#x10404;</span> <span title="U+1042D">&#x10405; &#x10405;</span> <span title="U+1042E">&#x10406; &#x10406;</span> <span title="U+1042F">&#x10407; &#x10407;</span> <span title="U+10430">&#x10408; &#x10408;</span> <span title="U+10431">&#x10409; &#x10409;</span> <span title="U+10432">&#x1040A; &#x1040A;</span> <span title="U+10433">&#x1040B; &#x1040B;</span> <span title="U+10434">&#x1040C; &#x1040C;</span> <span title="U+10435">&#x1040D; &#x1040D;</span> <span title="U+10436">&#x1040E; &#x1040E;</span> <span title="U+10437">&#x1040F; &#x1040F;</span> <span title="U+10438">&#x10410; &#x10410;</span> <span title="U+10439">&#x10411; &#x10411;</span> <span title="U+1043A">&#x10412; &#x10412;</span> <span title="U+1043B">&#x10413; &#x10413;</span> <span title="U+1043C">&#x10414; &#x10414;</span> <span title="U+1043D">&#x10415; &#x10415;</span> <span title="U+1043E">&#x10416; &#x10416;</span> <span title="U+1043F">&#x10417; &#x10417;</span> <span title="U+10440">&#x10418; &#x10418;</span> <span title="U+10441">&#x10419; &#x10419;</span> <span title="U+10442">&#x1041A; &#x1041A;</span> <span title="U+10443">&#x1041B; &#x1041B;</span> <span title="U+10444">&#x1041C; &#x1041C;</span> <span title="U+10445">&#x1041D; &#x1041D;</span> <span title="U+10446">&#x1041E; &#x1041E;</span> <span title="U+10447">&#x1041F; &#x1041F;</span> <span title="U+10448">&#x10420; &#x10420;</span> <span title="U+10449">&#x10421; &#x10421;</span> <span title="U+1044A">&#x10422; &#x10422;</span> <span title="U+1044B">&#x10423; &#x10423;</span> <span title="U+1044C">&#x10424; &#x10424;</span> <span title="U+1044D">&#x10425; &#x10425;</span> <span title="U+1044E">&#x10426; &#x10426;</span> <span title="U+1044F">&#x10427; &#x10427;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-029-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-029-ref.html
new file mode 100644
index 0000000000..565f2682f6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-029-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Deseret, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/noto/NotoSansDeseret-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+10400">&#x10428; &#x10428;</span> <span title="U+10401">&#x10429; &#x10429;</span> <span title="U+10402">&#x1042A; &#x1042A;</span> <span title="U+10403">&#x1042B; &#x1042B;</span> <span title="U+10404">&#x1042C; &#x1042C;</span> <span title="U+10405">&#x1042D; &#x1042D;</span> <span title="U+10406">&#x1042E; &#x1042E;</span> <span title="U+10407">&#x1042F; &#x1042F;</span> <span title="U+10408">&#x10430; &#x10430;</span> <span title="U+10409">&#x10431; &#x10431;</span> <span title="U+1040A">&#x10432; &#x10432;</span> <span title="U+1040B">&#x10433; &#x10433;</span> <span title="U+1040C">&#x10434; &#x10434;</span> <span title="U+1040D">&#x10435; &#x10435;</span> <span title="U+1040E">&#x10436; &#x10436;</span> <span title="U+1040F">&#x10437; &#x10437;</span> <span title="U+10410">&#x10438; &#x10438;</span> <span title="U+10411">&#x10439; &#x10439;</span> <span title="U+10412">&#x1043A; &#x1043A;</span> <span title="U+10413">&#x1043B; &#x1043B;</span> <span title="U+10414">&#x1043C; &#x1043C;</span> <span title="U+10415">&#x1043D; &#x1043D;</span> <span title="U+10416">&#x1043E; &#x1043E;</span> <span title="U+10417">&#x1043F; &#x1043F;</span> <span title="U+10418">&#x10440; &#x10440;</span> <span title="U+10419">&#x10441; &#x10441;</span> <span title="U+1041A">&#x10442; &#x10442;</span> <span title="U+1041B">&#x10443; &#x10443;</span> <span title="U+1041C">&#x10444; &#x10444;</span> <span title="U+1041D">&#x10445; &#x10445;</span> <span title="U+1041E">&#x10446; &#x10446;</span> <span title="U+1041F">&#x10447; &#x10447;</span> <span title="U+10420">&#x10448; &#x10448;</span> <span title="U+10421">&#x10449; &#x10449;</span> <span title="U+10422">&#x1044A; &#x1044A;</span> <span title="U+10423">&#x1044B; &#x1044B;</span> <span title="U+10424">&#x1044C; &#x1044C;</span> <span title="U+10425">&#x1044D; &#x1044D;</span> <span title="U+10426">&#x1044E; &#x1044E;</span> <span title="U+10427">&#x1044F; &#x1044F;</span> </div>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-030-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-030-ref.html
new file mode 100644
index 0000000000..b935ce02cc
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-030-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Georgian Supplement, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansGeorgian-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+2D00">&#x10A0; &#x10A0;</span> <span title="U+2D01">&#x10A1; &#x10A1;</span> <span title="U+2D02">&#x10A2; &#x10A2;</span> <span title="U+2D03">&#x10A3; &#x10A3;</span> <span title="U+2D04">&#x10A4; &#x10A4;</span> <span title="U+2D05">&#x10A5; &#x10A5;</span> <span title="U+2D06">&#x10A6; &#x10A6;</span> <span title="U+2D07">&#x10A7; &#x10A7;</span> <span title="U+2D08">&#x10A8; &#x10A8;</span> <span title="U+2D09">&#x10A9; &#x10A9;</span> <span title="U+2D0A">&#x10AA; &#x10AA;</span> <span title="U+2D0B">&#x10AB; &#x10AB;</span> <span title="U+2D0C">&#x10AC; &#x10AC;</span> <span title="U+2D0D">&#x10AD; &#x10AD;</span> <span title="U+2D0E">&#x10AE; &#x10AE;</span> <span title="U+2D0F">&#x10AF; &#x10AF;</span> <span title="U+2D10">&#x10B0; &#x10B0;</span> <span title="U+2D11">&#x10B1; &#x10B1;</span> <span title="U+2D12">&#x10B2; &#x10B2;</span> <span title="U+2D13">&#x10B3; &#x10B3;</span> <span title="U+2D14">&#x10B4; &#x10B4;</span> <span title="U+2D15">&#x10B5; &#x10B5;</span> <span title="U+2D16">&#x10B6; &#x10B6;</span> <span title="U+2D17">&#x10B7; &#x10B7;</span> <span title="U+2D18">&#x10B8; &#x10B8;</span> <span title="U+2D19">&#x10B9; &#x10B9;</span> <span title="U+2D1A">&#x10BA; &#x10BA;</span> <span title="U+2D1B">&#x10BB; &#x10BB;</span> <span title="U+2D1C">&#x10BC; &#x10BC;</span> <span title="U+2D1D">&#x10BD; &#x10BD;</span> <span title="U+2D1E">&#x10BE; &#x10BE;</span> <span title="U+2D1F">&#x10BF; &#x10BF;</span> <span title="U+2D20">&#x10C0; &#x10C0;</span> <span title="U+2D21">&#x10C1; &#x10C1;</span> <span title="U+2D22">&#x10C2; &#x10C2;</span> <span title="U+2D23">&#x10C3; &#x10C3;</span> <span title="U+2D24">&#x10C4; &#x10C4;</span> <span title="U+2D25">&#x10C5; &#x10C5;</span> <span title="U+2D27">&#x10C7; &#x10C7;</span> <span title="U+2D2D">&#x10CD; &#x10CD;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-031-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-031-ref.html
new file mode 100644
index 0000000000..047dfe4053
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-031-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Georgian, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansGeorgian-Regular.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+10A0">&#x2D00; &#x2D00;</span> <span title="U+10A1">&#x2D01; &#x2D01;</span> <span title="U+10A2">&#x2D02; &#x2D02;</span> <span title="U+10A3">&#x2D03; &#x2D03;</span> <span title="U+10A4">&#x2D04; &#x2D04;</span> <span title="U+10A5">&#x2D05; &#x2D05;</span> <span title="U+10A6">&#x2D06; &#x2D06;</span> <span title="U+10A7">&#x2D07; &#x2D07;</span> <span title="U+10A8">&#x2D08; &#x2D08;</span> <span title="U+10A9">&#x2D09; &#x2D09;</span> <span title="U+10AA">&#x2D0A; &#x2D0A;</span> <span title="U+10AB">&#x2D0B; &#x2D0B;</span> <span title="U+10AC">&#x2D0C; &#x2D0C;</span> <span title="U+10AD">&#x2D0D; &#x2D0D;</span> <span title="U+10AE">&#x2D0E; &#x2D0E;</span> <span title="U+10AF">&#x2D0F; &#x2D0F;</span> <span title="U+10B0">&#x2D10; &#x2D10;</span> <span title="U+10B1">&#x2D11; &#x2D11;</span> <span title="U+10B2">&#x2D12; &#x2D12;</span> <span title="U+10B3">&#x2D13; &#x2D13;</span> <span title="U+10B4">&#x2D14; &#x2D14;</span> <span title="U+10B5">&#x2D15; &#x2D15;</span> <span title="U+10B6">&#x2D16; &#x2D16;</span> <span title="U+10B7">&#x2D17; &#x2D17;</span> <span title="U+10B8">&#x2D18; &#x2D18;</span> <span title="U+10B9">&#x2D19; &#x2D19;</span> <span title="U+10BA">&#x2D1A; &#x2D1A;</span> <span title="U+10BB">&#x2D1B; &#x2D1B;</span> <span title="U+10BC">&#x2D1C; &#x2D1C;</span> <span title="U+10BD">&#x2D1D; &#x2D1D;</span> <span title="U+10BE">&#x2D1E; &#x2D1E;</span> <span title="U+10BF">&#x2D1F; &#x2D1F;</span> <span title="U+10C0">&#x2D20; &#x2D20;</span> <span title="U+10C1">&#x2D21; &#x2D21;</span> <span title="U+10C2">&#x2D22; &#x2D22;</span> <span title="U+10C3">&#x2D23; &#x2D23;</span> <span title="U+10C4">&#x2D24; &#x2D24;</span> <span title="U+10C5">&#x2D25; &#x2D25;</span> <span title="U+10C7">&#x2D27; &#x2D27;</span> <span title="U+10CD">&#x2D2D; &#x2D2D;</span> </div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#x10D0; &#x10D1; &#x10D2; &#x10D3; &#x10D4; &#x10D5; &#x10D6; &#x10D7; &#x10D8; &#x10D9; &#x10DA; &#x10DB; &#x10DC; &#x10DD; &#x10DE; &#x10DF; &#x10E0; &#x10E1; &#x10E2; &#x10E3; &#x10E4; &#x10E5; &#x10E6; &#x10E7; &#x10E8; &#x10E9; &#x10EA; &#x10EB; &#x10EC; &#x10ED; &#x10EE; &#x10EF; &#x10F0; &#x10F1; &#x10F2; &#x10F3; &#x10F4; &#x10F5; &#x10F6; &#x10F7; &#x10F8; &#x10F9; &#x10FA; &#x10FB; &#x10FC; &#x10FD; &#x10FE; &#x10FF;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-032-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-032-ref.html
new file mode 100644
index 0000000000..86fb97134a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-032-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: German sharp S, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+.test, .ref { font-size: 125%; line-height: 1.5em; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters below match.</p>
+<div class="test" lang="de"><span>SS SS</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-033-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-033-ref.html
new file mode 100644
index 0000000000..c68cc8fa1f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-033-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin ligatures, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+/* the CSS below is not part of the test */
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>FF FF</span> <span>FI FI</span> <span>FL FL</span> <span>FFI FFI</span> <span>FFL FFL</span> <span>ST ST</span> <span>ST ST</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-034-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-034-ref.html
new file mode 100644
index 0000000000..b3157486c3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-034-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Armenian ligatures, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/NotoSansArmenian-Regular') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Noto Sans Armenian', webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>&#x0535;&#x0552; &#x0535;&#x0552;</span> <span>&#x0544;&#x0546; &#x0544;&#x0546;</span> <span>&#x0544;&#x0535; &#x0544;&#x0535;</span> <span>&#x0544;&#x053B; &#x0544;&#x053B;</span> <span>&#x054E;&#x0546; &#x054E;&#x0546;</span> <span>&#x0544;&#x053D; &#x0544;&#x053D;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-035-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-035-ref.html
new file mode 100644
index 0000000000..e050170986
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-035-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek specials, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span>&#x02BC;N &#x02BC;N</span> <span>&#x03AA;&#x0301; &#x03AA;&#x0301;</span> <span>&#x03AB;&#x0301; &#x03AB;&#x0301;</span> <span>J&#x030C; J&#x030C;</span> <span>H&#x0331; H&#x0331;</span> <span>T&#x0308; T&#x0308;</span> <span>W&#x030A; W&#x030A;</span> <span>Y&#x030A; Y&#x030A;</span> <span>A&#x02BE; A&#x02BE;</span> <span>&#x03A5;&#x0313; &#x03A5;&#x0313;</span> <span>&#x03A5;&#x0313;&#x0300; &#x03A5;&#x0313;&#x0300;</span> <span>&#x03A5;&#x0313;&#x0301; &#x03A5;&#x0313;&#x0301;</span> <span>&#x03A5;&#x0313;&#x0342; &#x03A5;&#x0313;&#x0342;</span> <span>&#x0391;&#x0342; &#x0391;&#x0342;</span> <span>&#x0397;&#x0342; &#x0397;&#x0342;</span> <span>&#x03AA;&#x0300; &#x03AA;&#x0300;</span> <span>&#x03AA;&#x0301; &#x03AA;&#x0301;</span> <span>&#x0399;&#x0342; &#x0399;&#x0342;</span> <span>&#x03AA;&#x0342; &#x03AA;&#x0342;</span> <span>&#x03AB;&#x0300; &#x03AB;&#x0300;</span> <span>&#x03AB;&#x0301; &#x03AB;&#x0301;</span> <span>&#x03A1;&#x0313; &#x03A1;&#x0313;</span> <span>&#x03A5;&#x0342; &#x03A5;&#x0342;</span> <span>&#x03AB;&#x0342; &#x03AB;&#x0342;</span> <span>&#x03A9;&#x0342; &#x03A9;&#x0342;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-038-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-038-ref.html
new file mode 100644
index 0000000000..19d09debf2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-038-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek final sigma, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 36px; font-family: 'Gentium Plus', 'Noto Serif', 'Noto Sans', webfont, sans-serif; border: 1px solid orange; margin: 10px; width: 200px; padding: 5px; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if the orange boxes are identical.</p>
+<div class="test">οδυσσευς</div>
+<div class="ref">οδυσσευς</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-039-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-039-ref.html
new file mode 100644
index 0000000000..f97ce02b56
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-039-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Lithuanian, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="lt">
+ <span>&#x69;&#x307;&#x300; &#x69;&#x307;&#x300;</span> <span>&#x69;&#x307;&#x301; &#x69;&#x307;&#x301;</span> <span>&#x69;&#x307;&#x303; &#x69;&#x307;&#x303;</span>
+ <span>&#x69;&#x307;&#x300; &#x69;&#x307;&#x300;</span> <span>&#x6A;&#x307;&#x301; &#x6A;&#x307;&#x301;</span> <span>&#x12F;&#x307;&#x303; &#x12F;&#x307;&#x303;</span>
+</div>
+<!--Notes:
+The language of the test box is set to Lithuanian (lt)
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-040-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-040-ref.html
new file mode 100644
index 0000000000..1d8941c9b0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-040-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Turkish, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="tr"><span>&#x130; &#x130;</span> <span>&#x49; &#x49;</span></div>
+<!--Notes:
+The language of the test box is set to Turkish (tr).
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-041-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-041-ref.html
new file mode 100644
index 0000000000..2502097be2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-041-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Turkish, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="tr"><span>&#x69; &#x69;</span> <span>&#x69; &#x69;</span> <span>&#x131; &#x131;</span></div>
+<!--Notes:
+The language of the test box is set to Turkish (tr).
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-042-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-042-ref.html
new file mode 100644
index 0000000000..ea15bd474f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-042-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Azeri, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="az"><span>&#x130; &#x130;</span> <span>&#x49; &#x49;</span></div>
+<!--Notes:
+The language of the test box is set to Azeri (az).
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-043-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-043-ref.html
new file mode 100644
index 0000000000..ea8325b185
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-043-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Azeri, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="az"><span>&#x69; &#x69;</span> <span>&#x69; &#x69;</span> <span>&#x131; &#x131;</span></div>
+<!--Notes:
+The language of the test box is set to Azeri (az).
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-044-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-044-ref.html
new file mode 100644
index 0000000000..b4590eb88a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-044-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Lithuanian, uppercase</title>
+<link rel='author' title='Jonathan Kew' href='mailto:jkew@mozilla.com'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test" lang="lt">
+ <span>&#x49;&#x300; &#x49;&#x300;</span>
+ <span>&#x49;&#x301; &#x49;&#x301;</span>
+ <span>&#x49;&#x303; &#x49;&#x303;</span>
+ <span>&#x49; &#x49;</span>
+ <span>&#x4A; &#x4A;</span>
+ <span>&#x12E; &#x12E;</span>
+ <span>X&#x307; X&#x307;</span>
+</div>
+<!--Notes:
+The language of the test box is set to Lithuanian (lt)
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-101-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-101-ref.html
new file mode 100644
index 0000000000..af2673405f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-101-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+A723">&#xA722; &#xA722;</span> <span title="U+A725">&#xA724; &#xA724;</span> <span title="U+A727">&#xA726; &#xA726;</span> <span title="U+A729">&#xA728; &#xA728;</span> <span title="U+A72B">&#xA72A; &#xA72A;</span> <span title="U+A72D">&#xA72C; &#xA72C;</span> <span title="U+A72F">&#xA72E; &#xA72E;</span> <span title="U+A733">&#xA732; &#xA732;</span> <span title="U+A735">&#xA734; &#xA734;</span> <span title="U+A737">&#xA736; &#xA736;</span> <span title="U+A739">&#xA738; &#xA738;</span> <span title="U+A73B">&#xA73A; &#xA73A;</span> <span title="U+A73D">&#xA73C; &#xA73C;</span> <span title="U+A73F">&#xA73E; &#xA73E;</span> <span title="U+A741">&#xA740; &#xA740;</span> <span title="U+A743">&#xA742; &#xA742;</span> <span title="U+A745">&#xA744; &#xA744;</span> <span title="U+A747">&#xA746; &#xA746;</span> <span title="U+A749">&#xA748; &#xA748;</span> <span title="U+A74B">&#xA74A; &#xA74A;</span> <span title="U+A74D">&#xA74C; &#xA74C;</span> <span title="U+A74F">&#xA74E; &#xA74E;</span> <span title="U+A751">&#xA750; &#xA750;</span> <span title="U+A753">&#xA752; &#xA752;</span> <span title="U+A755">&#xA754; &#xA754;</span> <span title="U+A757">&#xA756; &#xA756;</span> <span title="U+A759">&#xA758; &#xA758;</span> <span title="U+A75B">&#xA75A; &#xA75A;</span> <span title="U+A75D">&#xA75C; &#xA75C;</span> <span title="U+A75F">&#xA75E; &#xA75E;</span> <span title="U+A761">&#xA760; &#xA760;</span> <span title="U+A763">&#xA762; &#xA762;</span> <span title="U+A765">&#xA764; &#xA764;</span> <span title="U+A767">&#xA766; &#xA766;</span> <span title="U+A769">&#xA768; &#xA768;</span> <span title="U+A76B">&#xA76A; &#xA76A;</span> <span title="U+A76D">&#xA76C; &#xA76C;</span> <span title="U+A76F">&#xA76E; &#xA76E;</span> <span title="U+A77A">&#xA779; &#xA779;</span> <span title="U+A77C">&#xA77B; &#xA77B;</span> <span title="U+A77F">&#xA77E; &#xA77E;</span> <span title="U+A781">&#xA780; &#xA780;</span> <span title="U+A783">&#xA782; &#xA782;</span> <span title="U+A785">&#xA784; &#xA784;</span> <span title="U+A787">&#xA786; &#xA786;</span> <span title="U+A78C">&#xA78B; &#xA78B;</span> <span title="U+A791">&#xA790; &#xA790;</span> <span title="U+A793">&#xA792; &#xA792;</span> <span title="U+A797">&#xA796; &#xA796;</span> <span title="U+A799">&#xA798; &#xA798;</span> <span title="U+A79B">&#xA79A; &#xA79A;</span> <span title="U+A79D">&#xA79C; &#xA79C;</span> <span title="U+A79F">&#xA79E; &#xA79E;</span> <span title="U+A7A1">&#xA7A0; &#xA7A0;</span> <span title="U+A7A3">&#xA7A2; &#xA7A2;</span> <span title="U+A7A5">&#xA7A4; &#xA7A4;</span> <span title="U+A7A7">&#xA7A6; &#xA7A6;</span> <span title="U+A7A9">&#xA7A8; &#xA7A8;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#xA720; &#xA721; &#xA730; &#xA731; &#xA770; &#xA771; &#xA772; &#xA773; &#xA774; &#xA775; &#xA776; &#xA777; &#xA778; &#xA788; &#xA789; &#xA78A; &#xA78E; &#xA794; &#xA795; &#xA7F7; &#xA7F8; &#xA7F9; &#xA7FA; &#xA7FB; &#xA7FC; &#xA7FD; &#xA7FE; &#xA7FF;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-102-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-102-ref.html
new file mode 100644
index 0000000000..5f915e3019
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-102-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/DoulosSIL-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: webfont, serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+A722">&#xA723; &#xA723;</span> <span title="U+A724">&#xA725; &#xA725;</span> <span title="U+A726">&#xA727; &#xA727;</span> <span title="U+A728">&#xA729; &#xA729;</span> <span title="U+A72A">&#xA72B; &#xA72B;</span> <span title="U+A72C">&#xA72D; &#xA72D;</span> <span title="U+A72E">&#xA72F; &#xA72F;</span> <span title="U+A732">&#xA733; &#xA733;</span> <span title="U+A734">&#xA735; &#xA735;</span> <span title="U+A736">&#xA737; &#xA737;</span> <span title="U+A738">&#xA739; &#xA739;</span> <span title="U+A73A">&#xA73B; &#xA73B;</span> <span title="U+A73C">&#xA73D; &#xA73D;</span> <span title="U+A73E">&#xA73F; &#xA73F;</span> <span title="U+A740">&#xA741; &#xA741;</span> <span title="U+A742">&#xA743; &#xA743;</span> <span title="U+A744">&#xA745; &#xA745;</span> <span title="U+A746">&#xA747; &#xA747;</span> <span title="U+A748">&#xA749; &#xA749;</span> <span title="U+A74A">&#xA74B; &#xA74B;</span> <span title="U+A74C">&#xA74D; &#xA74D;</span> <span title="U+A74E">&#xA74F; &#xA74F;</span> <span title="U+A750">&#xA751; &#xA751;</span> <span title="U+A752">&#xA753; &#xA753;</span> <span title="U+A754">&#xA755; &#xA755;</span> <span title="U+A756">&#xA757; &#xA757;</span> <span title="U+A758">&#xA759; &#xA759;</span> <span title="U+A75A">&#xA75B; &#xA75B;</span> <span title="U+A75C">&#xA75D; &#xA75D;</span> <span title="U+A75E">&#xA75F; &#xA75F;</span> <span title="U+A760">&#xA761; &#xA761;</span> <span title="U+A762">&#xA763; &#xA763;</span> <span title="U+A764">&#xA765; &#xA765;</span> <span title="U+A766">&#xA767; &#xA767;</span> <span title="U+A768">&#xA769; &#xA769;</span> <span title="U+A76A">&#xA76B; &#xA76B;</span> <span title="U+A76C">&#xA76D; &#xA76D;</span> <span title="U+A76E">&#xA76F; &#xA76F;</span> <span title="U+A779">&#xA77A; &#xA77A;</span> <span title="U+A77B">&#xA77C; &#xA77C;</span> <span title="U+A77D">&#x1D79; &#x1D79;</span> <span title="U+A77E">&#xA77F; &#xA77F;</span> <span title="U+A780">&#xA781; &#xA781;</span> <span title="U+A782">&#xA783; &#xA783;</span> <span title="U+A784">&#xA785; &#xA785;</span> <span title="U+A786">&#xA787; &#xA787;</span> <span title="U+A78B">&#xA78C; &#xA78C;</span> <span title="U+A78D">&#x0265; &#x0265;</span> <span title="U+A790">&#xA791; &#xA791;</span> <span title="U+A792">&#xA793; &#xA793;</span> <span title="U+A796">&#xA797; &#xA797;</span> <span title="U+A798">&#xA799; &#xA799;</span> <span title="U+A79A">&#xA79B; &#xA79B;</span> <span title="U+A79C">&#xA79D; &#xA79D;</span> <span title="U+A79E">&#xA79F; &#xA79F;</span> <span title="U+A7A0">&#xA7A1; &#xA7A1;</span> <span title="U+A7A2">&#xA7A3; &#xA7A3;</span> <span title="U+A7A4">&#xA7A5; &#xA7A5;</span> <span title="U+A7A6">&#xA7A7; &#xA7A7;</span> <span title="U+A7A8">&#xA7A9; &#xA7A9;</span> <span title="U+A7AA">&#x0266; &#x0266;</span> <span title="U+A7AB">&#x025C; &#x025C;</span> <span title="U+A7AC">&#x0261; &#x0261;</span> <span title="U+A7AD">&#x026C; &#x026C;</span> <span title="U+A7B0">&#x029E; &#x029E;</span> <span title="U+A7B1">&#x0287; &#x0287;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#xA720; &#xA721; &#xA730; &#xA731; &#xA770; &#xA771; &#xA772; &#xA773; &#xA774; &#xA775; &#xA776; &#xA777; &#xA778; &#xA788; &#xA789; &#xA78A; &#xA78E; &#xA794; &#xA795; &#xA7F7; &#xA7F8; &#xA7F9; &#xA7FA; &#xA7FB; &#xA7FC; &#xA7FD; &#xA7FE; &#xA7FF;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-103-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-103-ref.html
new file mode 100644
index 0000000000..5b6f7980ed
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-103-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended-B, uppercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+A641">&#xA640; &#xA640;</span> <span title="U+A643">&#xA642; &#xA642;</span> <span title="U+A645">&#xA644; &#xA644;</span> <span title="U+A647">&#xA646; &#xA646;</span> <span title="U+A649">&#xA648; &#xA648;</span> <span title="U+A64B">&#xA64A; &#xA64A;</span> <span title="U+A64D">&#xA64C; &#xA64C;</span> <span title="U+A64F">&#xA64E; &#xA64E;</span> <span title="U+A651">&#xA650; &#xA650;</span> <span title="U+A653">&#xA652; &#xA652;</span> <span title="U+A655">&#xA654; &#xA654;</span> <span title="U+A657">&#xA656; &#xA656;</span> <span title="U+A659">&#xA658; &#xA658;</span> <span title="U+A65B">&#xA65A; &#xA65A;</span> <span title="U+A65D">&#xA65C; &#xA65C;</span> <span title="U+A65F">&#xA65E; &#xA65E;</span> <span title="U+A661">&#xA660; &#xA660;</span> <span title="U+A663">&#xA662; &#xA662;</span> <span title="U+A665">&#xA664; &#xA664;</span> <span title="U+A667">&#xA666; &#xA666;</span> <span title="U+A669">&#xA668; &#xA668;</span> <span title="U+A66B">&#xA66A; &#xA66A;</span> <span title="U+A66D">&#xA66C; &#xA66C;</span> <span title="U+A681">&#xA680; &#xA680;</span> <span title="U+A683">&#xA682; &#xA682;</span> <span title="U+A685">&#xA684; &#xA684;</span> <span title="U+A687">&#xA686; &#xA686;</span> <span title="U+A689">&#xA688; &#xA688;</span> <span title="U+A68B">&#xA68A; &#xA68A;</span> <span title="U+A68D">&#xA68C; &#xA68C;</span> <span title="U+A68F">&#xA68E; &#xA68E;</span> <span title="U+A691">&#xA690; &#xA690;</span> <span title="U+A693">&#xA692; &#xA692;</span> <span title="U+A695">&#xA694; &#xA694;</span> <span title="U+A697">&#xA696; &#xA696;</span> <span title="U+A699">&#xA698; &#xA698;</span> <span title="U+A69B">&#xA69A; &#xA69A;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#xA66E; &#xA66F; &#xA670; &#xA671; &#xA672; &#xA673; &#xA674; &#xA675; &#xA676; &#xA677; &#xA678; &#xA679; &#xA67A; &#xA67B; &#xA67C; &#xA67D; &#xA67E; &#xA67F; &#xA69C; &#xA69D; &#xA69F;
+-->
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-104-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-104-ref.html
new file mode 100644
index 0000000000..6c8bb587e5
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-104-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended-B, lowercase</title>
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<style type='text/css'>
+@font-face {
+ font-family: 'webfont';
+ src: url('/fonts/GentiumPlus-R.woff2') format('woff2'),
+ url('/fonts/GentiumPlus-R.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+.test, .ref { font-size: 125%; line-height: 1.5em; font-family: 'Doulos SIL', 'Noto Serif', 'Noto Sans', webfont, sans-serif; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters in each pair match. If you are missing a font glyph for a character, ignore that pair, but report which characters were ignored.</p>
+<div class="test"><span title="U+A640">&#xA641; &#xA641;</span> <span title="U+A642">&#xA643; &#xA643;</span> <span title="U+A644">&#xA645; &#xA645;</span> <span title="U+A646">&#xA647; &#xA647;</span> <span title="U+A648">&#xA649; &#xA649;</span> <span title="U+A64A">&#xA64B; &#xA64B;</span> <span title="U+A64C">&#xA64D; &#xA64D;</span> <span title="U+A64E">&#xA64F; &#xA64F;</span> <span title="U+A650">&#xA651; &#xA651;</span> <span title="U+A652">&#xA653; &#xA653;</span> <span title="U+A654">&#xA655; &#xA655;</span> <span title="U+A656">&#xA657; &#xA657;</span> <span title="U+A658">&#xA659; &#xA659;</span> <span title="U+A65A">&#xA65B; &#xA65B;</span> <span title="U+A65C">&#xA65D; &#xA65D;</span> <span title="U+A65E">&#xA65F; &#xA65F;</span> <span title="U+A660">&#xA661; &#xA661;</span> <span title="U+A662">&#xA663; &#xA663;</span> <span title="U+A664">&#xA665; &#xA665;</span> <span title="U+A666">&#xA667; &#xA667;</span> <span title="U+A668">&#xA669; &#xA669;</span> <span title="U+A66A">&#xA66B; &#xA66B;</span> <span title="U+A66C">&#xA66D; &#xA66D;</span> <span title="U+A680">&#xA681; &#xA681;</span> <span title="U+A682">&#xA683; &#xA683;</span> <span title="U+A684">&#xA685; &#xA685;</span> <span title="U+A686">&#xA687; &#xA687;</span> <span title="U+A688">&#xA689; &#xA689;</span> <span title="U+A68A">&#xA68B; &#xA68B;</span> <span title="U+A68C">&#xA68D; &#xA68D;</span> <span title="U+A68E">&#xA68F; &#xA68F;</span> <span title="U+A690">&#xA691; &#xA691;</span> <span title="U+A692">&#xA693; &#xA693;</span> <span title="U+A694">&#xA695; &#xA695;</span> <span title="U+A696">&#xA697; &#xA697;</span> <span title="U+A698">&#xA699; &#xA699;</span> <span title="U+A69A">&#xA69B; &#xA69B;</span></div>
+<!--Notes:
+Characters from this block that do not have case equivalents: &#xA66E; &#xA66F; &#xA670; &#xA671; &#xA672; &#xA673; &#xA674; &#xA675; &#xA676; &#xA677; &#xA678; &#xA679; &#xA67A; &#xA67B; &#xA67C; &#xA67D; &#xA67E; &#xA67F; &#xA69C; &#xA69D; &#xA69F;
+-->
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-105-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-105-ref.html
new file mode 100644
index 0000000000..bdd27bcc38
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-105-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: text-transform uppercase German sharp S and selection reference file</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+#target {
+ color: white;
+ background: red;
+}
+#target::selection {
+ background: green;
+}
+</style>
+
+<p>The test passes if you see no red below (when you select the text below you can select the whole "SS" text).</p>
+
+<span id="target" lang="de">SS</span>
+
+<script>
+ window.getSelection().setBaseAndExtent(target, 0, target, 1);
+</script>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-106-ref.html b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-106-ref.html
new file mode 100644
index 0000000000..cc3dad35de
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/reference/text-transform-upperlower-106-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: text-transform uppercase Greek acute diaeresis iota and selection</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<style>
+#target {
+ color: white;
+ background: red;
+}
+#target::selection {
+ background: green;
+}
+</style>
+
+<p>The test passes if you see red below (by selecting the first letter only).</p>
+
+<span id="target" lang="el">&#x0399;&#x0308;&#x03A1;</span>
+
+<script>
+ window.getSelection().setBaseAndExtent(target.firstChild, 0, target.firstChild, 2);
+</script>