summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-text/text-transform
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-text/text-transform
parentInitial commit. (diff)
downloadfirefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz
firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-text/text-transform')
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html139
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html144
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html149
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html154
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html79
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html84
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html137
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html142
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html147
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html152
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html79
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html84
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html114
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html119
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html79
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html84
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html47
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html52
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html139
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html144
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html54
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html59
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html89
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html94
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html89
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html94
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html137
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html142
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html79
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html84
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html79
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html84
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html50
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html55
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html42
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html47
-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-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-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/text-transform-capitalize-001.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-003.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-005.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-007.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-009.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-010.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-011.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-014.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-016.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-018.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-020.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-022.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-024.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-026.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-028.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-030.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-031.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-032.xht33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033-ref.html8
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033.html14
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-copy-paste-001-manual.html31
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-001.html33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-002.html34
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-003.html36
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-004.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-005.html95
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-006.html97
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-007.html71
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-001.xht316
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002-ref.xht51
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002.xht36
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004-ref.xht42
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004.xht53
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005-ref.xht43
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005.xht56
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-006.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-007.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-008.html37
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-009.html49
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-101.xht33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102-ref.xht8
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102.xht10
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-multiple-001.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-none-001.xht33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-001.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-002.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-003.html23
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-001.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002a.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-003.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-004.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-005.html24
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-uppercase-101.xht33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-001.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-002.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-003.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-004.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-005.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-006.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-007.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-008.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-009.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-010.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-011.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-012.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-014.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-015.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-016.html31
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-017.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-018.html31
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-019.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-020.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-021.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-022.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-023.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-024.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-025.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-026.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-027.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-028.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-029.html26
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-030.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-031.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-032.html21
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-033.html28
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-034.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-035.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-038.html27
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-039.html33
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-040.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-041.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-042.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-043.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-044.html38
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-101.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-102.html29
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-103.html31
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-104.html30
-rw-r--r--testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-105.html25
225 files changed, 9448 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html
new file mode 100644
index 0000000000..d41d618769
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative-ref.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-auto (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D715;</span>=<span>1D715</span></span>
+ <span><span class="testfont">&#x1D6FB;</span>=<span>1D6FB</span></span>
+ <span><span class="testfont">&#x1D6A5;</span>=<span>1D6A5</span></span>
+ <span><span class="testfont">&#x1D434;</span>=<span>1D434</span></span>
+ <span><span class="testfont">&#x1D435;</span>=<span>1D435</span></span>
+ <span><span class="testfont">&#x1D436;</span>=<span>1D436</span></span>
+ <span><span class="testfont">&#x1D437;</span>=<span>1D437</span></span>
+ <span><span class="testfont">&#x1D438;</span>=<span>1D438</span></span>
+ <span><span class="testfont">&#x1D439;</span>=<span>1D439</span></span>
+ <span><span class="testfont">&#x1D43A;</span>=<span>1D43A</span></span><br/>
+ <span><span class="testfont">&#x1D43B;</span>=<span>1D43B</span></span>
+ <span><span class="testfont">&#x1D43C;</span>=<span>1D43C</span></span>
+ <span><span class="testfont">&#x1D43D;</span>=<span>1D43D</span></span>
+ <span><span class="testfont">&#x1D43E;</span>=<span>1D43E</span></span>
+ <span><span class="testfont">&#x1D43F;</span>=<span>1D43F</span></span>
+ <span><span class="testfont">&#x1D440;</span>=<span>1D440</span></span>
+ <span><span class="testfont">&#x1D441;</span>=<span>1D441</span></span>
+ <span><span class="testfont">&#x1D442;</span>=<span>1D442</span></span>
+ <span><span class="testfont">&#x1D443;</span>=<span>1D443</span></span>
+ <span><span class="testfont">&#x1D444;</span>=<span>1D444</span></span><br/>
+ <span><span class="testfont">&#x1D445;</span>=<span>1D445</span></span>
+ <span><span class="testfont">&#x1D446;</span>=<span>1D446</span></span>
+ <span><span class="testfont">&#x1D447;</span>=<span>1D447</span></span>
+ <span><span class="testfont">&#x1D448;</span>=<span>1D448</span></span>
+ <span><span class="testfont">&#x1D449;</span>=<span>1D449</span></span>
+ <span><span class="testfont">&#x1D44A;</span>=<span>1D44A</span></span>
+ <span><span class="testfont">&#x1D44B;</span>=<span>1D44B</span></span>
+ <span><span class="testfont">&#x1D44C;</span>=<span>1D44C</span></span>
+ <span><span class="testfont">&#x1D44D;</span>=<span>1D44D</span></span>
+ <span><span class="testfont">&#x1D44E;</span>=<span>1D44E</span></span><br/>
+ <span><span class="testfont">&#x1D44F;</span>=<span>1D44F</span></span>
+ <span><span class="testfont">&#x1D450;</span>=<span>1D450</span></span>
+ <span><span class="testfont">&#x1D451;</span>=<span>1D451</span></span>
+ <span><span class="testfont">&#x1D452;</span>=<span>1D452</span></span>
+ <span><span class="testfont">&#x1D453;</span>=<span>1D453</span></span>
+ <span><span class="testfont">&#x1D454;</span>=<span>1D454</span></span>
+ <span><span class="testfont">&#x210E;</span>=<span>0210E</span></span>
+ <span><span class="testfont">&#x1D456;</span>=<span>1D456</span></span>
+ <span><span class="testfont">&#x1D457;</span>=<span>1D457</span></span>
+ <span><span class="testfont">&#x1D458;</span>=<span>1D458</span></span><br/>
+ <span><span class="testfont">&#x1D459;</span>=<span>1D459</span></span>
+ <span><span class="testfont">&#x1D45A;</span>=<span>1D45A</span></span>
+ <span><span class="testfont">&#x1D45B;</span>=<span>1D45B</span></span>
+ <span><span class="testfont">&#x1D45C;</span>=<span>1D45C</span></span>
+ <span><span class="testfont">&#x1D45D;</span>=<span>1D45D</span></span>
+ <span><span class="testfont">&#x1D45E;</span>=<span>1D45E</span></span>
+ <span><span class="testfont">&#x1D45F;</span>=<span>1D45F</span></span>
+ <span><span class="testfont">&#x1D460;</span>=<span>1D460</span></span>
+ <span><span class="testfont">&#x1D461;</span>=<span>1D461</span></span>
+ <span><span class="testfont">&#x1D462;</span>=<span>1D462</span></span><br/>
+ <span><span class="testfont">&#x1D463;</span>=<span>1D463</span></span>
+ <span><span class="testfont">&#x1D464;</span>=<span>1D464</span></span>
+ <span><span class="testfont">&#x1D465;</span>=<span>1D465</span></span>
+ <span><span class="testfont">&#x1D466;</span>=<span>1D466</span></span>
+ <span><span class="testfont">&#x1D467;</span>=<span>1D467</span></span>
+ <span><span class="testfont">&#x1D6A4;</span>=<span>1D6A4</span></span>
+ <span><span class="testfont">&#x1D6E2;</span>=<span>1D6E2</span></span>
+ <span><span class="testfont">&#x1D6E3;</span>=<span>1D6E3</span></span>
+ <span><span class="testfont">&#x1D6E4;</span>=<span>1D6E4</span></span>
+ <span><span class="testfont">&#x1D6E5;</span>=<span>1D6E5</span></span><br/>
+ <span><span class="testfont">&#x1D6E6;</span>=<span>1D6E6</span></span>
+ <span><span class="testfont">&#x1D6E7;</span>=<span>1D6E7</span></span>
+ <span><span class="testfont">&#x1D6E8;</span>=<span>1D6E8</span></span>
+ <span><span class="testfont">&#x1D6E9;</span>=<span>1D6E9</span></span>
+ <span><span class="testfont">&#x1D6EA;</span>=<span>1D6EA</span></span>
+ <span><span class="testfont">&#x1D6EB;</span>=<span>1D6EB</span></span>
+ <span><span class="testfont">&#x1D6EC;</span>=<span>1D6EC</span></span>
+ <span><span class="testfont">&#x1D6ED;</span>=<span>1D6ED</span></span>
+ <span><span class="testfont">&#x1D6EE;</span>=<span>1D6EE</span></span>
+ <span><span class="testfont">&#x1D6EF;</span>=<span>1D6EF</span></span><br/>
+ <span><span class="testfont">&#x1D6F0;</span>=<span>1D6F0</span></span>
+ <span><span class="testfont">&#x1D6F1;</span>=<span>1D6F1</span></span>
+ <span><span class="testfont">&#x1D6F2;</span>=<span>1D6F2</span></span>
+ <span><span class="testfont">&#x1D6F4;</span>=<span>1D6F4</span></span>
+ <span><span class="testfont">&#x1D6F5;</span>=<span>1D6F5</span></span>
+ <span><span class="testfont">&#x1D6F6;</span>=<span>1D6F6</span></span>
+ <span><span class="testfont">&#x1D6F7;</span>=<span>1D6F7</span></span>
+ <span><span class="testfont">&#x1D6F8;</span>=<span>1D6F8</span></span>
+ <span><span class="testfont">&#x1D6F9;</span>=<span>1D6F9</span></span>
+ <span><span class="testfont">&#x1D6FA;</span>=<span>1D6FA</span></span><br/>
+ <span><span class="testfont">&#x1D6FC;</span>=<span>1D6FC</span></span>
+ <span><span class="testfont">&#x1D6FD;</span>=<span>1D6FD</span></span>
+ <span><span class="testfont">&#x1D6FE;</span>=<span>1D6FE</span></span>
+ <span><span class="testfont">&#x1D6FF;</span>=<span>1D6FF</span></span>
+ <span><span class="testfont">&#x1D700;</span>=<span>1D700</span></span>
+ <span><span class="testfont">&#x1D701;</span>=<span>1D701</span></span>
+ <span><span class="testfont">&#x1D702;</span>=<span>1D702</span></span>
+ <span><span class="testfont">&#x1D703;</span>=<span>1D703</span></span>
+ <span><span class="testfont">&#x1D704;</span>=<span>1D704</span></span>
+ <span><span class="testfont">&#x1D705;</span>=<span>1D705</span></span><br/>
+ <span><span class="testfont">&#x1D706;</span>=<span>1D706</span></span>
+ <span><span class="testfont">&#x1D707;</span>=<span>1D707</span></span>
+ <span><span class="testfont">&#x1D708;</span>=<span>1D708</span></span>
+ <span><span class="testfont">&#x1D709;</span>=<span>1D709</span></span>
+ <span><span class="testfont">&#x1D70A;</span>=<span>1D70A</span></span>
+ <span><span class="testfont">&#x1D70B;</span>=<span>1D70B</span></span>
+ <span><span class="testfont">&#x1D70C;</span>=<span>1D70C</span></span>
+ <span><span class="testfont">&#x1D70D;</span>=<span>1D70D</span></span>
+ <span><span class="testfont">&#x1D70E;</span>=<span>1D70E</span></span>
+ <span><span class="testfont">&#x1D70F;</span>=<span>1D70F</span></span><br/>
+ <span><span class="testfont">&#x1D710;</span>=<span>1D710</span></span>
+ <span><span class="testfont">&#x1D711;</span>=<span>1D711</span></span>
+ <span><span class="testfont">&#x1D712;</span>=<span>1D712</span></span>
+ <span><span class="testfont">&#x1D713;</span>=<span>1D713</span></span>
+ <span><span class="testfont">&#x1D714;</span>=<span>1D714</span></span>
+ <span><span class="testfont">&#x1D717;</span>=<span>1D717</span></span>
+ <span><span class="testfont">&#x1D719;</span>=<span>1D719</span></span>
+ <span><span class="testfont">&#x1D71B;</span>=<span>1D71B</span></span>
+ <span><span class="testfont">&#x1D718;</span>=<span>1D718</span></span>
+ <span><span class="testfont">&#x1D71A;</span>=<span>1D71A</span></span><br/>
+ <span><span class="testfont">&#x1D6F3;</span>=<span>1D6F3</span></span>
+ <span><span class="testfont">&#x1D716;</span>=<span>1D716</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html
new file mode 100644
index 0000000000..f5f08f68b2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-auto</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#italic-mappings">
+<link rel="match" href="text-transform-math-auto-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-auto' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-auto">&#x2202;</span>=<span>1D715</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x2207;</span>=<span>1D6FB</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x237;</span>=<span>1D6A5</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x41;</span>=<span>1D434</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x42;</span>=<span>1D435</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x43;</span>=<span>1D436</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x44;</span>=<span>1D437</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x45;</span>=<span>1D438</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x46;</span>=<span>1D439</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x47;</span>=<span>1D43A</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x48;</span>=<span>1D43B</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x49;</span>=<span>1D43C</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4A;</span>=<span>1D43D</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4B;</span>=<span>1D43E</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4C;</span>=<span>1D43F</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4D;</span>=<span>1D440</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4E;</span>=<span>1D441</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x4F;</span>=<span>1D442</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x50;</span>=<span>1D443</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x51;</span>=<span>1D444</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x52;</span>=<span>1D445</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x53;</span>=<span>1D446</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x54;</span>=<span>1D447</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x55;</span>=<span>1D448</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x56;</span>=<span>1D449</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x57;</span>=<span>1D44A</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x58;</span>=<span>1D44B</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x59;</span>=<span>1D44C</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x5A;</span>=<span>1D44D</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x61;</span>=<span>1D44E</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x62;</span>=<span>1D44F</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x63;</span>=<span>1D450</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x64;</span>=<span>1D451</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x65;</span>=<span>1D452</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x66;</span>=<span>1D453</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x67;</span>=<span>1D454</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x68;</span>=<span>0210E</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x69;</span>=<span>1D456</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6A;</span>=<span>1D457</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6B;</span>=<span>1D458</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6C;</span>=<span>1D459</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6D;</span>=<span>1D45A</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6E;</span>=<span>1D45B</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x6F;</span>=<span>1D45C</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x70;</span>=<span>1D45D</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x71;</span>=<span>1D45E</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x72;</span>=<span>1D45F</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x73;</span>=<span>1D460</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x74;</span>=<span>1D461</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x75;</span>=<span>1D462</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x76;</span>=<span>1D463</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x77;</span>=<span>1D464</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x78;</span>=<span>1D465</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x79;</span>=<span>1D466</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x7A;</span>=<span>1D467</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x131;</span>=<span>1D6A4</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x391;</span>=<span>1D6E2</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x392;</span>=<span>1D6E3</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x393;</span>=<span>1D6E4</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x394;</span>=<span>1D6E5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x395;</span>=<span>1D6E6</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x396;</span>=<span>1D6E7</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x397;</span>=<span>1D6E8</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x398;</span>=<span>1D6E9</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x399;</span>=<span>1D6EA</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39A;</span>=<span>1D6EB</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39B;</span>=<span>1D6EC</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39C;</span>=<span>1D6ED</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39D;</span>=<span>1D6EE</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39E;</span>=<span>1D6EF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x39F;</span>=<span>1D6F0</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A0;</span>=<span>1D6F1</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A1;</span>=<span>1D6F2</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A3;</span>=<span>1D6F4</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A4;</span>=<span>1D6F5</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A5;</span>=<span>1D6F6</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A6;</span>=<span>1D6F7</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A7;</span>=<span>1D6F8</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A8;</span>=<span>1D6F9</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3A9;</span>=<span>1D6FA</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B1;</span>=<span>1D6FC</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B2;</span>=<span>1D6FD</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B3;</span>=<span>1D6FE</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B4;</span>=<span>1D6FF</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B5;</span>=<span>1D700</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B6;</span>=<span>1D701</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B7;</span>=<span>1D702</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B8;</span>=<span>1D703</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3B9;</span>=<span>1D704</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BA;</span>=<span>1D705</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BB;</span>=<span>1D706</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BC;</span>=<span>1D707</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BD;</span>=<span>1D708</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BE;</span>=<span>1D709</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3BF;</span>=<span>1D70A</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C0;</span>=<span>1D70B</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C1;</span>=<span>1D70C</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C2;</span>=<span>1D70D</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C3;</span>=<span>1D70E</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C4;</span>=<span>1D70F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C5;</span>=<span>1D710</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C6;</span>=<span>1D711</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C7;</span>=<span>1D712</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C8;</span>=<span>1D713</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3C9;</span>=<span>1D714</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3D1;</span>=<span>1D717</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3D5;</span>=<span>1D719</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3D6;</span>=<span>1D71B</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3F0;</span>=<span>1D718</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3F1;</span>=<span>1D71A</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3F4;</span>=<span>1D6F3</span></span>
+ <span><span class="testfont" style="text-transform: math-auto">&#x3F5;</span>=<span>1D716</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html
new file mode 100644
index 0000000000..1c1d6e2770
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-auto (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > div {
+ padding: 10px;
+ }
+ div > span {
+ font-family: monospace;
+ font-size: 16px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 16px;
+ }
+</style>
+<body>
+ <p>Test passes if all the equalities below are true.</p>
+ <div>Single character: <span class="testfont">&#x1D715;</span>=<span>1D715</span></div>
+ <div>Two characters: <span class="testfont">&#x2202;&#x2207;</span>=<span>0220202207</span></div>
+ <div>Three characters: <span class="testfont">&#x2202;&#x2207;&#x237;</span>=<span>022020220700237</span></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html
new file mode 100644
index 0000000000..32bad74f94
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-auto-002.tentative.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-auto</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="match" href="text-transform-math-auto-002.tentative-ref.html"/>
+<meta name="assert" content="Test 'text-transform: math-auto' for text nodes of different lengths">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > div {
+ padding: 10px;
+ }
+ div > span {
+ font-family: monospace;
+ font-size: 16px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 16px;
+ }
+</style>
+<body>
+ <p>Test passes if all the equalities below are true.</p>
+ <div>Single character: <span class="testfont" style="text-transform: math-auto">&#x2202;</span>=<span>1D715</span></div>
+ <div>Two characters: <span class="testfont" style="text-transform: math-auto">&#x2202;&#x2207;</span>=<span>0220202207</span></div>
+ <div>Three characters: <span class="testfont" style="text-transform: math-auto">&#x2202;&#x2207;&#x237;</span>=<span>022020220700237</span></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html
new file mode 100644
index 0000000000..24b8300334
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative-ref.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D6DB;</span>=<span>1D6DB</span></span>
+ <span><span class="testfont">&#x1D6C1;</span>=<span>1D6C1</span></span>
+ <span><span class="testfont">&#x1D7CE;</span>=<span>1D7CE</span></span>
+ <span><span class="testfont">&#x1D7CF;</span>=<span>1D7CF</span></span>
+ <span><span class="testfont">&#x1D7D0;</span>=<span>1D7D0</span></span>
+ <span><span class="testfont">&#x1D7D1;</span>=<span>1D7D1</span></span>
+ <span><span class="testfont">&#x1D7D2;</span>=<span>1D7D2</span></span>
+ <span><span class="testfont">&#x1D7D3;</span>=<span>1D7D3</span></span>
+ <span><span class="testfont">&#x1D7D4;</span>=<span>1D7D4</span></span>
+ <span><span class="testfont">&#x1D7D5;</span>=<span>1D7D5</span></span><br/>
+ <span><span class="testfont">&#x1D7D6;</span>=<span>1D7D6</span></span>
+ <span><span class="testfont">&#x1D7D7;</span>=<span>1D7D7</span></span>
+ <span><span class="testfont">&#x1D400;</span>=<span>1D400</span></span>
+ <span><span class="testfont">&#x1D401;</span>=<span>1D401</span></span>
+ <span><span class="testfont">&#x1D402;</span>=<span>1D402</span></span>
+ <span><span class="testfont">&#x1D403;</span>=<span>1D403</span></span>
+ <span><span class="testfont">&#x1D404;</span>=<span>1D404</span></span>
+ <span><span class="testfont">&#x1D405;</span>=<span>1D405</span></span>
+ <span><span class="testfont">&#x1D406;</span>=<span>1D406</span></span>
+ <span><span class="testfont">&#x1D407;</span>=<span>1D407</span></span><br/>
+ <span><span class="testfont">&#x1D408;</span>=<span>1D408</span></span>
+ <span><span class="testfont">&#x1D409;</span>=<span>1D409</span></span>
+ <span><span class="testfont">&#x1D40A;</span>=<span>1D40A</span></span>
+ <span><span class="testfont">&#x1D40B;</span>=<span>1D40B</span></span>
+ <span><span class="testfont">&#x1D40C;</span>=<span>1D40C</span></span>
+ <span><span class="testfont">&#x1D40D;</span>=<span>1D40D</span></span>
+ <span><span class="testfont">&#x1D40E;</span>=<span>1D40E</span></span>
+ <span><span class="testfont">&#x1D40F;</span>=<span>1D40F</span></span>
+ <span><span class="testfont">&#x1D410;</span>=<span>1D410</span></span>
+ <span><span class="testfont">&#x1D411;</span>=<span>1D411</span></span><br/>
+ <span><span class="testfont">&#x1D412;</span>=<span>1D412</span></span>
+ <span><span class="testfont">&#x1D413;</span>=<span>1D413</span></span>
+ <span><span class="testfont">&#x1D414;</span>=<span>1D414</span></span>
+ <span><span class="testfont">&#x1D415;</span>=<span>1D415</span></span>
+ <span><span class="testfont">&#x1D416;</span>=<span>1D416</span></span>
+ <span><span class="testfont">&#x1D417;</span>=<span>1D417</span></span>
+ <span><span class="testfont">&#x1D418;</span>=<span>1D418</span></span>
+ <span><span class="testfont">&#x1D419;</span>=<span>1D419</span></span>
+ <span><span class="testfont">&#x1D41A;</span>=<span>1D41A</span></span>
+ <span><span class="testfont">&#x1D41B;</span>=<span>1D41B</span></span><br/>
+ <span><span class="testfont">&#x1D41C;</span>=<span>1D41C</span></span>
+ <span><span class="testfont">&#x1D41D;</span>=<span>1D41D</span></span>
+ <span><span class="testfont">&#x1D41E;</span>=<span>1D41E</span></span>
+ <span><span class="testfont">&#x1D41F;</span>=<span>1D41F</span></span>
+ <span><span class="testfont">&#x1D420;</span>=<span>1D420</span></span>
+ <span><span class="testfont">&#x1D421;</span>=<span>1D421</span></span>
+ <span><span class="testfont">&#x1D422;</span>=<span>1D422</span></span>
+ <span><span class="testfont">&#x1D423;</span>=<span>1D423</span></span>
+ <span><span class="testfont">&#x1D424;</span>=<span>1D424</span></span>
+ <span><span class="testfont">&#x1D425;</span>=<span>1D425</span></span><br/>
+ <span><span class="testfont">&#x1D426;</span>=<span>1D426</span></span>
+ <span><span class="testfont">&#x1D427;</span>=<span>1D427</span></span>
+ <span><span class="testfont">&#x1D428;</span>=<span>1D428</span></span>
+ <span><span class="testfont">&#x1D429;</span>=<span>1D429</span></span>
+ <span><span class="testfont">&#x1D42A;</span>=<span>1D42A</span></span>
+ <span><span class="testfont">&#x1D42B;</span>=<span>1D42B</span></span>
+ <span><span class="testfont">&#x1D42C;</span>=<span>1D42C</span></span>
+ <span><span class="testfont">&#x1D42D;</span>=<span>1D42D</span></span>
+ <span><span class="testfont">&#x1D42E;</span>=<span>1D42E</span></span>
+ <span><span class="testfont">&#x1D42F;</span>=<span>1D42F</span></span><br/>
+ <span><span class="testfont">&#x1D430;</span>=<span>1D430</span></span>
+ <span><span class="testfont">&#x1D431;</span>=<span>1D431</span></span>
+ <span><span class="testfont">&#x1D432;</span>=<span>1D432</span></span>
+ <span><span class="testfont">&#x1D433;</span>=<span>1D433</span></span>
+ <span><span class="testfont">&#x1D6A8;</span>=<span>1D6A8</span></span>
+ <span><span class="testfont">&#x1D6A9;</span>=<span>1D6A9</span></span>
+ <span><span class="testfont">&#x1D6AA;</span>=<span>1D6AA</span></span>
+ <span><span class="testfont">&#x1D6AB;</span>=<span>1D6AB</span></span>
+ <span><span class="testfont">&#x1D6AC;</span>=<span>1D6AC</span></span>
+ <span><span class="testfont">&#x1D6AD;</span>=<span>1D6AD</span></span><br/>
+ <span><span class="testfont">&#x1D6AE;</span>=<span>1D6AE</span></span>
+ <span><span class="testfont">&#x1D6AF;</span>=<span>1D6AF</span></span>
+ <span><span class="testfont">&#x1D6B0;</span>=<span>1D6B0</span></span>
+ <span><span class="testfont">&#x1D6B1;</span>=<span>1D6B1</span></span>
+ <span><span class="testfont">&#x1D6B2;</span>=<span>1D6B2</span></span>
+ <span><span class="testfont">&#x1D6B3;</span>=<span>1D6B3</span></span>
+ <span><span class="testfont">&#x1D6B4;</span>=<span>1D6B4</span></span>
+ <span><span class="testfont">&#x1D6B5;</span>=<span>1D6B5</span></span>
+ <span><span class="testfont">&#x1D6B6;</span>=<span>1D6B6</span></span>
+ <span><span class="testfont">&#x1D6B7;</span>=<span>1D6B7</span></span><br/>
+ <span><span class="testfont">&#x1D6B8;</span>=<span>1D6B8</span></span>
+ <span><span class="testfont">&#x1D6BA;</span>=<span>1D6BA</span></span>
+ <span><span class="testfont">&#x1D6BB;</span>=<span>1D6BB</span></span>
+ <span><span class="testfont">&#x1D6BC;</span>=<span>1D6BC</span></span>
+ <span><span class="testfont">&#x1D6BD;</span>=<span>1D6BD</span></span>
+ <span><span class="testfont">&#x1D6BE;</span>=<span>1D6BE</span></span>
+ <span><span class="testfont">&#x1D6BF;</span>=<span>1D6BF</span></span>
+ <span><span class="testfont">&#x1D6C0;</span>=<span>1D6C0</span></span>
+ <span><span class="testfont">&#x1D6C2;</span>=<span>1D6C2</span></span>
+ <span><span class="testfont">&#x1D6C3;</span>=<span>1D6C3</span></span><br/>
+ <span><span class="testfont">&#x1D6C4;</span>=<span>1D6C4</span></span>
+ <span><span class="testfont">&#x1D6C5;</span>=<span>1D6C5</span></span>
+ <span><span class="testfont">&#x1D6C6;</span>=<span>1D6C6</span></span>
+ <span><span class="testfont">&#x1D6C7;</span>=<span>1D6C7</span></span>
+ <span><span class="testfont">&#x1D6C8;</span>=<span>1D6C8</span></span>
+ <span><span class="testfont">&#x1D6C9;</span>=<span>1D6C9</span></span>
+ <span><span class="testfont">&#x1D6CA;</span>=<span>1D6CA</span></span>
+ <span><span class="testfont">&#x1D6CB;</span>=<span>1D6CB</span></span>
+ <span><span class="testfont">&#x1D6CC;</span>=<span>1D6CC</span></span>
+ <span><span class="testfont">&#x1D6CD;</span>=<span>1D6CD</span></span><br/>
+ <span><span class="testfont">&#x1D6CE;</span>=<span>1D6CE</span></span>
+ <span><span class="testfont">&#x1D6CF;</span>=<span>1D6CF</span></span>
+ <span><span class="testfont">&#x1D6D0;</span>=<span>1D6D0</span></span>
+ <span><span class="testfont">&#x1D6D1;</span>=<span>1D6D1</span></span>
+ <span><span class="testfont">&#x1D6D2;</span>=<span>1D6D2</span></span>
+ <span><span class="testfont">&#x1D6D3;</span>=<span>1D6D3</span></span>
+ <span><span class="testfont">&#x1D6D4;</span>=<span>1D6D4</span></span>
+ <span><span class="testfont">&#x1D6D5;</span>=<span>1D6D5</span></span>
+ <span><span class="testfont">&#x1D6D6;</span>=<span>1D6D6</span></span>
+ <span><span class="testfont">&#x1D6D7;</span>=<span>1D6D7</span></span><br/>
+ <span><span class="testfont">&#x1D6D8;</span>=<span>1D6D8</span></span>
+ <span><span class="testfont">&#x1D6D9;</span>=<span>1D6D9</span></span>
+ <span><span class="testfont">&#x1D6DA;</span>=<span>1D6DA</span></span>
+ <span><span class="testfont">&#x1D6DD;</span>=<span>1D6DD</span></span>
+ <span><span class="testfont">&#x1D6DF;</span>=<span>1D6DF</span></span>
+ <span><span class="testfont">&#x1D6E1;</span>=<span>1D6E1</span></span>
+ <span><span class="testfont">&#x1D7CA;</span>=<span>1D7CA</span></span>
+ <span><span class="testfont">&#x1D7CB;</span>=<span>1D7CB</span></span>
+ <span><span class="testfont">&#x1D6DE;</span>=<span>1D6DE</span></span>
+ <span><span class="testfont">&#x1D6E0;</span>=<span>1D6E0</span></span><br/>
+ <span><span class="testfont">&#x1D6B9;</span>=<span>1D6B9</span></span>
+ <span><span class="testfont">&#x1D6DC;</span>=<span>1D6DC</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html
new file mode 100644
index 0000000000..06b9ea6f6f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-001.tentative.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-mappings">
+<link rel="match" href="text-transform-math-bold-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-bold' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-bold">&#x2202;</span>=<span>1D6DB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x2207;</span>=<span>1D6C1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x30;</span>=<span>1D7CE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x31;</span>=<span>1D7CF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x32;</span>=<span>1D7D0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x33;</span>=<span>1D7D1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x34;</span>=<span>1D7D2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x35;</span>=<span>1D7D3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x36;</span>=<span>1D7D4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x37;</span>=<span>1D7D5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x38;</span>=<span>1D7D6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39;</span>=<span>1D7D7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x41;</span>=<span>1D400</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x42;</span>=<span>1D401</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x43;</span>=<span>1D402</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x44;</span>=<span>1D403</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x45;</span>=<span>1D404</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x46;</span>=<span>1D405</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x47;</span>=<span>1D406</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x48;</span>=<span>1D407</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x49;</span>=<span>1D408</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4A;</span>=<span>1D409</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4B;</span>=<span>1D40A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4C;</span>=<span>1D40B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4D;</span>=<span>1D40C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4E;</span>=<span>1D40D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x4F;</span>=<span>1D40E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x50;</span>=<span>1D40F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x51;</span>=<span>1D410</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x52;</span>=<span>1D411</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x53;</span>=<span>1D412</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x54;</span>=<span>1D413</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x55;</span>=<span>1D414</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x56;</span>=<span>1D415</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x57;</span>=<span>1D416</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x58;</span>=<span>1D417</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x59;</span>=<span>1D418</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x5A;</span>=<span>1D419</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x61;</span>=<span>1D41A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x62;</span>=<span>1D41B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x63;</span>=<span>1D41C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x64;</span>=<span>1D41D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x65;</span>=<span>1D41E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x66;</span>=<span>1D41F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x67;</span>=<span>1D420</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x68;</span>=<span>1D421</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x69;</span>=<span>1D422</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6A;</span>=<span>1D423</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6B;</span>=<span>1D424</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6C;</span>=<span>1D425</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6D;</span>=<span>1D426</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6E;</span>=<span>1D427</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x6F;</span>=<span>1D428</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x70;</span>=<span>1D429</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x71;</span>=<span>1D42A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x72;</span>=<span>1D42B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x73;</span>=<span>1D42C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x74;</span>=<span>1D42D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x75;</span>=<span>1D42E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x76;</span>=<span>1D42F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x77;</span>=<span>1D430</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x78;</span>=<span>1D431</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x79;</span>=<span>1D432</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x7A;</span>=<span>1D433</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x391;</span>=<span>1D6A8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x392;</span>=<span>1D6A9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x393;</span>=<span>1D6AA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x394;</span>=<span>1D6AB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x395;</span>=<span>1D6AC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x396;</span>=<span>1D6AD</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x397;</span>=<span>1D6AE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x398;</span>=<span>1D6AF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x399;</span>=<span>1D6B0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39A;</span>=<span>1D6B1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39B;</span>=<span>1D6B2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39C;</span>=<span>1D6B3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39D;</span>=<span>1D6B4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39E;</span>=<span>1D6B5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x39F;</span>=<span>1D6B6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A0;</span>=<span>1D6B7</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A1;</span>=<span>1D6B8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A3;</span>=<span>1D6BA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A4;</span>=<span>1D6BB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A5;</span>=<span>1D6BC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A6;</span>=<span>1D6BD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A7;</span>=<span>1D6BE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A8;</span>=<span>1D6BF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3A9;</span>=<span>1D6C0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B1;</span>=<span>1D6C2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B2;</span>=<span>1D6C3</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B3;</span>=<span>1D6C4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B4;</span>=<span>1D6C5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B5;</span>=<span>1D6C6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B6;</span>=<span>1D6C7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B7;</span>=<span>1D6C8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B8;</span>=<span>1D6C9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3B9;</span>=<span>1D6CA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BA;</span>=<span>1D6CB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BB;</span>=<span>1D6CC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BC;</span>=<span>1D6CD</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BD;</span>=<span>1D6CE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BE;</span>=<span>1D6CF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3BF;</span>=<span>1D6D0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C0;</span>=<span>1D6D1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C1;</span>=<span>1D6D2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C2;</span>=<span>1D6D3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C3;</span>=<span>1D6D4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C4;</span>=<span>1D6D5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C5;</span>=<span>1D6D6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C6;</span>=<span>1D6D7</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C7;</span>=<span>1D6D8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C8;</span>=<span>1D6D9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3C9;</span>=<span>1D6DA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3D1;</span>=<span>1D6DD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3D5;</span>=<span>1D6DF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3D6;</span>=<span>1D6E1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3DC;</span>=<span>1D7CA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3DD;</span>=<span>1D7CB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3F0;</span>=<span>1D6DE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3F1;</span>=<span>1D6E0</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3F4;</span>=<span>1D6B9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold">&#x3F5;</span>=<span>1D6DC</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html
new file mode 100644
index 0000000000..36339bdd46
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-fraktur (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D56C;</span>=<span>1D56C</span></span>
+ <span><span class="testfont">&#x1D56D;</span>=<span>1D56D</span></span>
+ <span><span class="testfont">&#x1D56E;</span>=<span>1D56E</span></span>
+ <span><span class="testfont">&#x1D56F;</span>=<span>1D56F</span></span>
+ <span><span class="testfont">&#x1D570;</span>=<span>1D570</span></span>
+ <span><span class="testfont">&#x1D571;</span>=<span>1D571</span></span>
+ <span><span class="testfont">&#x1D572;</span>=<span>1D572</span></span>
+ <span><span class="testfont">&#x1D573;</span>=<span>1D573</span></span>
+ <span><span class="testfont">&#x1D574;</span>=<span>1D574</span></span>
+ <span><span class="testfont">&#x1D575;</span>=<span>1D575</span></span><br/>
+ <span><span class="testfont">&#x1D576;</span>=<span>1D576</span></span>
+ <span><span class="testfont">&#x1D577;</span>=<span>1D577</span></span>
+ <span><span class="testfont">&#x1D578;</span>=<span>1D578</span></span>
+ <span><span class="testfont">&#x1D579;</span>=<span>1D579</span></span>
+ <span><span class="testfont">&#x1D57A;</span>=<span>1D57A</span></span>
+ <span><span class="testfont">&#x1D57B;</span>=<span>1D57B</span></span>
+ <span><span class="testfont">&#x1D57C;</span>=<span>1D57C</span></span>
+ <span><span class="testfont">&#x1D57D;</span>=<span>1D57D</span></span>
+ <span><span class="testfont">&#x1D57E;</span>=<span>1D57E</span></span>
+ <span><span class="testfont">&#x1D57F;</span>=<span>1D57F</span></span><br/>
+ <span><span class="testfont">&#x1D580;</span>=<span>1D580</span></span>
+ <span><span class="testfont">&#x1D581;</span>=<span>1D581</span></span>
+ <span><span class="testfont">&#x1D582;</span>=<span>1D582</span></span>
+ <span><span class="testfont">&#x1D583;</span>=<span>1D583</span></span>
+ <span><span class="testfont">&#x1D584;</span>=<span>1D584</span></span>
+ <span><span class="testfont">&#x1D585;</span>=<span>1D585</span></span>
+ <span><span class="testfont">&#x1D586;</span>=<span>1D586</span></span>
+ <span><span class="testfont">&#x1D587;</span>=<span>1D587</span></span>
+ <span><span class="testfont">&#x1D588;</span>=<span>1D588</span></span>
+ <span><span class="testfont">&#x1D589;</span>=<span>1D589</span></span><br/>
+ <span><span class="testfont">&#x1D58A;</span>=<span>1D58A</span></span>
+ <span><span class="testfont">&#x1D58B;</span>=<span>1D58B</span></span>
+ <span><span class="testfont">&#x1D58C;</span>=<span>1D58C</span></span>
+ <span><span class="testfont">&#x1D58D;</span>=<span>1D58D</span></span>
+ <span><span class="testfont">&#x1D58E;</span>=<span>1D58E</span></span>
+ <span><span class="testfont">&#x1D58F;</span>=<span>1D58F</span></span>
+ <span><span class="testfont">&#x1D590;</span>=<span>1D590</span></span>
+ <span><span class="testfont">&#x1D591;</span>=<span>1D591</span></span>
+ <span><span class="testfont">&#x1D592;</span>=<span>1D592</span></span>
+ <span><span class="testfont">&#x1D593;</span>=<span>1D593</span></span><br/>
+ <span><span class="testfont">&#x1D594;</span>=<span>1D594</span></span>
+ <span><span class="testfont">&#x1D595;</span>=<span>1D595</span></span>
+ <span><span class="testfont">&#x1D596;</span>=<span>1D596</span></span>
+ <span><span class="testfont">&#x1D597;</span>=<span>1D597</span></span>
+ <span><span class="testfont">&#x1D598;</span>=<span>1D598</span></span>
+ <span><span class="testfont">&#x1D599;</span>=<span>1D599</span></span>
+ <span><span class="testfont">&#x1D59A;</span>=<span>1D59A</span></span>
+ <span><span class="testfont">&#x1D59B;</span>=<span>1D59B</span></span>
+ <span><span class="testfont">&#x1D59C;</span>=<span>1D59C</span></span>
+ <span><span class="testfont">&#x1D59D;</span>=<span>1D59D</span></span><br/>
+ <span><span class="testfont">&#x1D59E;</span>=<span>1D59E</span></span>
+ <span><span class="testfont">&#x1D59F;</span>=<span>1D59F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html
new file mode 100644
index 0000000000..76de9454fe
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-fraktur-001.tentative.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-fraktur</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-fraktur-mappings">
+<link rel="match" href="text-transform-math-bold-fraktur-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-bold-fraktur' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x41;</span>=<span>1D56C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x42;</span>=<span>1D56D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x43;</span>=<span>1D56E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x44;</span>=<span>1D56F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x45;</span>=<span>1D570</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x46;</span>=<span>1D571</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x47;</span>=<span>1D572</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x48;</span>=<span>1D573</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x49;</span>=<span>1D574</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4A;</span>=<span>1D575</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4B;</span>=<span>1D576</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4C;</span>=<span>1D577</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4D;</span>=<span>1D578</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4E;</span>=<span>1D579</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x4F;</span>=<span>1D57A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x50;</span>=<span>1D57B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x51;</span>=<span>1D57C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x52;</span>=<span>1D57D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x53;</span>=<span>1D57E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x54;</span>=<span>1D57F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x55;</span>=<span>1D580</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x56;</span>=<span>1D581</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x57;</span>=<span>1D582</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x58;</span>=<span>1D583</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x59;</span>=<span>1D584</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x5A;</span>=<span>1D585</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x61;</span>=<span>1D586</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x62;</span>=<span>1D587</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x63;</span>=<span>1D588</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x64;</span>=<span>1D589</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x65;</span>=<span>1D58A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x66;</span>=<span>1D58B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x67;</span>=<span>1D58C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x68;</span>=<span>1D58D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x69;</span>=<span>1D58E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6A;</span>=<span>1D58F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6B;</span>=<span>1D590</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6C;</span>=<span>1D591</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6D;</span>=<span>1D592</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6E;</span>=<span>1D593</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x6F;</span>=<span>1D594</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x70;</span>=<span>1D595</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x71;</span>=<span>1D596</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x72;</span>=<span>1D597</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x73;</span>=<span>1D598</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x74;</span>=<span>1D599</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x75;</span>=<span>1D59A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x76;</span>=<span>1D59B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x77;</span>=<span>1D59C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x78;</span>=<span>1D59D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x79;</span>=<span>1D59E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-fraktur">&#x7A;</span>=<span>1D59F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html
new file mode 100644
index 0000000000..e4e70cf803
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative-ref.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D74F;</span>=<span>1D74F</span></span>
+ <span><span class="testfont">&#x1D735;</span>=<span>1D735</span></span>
+ <span><span class="testfont">&#x1D468;</span>=<span>1D468</span></span>
+ <span><span class="testfont">&#x1D469;</span>=<span>1D469</span></span>
+ <span><span class="testfont">&#x1D46A;</span>=<span>1D46A</span></span>
+ <span><span class="testfont">&#x1D46B;</span>=<span>1D46B</span></span>
+ <span><span class="testfont">&#x1D46C;</span>=<span>1D46C</span></span>
+ <span><span class="testfont">&#x1D46D;</span>=<span>1D46D</span></span>
+ <span><span class="testfont">&#x1D46E;</span>=<span>1D46E</span></span>
+ <span><span class="testfont">&#x1D46F;</span>=<span>1D46F</span></span><br/>
+ <span><span class="testfont">&#x1D470;</span>=<span>1D470</span></span>
+ <span><span class="testfont">&#x1D471;</span>=<span>1D471</span></span>
+ <span><span class="testfont">&#x1D472;</span>=<span>1D472</span></span>
+ <span><span class="testfont">&#x1D473;</span>=<span>1D473</span></span>
+ <span><span class="testfont">&#x1D474;</span>=<span>1D474</span></span>
+ <span><span class="testfont">&#x1D475;</span>=<span>1D475</span></span>
+ <span><span class="testfont">&#x1D476;</span>=<span>1D476</span></span>
+ <span><span class="testfont">&#x1D477;</span>=<span>1D477</span></span>
+ <span><span class="testfont">&#x1D478;</span>=<span>1D478</span></span>
+ <span><span class="testfont">&#x1D479;</span>=<span>1D479</span></span><br/>
+ <span><span class="testfont">&#x1D47A;</span>=<span>1D47A</span></span>
+ <span><span class="testfont">&#x1D47B;</span>=<span>1D47B</span></span>
+ <span><span class="testfont">&#x1D47C;</span>=<span>1D47C</span></span>
+ <span><span class="testfont">&#x1D47D;</span>=<span>1D47D</span></span>
+ <span><span class="testfont">&#x1D47E;</span>=<span>1D47E</span></span>
+ <span><span class="testfont">&#x1D47F;</span>=<span>1D47F</span></span>
+ <span><span class="testfont">&#x1D480;</span>=<span>1D480</span></span>
+ <span><span class="testfont">&#x1D481;</span>=<span>1D481</span></span>
+ <span><span class="testfont">&#x1D482;</span>=<span>1D482</span></span>
+ <span><span class="testfont">&#x1D483;</span>=<span>1D483</span></span><br/>
+ <span><span class="testfont">&#x1D484;</span>=<span>1D484</span></span>
+ <span><span class="testfont">&#x1D485;</span>=<span>1D485</span></span>
+ <span><span class="testfont">&#x1D486;</span>=<span>1D486</span></span>
+ <span><span class="testfont">&#x1D487;</span>=<span>1D487</span></span>
+ <span><span class="testfont">&#x1D488;</span>=<span>1D488</span></span>
+ <span><span class="testfont">&#x1D489;</span>=<span>1D489</span></span>
+ <span><span class="testfont">&#x1D48A;</span>=<span>1D48A</span></span>
+ <span><span class="testfont">&#x1D48B;</span>=<span>1D48B</span></span>
+ <span><span class="testfont">&#x1D48C;</span>=<span>1D48C</span></span>
+ <span><span class="testfont">&#x1D48D;</span>=<span>1D48D</span></span><br/>
+ <span><span class="testfont">&#x1D48E;</span>=<span>1D48E</span></span>
+ <span><span class="testfont">&#x1D48F;</span>=<span>1D48F</span></span>
+ <span><span class="testfont">&#x1D490;</span>=<span>1D490</span></span>
+ <span><span class="testfont">&#x1D491;</span>=<span>1D491</span></span>
+ <span><span class="testfont">&#x1D492;</span>=<span>1D492</span></span>
+ <span><span class="testfont">&#x1D493;</span>=<span>1D493</span></span>
+ <span><span class="testfont">&#x1D494;</span>=<span>1D494</span></span>
+ <span><span class="testfont">&#x1D495;</span>=<span>1D495</span></span>
+ <span><span class="testfont">&#x1D496;</span>=<span>1D496</span></span>
+ <span><span class="testfont">&#x1D497;</span>=<span>1D497</span></span><br/>
+ <span><span class="testfont">&#x1D498;</span>=<span>1D498</span></span>
+ <span><span class="testfont">&#x1D499;</span>=<span>1D499</span></span>
+ <span><span class="testfont">&#x1D49A;</span>=<span>1D49A</span></span>
+ <span><span class="testfont">&#x1D49B;</span>=<span>1D49B</span></span>
+ <span><span class="testfont">&#x1D71C;</span>=<span>1D71C</span></span>
+ <span><span class="testfont">&#x1D71D;</span>=<span>1D71D</span></span>
+ <span><span class="testfont">&#x1D71E;</span>=<span>1D71E</span></span>
+ <span><span class="testfont">&#x1D71F;</span>=<span>1D71F</span></span>
+ <span><span class="testfont">&#x1D720;</span>=<span>1D720</span></span>
+ <span><span class="testfont">&#x1D721;</span>=<span>1D721</span></span><br/>
+ <span><span class="testfont">&#x1D722;</span>=<span>1D722</span></span>
+ <span><span class="testfont">&#x1D723;</span>=<span>1D723</span></span>
+ <span><span class="testfont">&#x1D724;</span>=<span>1D724</span></span>
+ <span><span class="testfont">&#x1D725;</span>=<span>1D725</span></span>
+ <span><span class="testfont">&#x1D726;</span>=<span>1D726</span></span>
+ <span><span class="testfont">&#x1D727;</span>=<span>1D727</span></span>
+ <span><span class="testfont">&#x1D728;</span>=<span>1D728</span></span>
+ <span><span class="testfont">&#x1D729;</span>=<span>1D729</span></span>
+ <span><span class="testfont">&#x1D72A;</span>=<span>1D72A</span></span>
+ <span><span class="testfont">&#x1D72B;</span>=<span>1D72B</span></span><br/>
+ <span><span class="testfont">&#x1D72C;</span>=<span>1D72C</span></span>
+ <span><span class="testfont">&#x1D72E;</span>=<span>1D72E</span></span>
+ <span><span class="testfont">&#x1D72F;</span>=<span>1D72F</span></span>
+ <span><span class="testfont">&#x1D730;</span>=<span>1D730</span></span>
+ <span><span class="testfont">&#x1D731;</span>=<span>1D731</span></span>
+ <span><span class="testfont">&#x1D732;</span>=<span>1D732</span></span>
+ <span><span class="testfont">&#x1D733;</span>=<span>1D733</span></span>
+ <span><span class="testfont">&#x1D734;</span>=<span>1D734</span></span>
+ <span><span class="testfont">&#x1D736;</span>=<span>1D736</span></span>
+ <span><span class="testfont">&#x1D737;</span>=<span>1D737</span></span><br/>
+ <span><span class="testfont">&#x1D738;</span>=<span>1D738</span></span>
+ <span><span class="testfont">&#x1D739;</span>=<span>1D739</span></span>
+ <span><span class="testfont">&#x1D73A;</span>=<span>1D73A</span></span>
+ <span><span class="testfont">&#x1D73B;</span>=<span>1D73B</span></span>
+ <span><span class="testfont">&#x1D73C;</span>=<span>1D73C</span></span>
+ <span><span class="testfont">&#x1D73D;</span>=<span>1D73D</span></span>
+ <span><span class="testfont">&#x1D73E;</span>=<span>1D73E</span></span>
+ <span><span class="testfont">&#x1D73F;</span>=<span>1D73F</span></span>
+ <span><span class="testfont">&#x1D740;</span>=<span>1D740</span></span>
+ <span><span class="testfont">&#x1D741;</span>=<span>1D741</span></span><br/>
+ <span><span class="testfont">&#x1D742;</span>=<span>1D742</span></span>
+ <span><span class="testfont">&#x1D743;</span>=<span>1D743</span></span>
+ <span><span class="testfont">&#x1D744;</span>=<span>1D744</span></span>
+ <span><span class="testfont">&#x1D745;</span>=<span>1D745</span></span>
+ <span><span class="testfont">&#x1D746;</span>=<span>1D746</span></span>
+ <span><span class="testfont">&#x1D747;</span>=<span>1D747</span></span>
+ <span><span class="testfont">&#x1D748;</span>=<span>1D748</span></span>
+ <span><span class="testfont">&#x1D749;</span>=<span>1D749</span></span>
+ <span><span class="testfont">&#x1D74A;</span>=<span>1D74A</span></span>
+ <span><span class="testfont">&#x1D74B;</span>=<span>1D74B</span></span><br/>
+ <span><span class="testfont">&#x1D74C;</span>=<span>1D74C</span></span>
+ <span><span class="testfont">&#x1D74D;</span>=<span>1D74D</span></span>
+ <span><span class="testfont">&#x1D74E;</span>=<span>1D74E</span></span>
+ <span><span class="testfont">&#x1D751;</span>=<span>1D751</span></span>
+ <span><span class="testfont">&#x1D753;</span>=<span>1D753</span></span>
+ <span><span class="testfont">&#x1D755;</span>=<span>1D755</span></span>
+ <span><span class="testfont">&#x1D752;</span>=<span>1D752</span></span>
+ <span><span class="testfont">&#x1D754;</span>=<span>1D754</span></span>
+ <span><span class="testfont">&#x1D72D;</span>=<span>1D72D</span></span>
+ <span><span class="testfont">&#x1D750;</span>=<span>1D750</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html
new file mode 100644
index 0000000000..9a03fc7f54
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-italic-001.tentative.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-italic</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-italic-mappings">
+<link rel="match" href="text-transform-math-bold-italic-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-bold-italic' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x2202;</span>=<span>1D74F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x2207;</span>=<span>1D735</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x41;</span>=<span>1D468</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x42;</span>=<span>1D469</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x43;</span>=<span>1D46A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x44;</span>=<span>1D46B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x45;</span>=<span>1D46C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x46;</span>=<span>1D46D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x47;</span>=<span>1D46E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x48;</span>=<span>1D46F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x49;</span>=<span>1D470</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4A;</span>=<span>1D471</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4B;</span>=<span>1D472</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4C;</span>=<span>1D473</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4D;</span>=<span>1D474</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4E;</span>=<span>1D475</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x4F;</span>=<span>1D476</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x50;</span>=<span>1D477</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x51;</span>=<span>1D478</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x52;</span>=<span>1D479</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x53;</span>=<span>1D47A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x54;</span>=<span>1D47B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x55;</span>=<span>1D47C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x56;</span>=<span>1D47D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x57;</span>=<span>1D47E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x58;</span>=<span>1D47F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x59;</span>=<span>1D480</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x5A;</span>=<span>1D481</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x61;</span>=<span>1D482</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x62;</span>=<span>1D483</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x63;</span>=<span>1D484</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x64;</span>=<span>1D485</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x65;</span>=<span>1D486</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x66;</span>=<span>1D487</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x67;</span>=<span>1D488</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x68;</span>=<span>1D489</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x69;</span>=<span>1D48A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6A;</span>=<span>1D48B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6B;</span>=<span>1D48C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6C;</span>=<span>1D48D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6D;</span>=<span>1D48E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6E;</span>=<span>1D48F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x6F;</span>=<span>1D490</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x70;</span>=<span>1D491</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x71;</span>=<span>1D492</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x72;</span>=<span>1D493</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x73;</span>=<span>1D494</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x74;</span>=<span>1D495</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x75;</span>=<span>1D496</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x76;</span>=<span>1D497</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x77;</span>=<span>1D498</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x78;</span>=<span>1D499</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x79;</span>=<span>1D49A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x7A;</span>=<span>1D49B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x391;</span>=<span>1D71C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x392;</span>=<span>1D71D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x393;</span>=<span>1D71E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x394;</span>=<span>1D71F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x395;</span>=<span>1D720</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x396;</span>=<span>1D721</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x397;</span>=<span>1D722</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x398;</span>=<span>1D723</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x399;</span>=<span>1D724</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39A;</span>=<span>1D725</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39B;</span>=<span>1D726</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39C;</span>=<span>1D727</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39D;</span>=<span>1D728</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39E;</span>=<span>1D729</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x39F;</span>=<span>1D72A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A0;</span>=<span>1D72B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A1;</span>=<span>1D72C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A3;</span>=<span>1D72E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A4;</span>=<span>1D72F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A5;</span>=<span>1D730</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A6;</span>=<span>1D731</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A7;</span>=<span>1D732</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A8;</span>=<span>1D733</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3A9;</span>=<span>1D734</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B1;</span>=<span>1D736</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B2;</span>=<span>1D737</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B3;</span>=<span>1D738</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B4;</span>=<span>1D739</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B5;</span>=<span>1D73A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B6;</span>=<span>1D73B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B7;</span>=<span>1D73C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B8;</span>=<span>1D73D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3B9;</span>=<span>1D73E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BA;</span>=<span>1D73F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BB;</span>=<span>1D740</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BC;</span>=<span>1D741</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BD;</span>=<span>1D742</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BE;</span>=<span>1D743</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3BF;</span>=<span>1D744</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C0;</span>=<span>1D745</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C1;</span>=<span>1D746</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C2;</span>=<span>1D747</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C3;</span>=<span>1D748</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C4;</span>=<span>1D749</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C5;</span>=<span>1D74A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C6;</span>=<span>1D74B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C7;</span>=<span>1D74C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C8;</span>=<span>1D74D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3C9;</span>=<span>1D74E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3D1;</span>=<span>1D751</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3D5;</span>=<span>1D753</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3D6;</span>=<span>1D755</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3F0;</span>=<span>1D752</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3F1;</span>=<span>1D754</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3F4;</span>=<span>1D72D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-italic">&#x3F5;</span>=<span>1D750</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html
new file mode 100644
index 0000000000..e83fa69f01
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative-ref.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-sans-serif (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D789;</span>=<span>1D789</span></span>
+ <span><span class="testfont">&#x1D76F;</span>=<span>1D76F</span></span>
+ <span><span class="testfont">&#x1D7EC;</span>=<span>1D7EC</span></span>
+ <span><span class="testfont">&#x1D7ED;</span>=<span>1D7ED</span></span>
+ <span><span class="testfont">&#x1D7EE;</span>=<span>1D7EE</span></span>
+ <span><span class="testfont">&#x1D7EF;</span>=<span>1D7EF</span></span>
+ <span><span class="testfont">&#x1D7F0;</span>=<span>1D7F0</span></span>
+ <span><span class="testfont">&#x1D7F1;</span>=<span>1D7F1</span></span>
+ <span><span class="testfont">&#x1D7F2;</span>=<span>1D7F2</span></span>
+ <span><span class="testfont">&#x1D7F3;</span>=<span>1D7F3</span></span><br/>
+ <span><span class="testfont">&#x1D7F4;</span>=<span>1D7F4</span></span>
+ <span><span class="testfont">&#x1D7F5;</span>=<span>1D7F5</span></span>
+ <span><span class="testfont">&#x1D5D4;</span>=<span>1D5D4</span></span>
+ <span><span class="testfont">&#x1D5D5;</span>=<span>1D5D5</span></span>
+ <span><span class="testfont">&#x1D5D6;</span>=<span>1D5D6</span></span>
+ <span><span class="testfont">&#x1D5D7;</span>=<span>1D5D7</span></span>
+ <span><span class="testfont">&#x1D5D8;</span>=<span>1D5D8</span></span>
+ <span><span class="testfont">&#x1D5D9;</span>=<span>1D5D9</span></span>
+ <span><span class="testfont">&#x1D5DA;</span>=<span>1D5DA</span></span>
+ <span><span class="testfont">&#x1D5DB;</span>=<span>1D5DB</span></span><br/>
+ <span><span class="testfont">&#x1D5DC;</span>=<span>1D5DC</span></span>
+ <span><span class="testfont">&#x1D5DD;</span>=<span>1D5DD</span></span>
+ <span><span class="testfont">&#x1D5DE;</span>=<span>1D5DE</span></span>
+ <span><span class="testfont">&#x1D5DF;</span>=<span>1D5DF</span></span>
+ <span><span class="testfont">&#x1D5E0;</span>=<span>1D5E0</span></span>
+ <span><span class="testfont">&#x1D5E1;</span>=<span>1D5E1</span></span>
+ <span><span class="testfont">&#x1D5E2;</span>=<span>1D5E2</span></span>
+ <span><span class="testfont">&#x1D5E3;</span>=<span>1D5E3</span></span>
+ <span><span class="testfont">&#x1D5E4;</span>=<span>1D5E4</span></span>
+ <span><span class="testfont">&#x1D5E5;</span>=<span>1D5E5</span></span><br/>
+ <span><span class="testfont">&#x1D5E6;</span>=<span>1D5E6</span></span>
+ <span><span class="testfont">&#x1D5E7;</span>=<span>1D5E7</span></span>
+ <span><span class="testfont">&#x1D5E8;</span>=<span>1D5E8</span></span>
+ <span><span class="testfont">&#x1D5E9;</span>=<span>1D5E9</span></span>
+ <span><span class="testfont">&#x1D5EA;</span>=<span>1D5EA</span></span>
+ <span><span class="testfont">&#x1D5EB;</span>=<span>1D5EB</span></span>
+ <span><span class="testfont">&#x1D5EC;</span>=<span>1D5EC</span></span>
+ <span><span class="testfont">&#x1D5ED;</span>=<span>1D5ED</span></span>
+ <span><span class="testfont">&#x1D5EE;</span>=<span>1D5EE</span></span>
+ <span><span class="testfont">&#x1D5EF;</span>=<span>1D5EF</span></span><br/>
+ <span><span class="testfont">&#x1D5F0;</span>=<span>1D5F0</span></span>
+ <span><span class="testfont">&#x1D5F1;</span>=<span>1D5F1</span></span>
+ <span><span class="testfont">&#x1D5F2;</span>=<span>1D5F2</span></span>
+ <span><span class="testfont">&#x1D5F3;</span>=<span>1D5F3</span></span>
+ <span><span class="testfont">&#x1D5F4;</span>=<span>1D5F4</span></span>
+ <span><span class="testfont">&#x1D5F5;</span>=<span>1D5F5</span></span>
+ <span><span class="testfont">&#x1D5F6;</span>=<span>1D5F6</span></span>
+ <span><span class="testfont">&#x1D5F7;</span>=<span>1D5F7</span></span>
+ <span><span class="testfont">&#x1D5F8;</span>=<span>1D5F8</span></span>
+ <span><span class="testfont">&#x1D5F9;</span>=<span>1D5F9</span></span><br/>
+ <span><span class="testfont">&#x1D5FA;</span>=<span>1D5FA</span></span>
+ <span><span class="testfont">&#x1D5FB;</span>=<span>1D5FB</span></span>
+ <span><span class="testfont">&#x1D5FC;</span>=<span>1D5FC</span></span>
+ <span><span class="testfont">&#x1D5FD;</span>=<span>1D5FD</span></span>
+ <span><span class="testfont">&#x1D5FE;</span>=<span>1D5FE</span></span>
+ <span><span class="testfont">&#x1D5FF;</span>=<span>1D5FF</span></span>
+ <span><span class="testfont">&#x1D600;</span>=<span>1D600</span></span>
+ <span><span class="testfont">&#x1D601;</span>=<span>1D601</span></span>
+ <span><span class="testfont">&#x1D602;</span>=<span>1D602</span></span>
+ <span><span class="testfont">&#x1D603;</span>=<span>1D603</span></span><br/>
+ <span><span class="testfont">&#x1D604;</span>=<span>1D604</span></span>
+ <span><span class="testfont">&#x1D605;</span>=<span>1D605</span></span>
+ <span><span class="testfont">&#x1D606;</span>=<span>1D606</span></span>
+ <span><span class="testfont">&#x1D607;</span>=<span>1D607</span></span>
+ <span><span class="testfont">&#x1D756;</span>=<span>1D756</span></span>
+ <span><span class="testfont">&#x1D757;</span>=<span>1D757</span></span>
+ <span><span class="testfont">&#x1D758;</span>=<span>1D758</span></span>
+ <span><span class="testfont">&#x1D759;</span>=<span>1D759</span></span>
+ <span><span class="testfont">&#x1D75A;</span>=<span>1D75A</span></span>
+ <span><span class="testfont">&#x1D75B;</span>=<span>1D75B</span></span><br/>
+ <span><span class="testfont">&#x1D75C;</span>=<span>1D75C</span></span>
+ <span><span class="testfont">&#x1D75D;</span>=<span>1D75D</span></span>
+ <span><span class="testfont">&#x1D75E;</span>=<span>1D75E</span></span>
+ <span><span class="testfont">&#x1D75F;</span>=<span>1D75F</span></span>
+ <span><span class="testfont">&#x1D760;</span>=<span>1D760</span></span>
+ <span><span class="testfont">&#x1D761;</span>=<span>1D761</span></span>
+ <span><span class="testfont">&#x1D762;</span>=<span>1D762</span></span>
+ <span><span class="testfont">&#x1D763;</span>=<span>1D763</span></span>
+ <span><span class="testfont">&#x1D764;</span>=<span>1D764</span></span>
+ <span><span class="testfont">&#x1D765;</span>=<span>1D765</span></span><br/>
+ <span><span class="testfont">&#x1D766;</span>=<span>1D766</span></span>
+ <span><span class="testfont">&#x1D768;</span>=<span>1D768</span></span>
+ <span><span class="testfont">&#x1D769;</span>=<span>1D769</span></span>
+ <span><span class="testfont">&#x1D76A;</span>=<span>1D76A</span></span>
+ <span><span class="testfont">&#x1D76B;</span>=<span>1D76B</span></span>
+ <span><span class="testfont">&#x1D76C;</span>=<span>1D76C</span></span>
+ <span><span class="testfont">&#x1D76D;</span>=<span>1D76D</span></span>
+ <span><span class="testfont">&#x1D76E;</span>=<span>1D76E</span></span>
+ <span><span class="testfont">&#x1D770;</span>=<span>1D770</span></span>
+ <span><span class="testfont">&#x1D771;</span>=<span>1D771</span></span><br/>
+ <span><span class="testfont">&#x1D772;</span>=<span>1D772</span></span>
+ <span><span class="testfont">&#x1D773;</span>=<span>1D773</span></span>
+ <span><span class="testfont">&#x1D774;</span>=<span>1D774</span></span>
+ <span><span class="testfont">&#x1D775;</span>=<span>1D775</span></span>
+ <span><span class="testfont">&#x1D776;</span>=<span>1D776</span></span>
+ <span><span class="testfont">&#x1D777;</span>=<span>1D777</span></span>
+ <span><span class="testfont">&#x1D778;</span>=<span>1D778</span></span>
+ <span><span class="testfont">&#x1D779;</span>=<span>1D779</span></span>
+ <span><span class="testfont">&#x1D77A;</span>=<span>1D77A</span></span>
+ <span><span class="testfont">&#x1D77B;</span>=<span>1D77B</span></span><br/>
+ <span><span class="testfont">&#x1D77C;</span>=<span>1D77C</span></span>
+ <span><span class="testfont">&#x1D77D;</span>=<span>1D77D</span></span>
+ <span><span class="testfont">&#x1D77E;</span>=<span>1D77E</span></span>
+ <span><span class="testfont">&#x1D77F;</span>=<span>1D77F</span></span>
+ <span><span class="testfont">&#x1D780;</span>=<span>1D780</span></span>
+ <span><span class="testfont">&#x1D781;</span>=<span>1D781</span></span>
+ <span><span class="testfont">&#x1D782;</span>=<span>1D782</span></span>
+ <span><span class="testfont">&#x1D783;</span>=<span>1D783</span></span>
+ <span><span class="testfont">&#x1D784;</span>=<span>1D784</span></span>
+ <span><span class="testfont">&#x1D785;</span>=<span>1D785</span></span><br/>
+ <span><span class="testfont">&#x1D786;</span>=<span>1D786</span></span>
+ <span><span class="testfont">&#x1D787;</span>=<span>1D787</span></span>
+ <span><span class="testfont">&#x1D788;</span>=<span>1D788</span></span>
+ <span><span class="testfont">&#x1D78B;</span>=<span>1D78B</span></span>
+ <span><span class="testfont">&#x1D78D;</span>=<span>1D78D</span></span>
+ <span><span class="testfont">&#x1D78F;</span>=<span>1D78F</span></span>
+ <span><span class="testfont">&#x1D78C;</span>=<span>1D78C</span></span>
+ <span><span class="testfont">&#x1D78E;</span>=<span>1D78E</span></span>
+ <span><span class="testfont">&#x1D767;</span>=<span>1D767</span></span>
+ <span><span class="testfont">&#x1D78A;</span>=<span>1D78A</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html
new file mode 100644
index 0000000000..3cbfdb96a6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-sans-serif-001.tentative.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-sans-serif</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-sans-serif-mappings">
+<link rel="match" href="text-transform-math-bold-sans-serif-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-bold-sans-serif' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x2202;</span>=<span>1D789</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x2207;</span>=<span>1D76F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x30;</span>=<span>1D7EC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x31;</span>=<span>1D7ED</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x32;</span>=<span>1D7EE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x33;</span>=<span>1D7EF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x34;</span>=<span>1D7F0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x35;</span>=<span>1D7F1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x36;</span>=<span>1D7F2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x37;</span>=<span>1D7F3</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x38;</span>=<span>1D7F4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39;</span>=<span>1D7F5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x41;</span>=<span>1D5D4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x42;</span>=<span>1D5D5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x43;</span>=<span>1D5D6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x44;</span>=<span>1D5D7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x45;</span>=<span>1D5D8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x46;</span>=<span>1D5D9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x47;</span>=<span>1D5DA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x48;</span>=<span>1D5DB</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x49;</span>=<span>1D5DC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4A;</span>=<span>1D5DD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4B;</span>=<span>1D5DE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4C;</span>=<span>1D5DF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4D;</span>=<span>1D5E0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4E;</span>=<span>1D5E1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x4F;</span>=<span>1D5E2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x50;</span>=<span>1D5E3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x51;</span>=<span>1D5E4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x52;</span>=<span>1D5E5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x53;</span>=<span>1D5E6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x54;</span>=<span>1D5E7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x55;</span>=<span>1D5E8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x56;</span>=<span>1D5E9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x57;</span>=<span>1D5EA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x58;</span>=<span>1D5EB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x59;</span>=<span>1D5EC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x5A;</span>=<span>1D5ED</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x61;</span>=<span>1D5EE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x62;</span>=<span>1D5EF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x63;</span>=<span>1D5F0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x64;</span>=<span>1D5F1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x65;</span>=<span>1D5F2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x66;</span>=<span>1D5F3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x67;</span>=<span>1D5F4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x68;</span>=<span>1D5F5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x69;</span>=<span>1D5F6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6A;</span>=<span>1D5F7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6B;</span>=<span>1D5F8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6C;</span>=<span>1D5F9</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6D;</span>=<span>1D5FA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6E;</span>=<span>1D5FB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x6F;</span>=<span>1D5FC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x70;</span>=<span>1D5FD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x71;</span>=<span>1D5FE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x72;</span>=<span>1D5FF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x73;</span>=<span>1D600</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x74;</span>=<span>1D601</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x75;</span>=<span>1D602</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x76;</span>=<span>1D603</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x77;</span>=<span>1D604</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x78;</span>=<span>1D605</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x79;</span>=<span>1D606</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x7A;</span>=<span>1D607</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x391;</span>=<span>1D756</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x392;</span>=<span>1D757</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x393;</span>=<span>1D758</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x394;</span>=<span>1D759</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x395;</span>=<span>1D75A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x396;</span>=<span>1D75B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x397;</span>=<span>1D75C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x398;</span>=<span>1D75D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x399;</span>=<span>1D75E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39A;</span>=<span>1D75F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39B;</span>=<span>1D760</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39C;</span>=<span>1D761</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39D;</span>=<span>1D762</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39E;</span>=<span>1D763</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x39F;</span>=<span>1D764</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A0;</span>=<span>1D765</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A1;</span>=<span>1D766</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A3;</span>=<span>1D768</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A4;</span>=<span>1D769</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A5;</span>=<span>1D76A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A6;</span>=<span>1D76B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A7;</span>=<span>1D76C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A8;</span>=<span>1D76D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3A9;</span>=<span>1D76E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B1;</span>=<span>1D770</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B2;</span>=<span>1D771</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B3;</span>=<span>1D772</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B4;</span>=<span>1D773</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B5;</span>=<span>1D774</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B6;</span>=<span>1D775</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B7;</span>=<span>1D776</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B8;</span>=<span>1D777</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3B9;</span>=<span>1D778</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BA;</span>=<span>1D779</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BB;</span>=<span>1D77A</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BC;</span>=<span>1D77B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BD;</span>=<span>1D77C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BE;</span>=<span>1D77D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3BF;</span>=<span>1D77E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C0;</span>=<span>1D77F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C1;</span>=<span>1D780</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C2;</span>=<span>1D781</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C3;</span>=<span>1D782</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C4;</span>=<span>1D783</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C5;</span>=<span>1D784</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C6;</span>=<span>1D785</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C7;</span>=<span>1D786</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C8;</span>=<span>1D787</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3C9;</span>=<span>1D788</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3D1;</span>=<span>1D78B</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3D5;</span>=<span>1D78D</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3D6;</span>=<span>1D78F</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3F0;</span>=<span>1D78C</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3F1;</span>=<span>1D78E</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3F4;</span>=<span>1D767</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-sans-serif">&#x3F5;</span>=<span>1D78A</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html
new file mode 100644
index 0000000000..1b5a74c9e8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-script (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D4D0;</span>=<span>1D4D0</span></span>
+ <span><span class="testfont">&#x1D4D1;</span>=<span>1D4D1</span></span>
+ <span><span class="testfont">&#x1D4D2;</span>=<span>1D4D2</span></span>
+ <span><span class="testfont">&#x1D4D3;</span>=<span>1D4D3</span></span>
+ <span><span class="testfont">&#x1D4D4;</span>=<span>1D4D4</span></span>
+ <span><span class="testfont">&#x1D4D5;</span>=<span>1D4D5</span></span>
+ <span><span class="testfont">&#x1D4D6;</span>=<span>1D4D6</span></span>
+ <span><span class="testfont">&#x1D4D7;</span>=<span>1D4D7</span></span>
+ <span><span class="testfont">&#x1D4D8;</span>=<span>1D4D8</span></span>
+ <span><span class="testfont">&#x1D4D9;</span>=<span>1D4D9</span></span><br/>
+ <span><span class="testfont">&#x1D4DA;</span>=<span>1D4DA</span></span>
+ <span><span class="testfont">&#x1D4DB;</span>=<span>1D4DB</span></span>
+ <span><span class="testfont">&#x1D4DC;</span>=<span>1D4DC</span></span>
+ <span><span class="testfont">&#x1D4DD;</span>=<span>1D4DD</span></span>
+ <span><span class="testfont">&#x1D4DE;</span>=<span>1D4DE</span></span>
+ <span><span class="testfont">&#x1D4DF;</span>=<span>1D4DF</span></span>
+ <span><span class="testfont">&#x1D4E0;</span>=<span>1D4E0</span></span>
+ <span><span class="testfont">&#x1D4E1;</span>=<span>1D4E1</span></span>
+ <span><span class="testfont">&#x1D4E2;</span>=<span>1D4E2</span></span>
+ <span><span class="testfont">&#x1D4E3;</span>=<span>1D4E3</span></span><br/>
+ <span><span class="testfont">&#x1D4E4;</span>=<span>1D4E4</span></span>
+ <span><span class="testfont">&#x1D4E5;</span>=<span>1D4E5</span></span>
+ <span><span class="testfont">&#x1D4E6;</span>=<span>1D4E6</span></span>
+ <span><span class="testfont">&#x1D4E7;</span>=<span>1D4E7</span></span>
+ <span><span class="testfont">&#x1D4E8;</span>=<span>1D4E8</span></span>
+ <span><span class="testfont">&#x1D4E9;</span>=<span>1D4E9</span></span>
+ <span><span class="testfont">&#x1D4EA;</span>=<span>1D4EA</span></span>
+ <span><span class="testfont">&#x1D4EB;</span>=<span>1D4EB</span></span>
+ <span><span class="testfont">&#x1D4EC;</span>=<span>1D4EC</span></span>
+ <span><span class="testfont">&#x1D4ED;</span>=<span>1D4ED</span></span><br/>
+ <span><span class="testfont">&#x1D4EE;</span>=<span>1D4EE</span></span>
+ <span><span class="testfont">&#x1D4EF;</span>=<span>1D4EF</span></span>
+ <span><span class="testfont">&#x1D4F0;</span>=<span>1D4F0</span></span>
+ <span><span class="testfont">&#x1D4F1;</span>=<span>1D4F1</span></span>
+ <span><span class="testfont">&#x1D4F2;</span>=<span>1D4F2</span></span>
+ <span><span class="testfont">&#x1D4F3;</span>=<span>1D4F3</span></span>
+ <span><span class="testfont">&#x1D4F4;</span>=<span>1D4F4</span></span>
+ <span><span class="testfont">&#x1D4F5;</span>=<span>1D4F5</span></span>
+ <span><span class="testfont">&#x1D4F6;</span>=<span>1D4F6</span></span>
+ <span><span class="testfont">&#x1D4F7;</span>=<span>1D4F7</span></span><br/>
+ <span><span class="testfont">&#x1D4F8;</span>=<span>1D4F8</span></span>
+ <span><span class="testfont">&#x1D4F9;</span>=<span>1D4F9</span></span>
+ <span><span class="testfont">&#x1D4FA;</span>=<span>1D4FA</span></span>
+ <span><span class="testfont">&#x1D4FB;</span>=<span>1D4FB</span></span>
+ <span><span class="testfont">&#x1D4FC;</span>=<span>1D4FC</span></span>
+ <span><span class="testfont">&#x1D4FD;</span>=<span>1D4FD</span></span>
+ <span><span class="testfont">&#x1D4FE;</span>=<span>1D4FE</span></span>
+ <span><span class="testfont">&#x1D4FF;</span>=<span>1D4FF</span></span>
+ <span><span class="testfont">&#x1D500;</span>=<span>1D500</span></span>
+ <span><span class="testfont">&#x1D501;</span>=<span>1D501</span></span><br/>
+ <span><span class="testfont">&#x1D502;</span>=<span>1D502</span></span>
+ <span><span class="testfont">&#x1D503;</span>=<span>1D503</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html
new file mode 100644
index 0000000000..b61a573efc
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-bold-script-001.tentative.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-bold-script</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#bold-script-mappings">
+<link rel="match" href="text-transform-math-bold-script-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-bold-script' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x41;</span>=<span>1D4D0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x42;</span>=<span>1D4D1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x43;</span>=<span>1D4D2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x44;</span>=<span>1D4D3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x45;</span>=<span>1D4D4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x46;</span>=<span>1D4D5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x47;</span>=<span>1D4D6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x48;</span>=<span>1D4D7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x49;</span>=<span>1D4D8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4A;</span>=<span>1D4D9</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4B;</span>=<span>1D4DA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4C;</span>=<span>1D4DB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4D;</span>=<span>1D4DC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4E;</span>=<span>1D4DD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x4F;</span>=<span>1D4DE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x50;</span>=<span>1D4DF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x51;</span>=<span>1D4E0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x52;</span>=<span>1D4E1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x53;</span>=<span>1D4E2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x54;</span>=<span>1D4E3</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x55;</span>=<span>1D4E4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x56;</span>=<span>1D4E5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x57;</span>=<span>1D4E6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x58;</span>=<span>1D4E7</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x59;</span>=<span>1D4E8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x5A;</span>=<span>1D4E9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x61;</span>=<span>1D4EA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x62;</span>=<span>1D4EB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x63;</span>=<span>1D4EC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x64;</span>=<span>1D4ED</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x65;</span>=<span>1D4EE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x66;</span>=<span>1D4EF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x67;</span>=<span>1D4F0</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x68;</span>=<span>1D4F1</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x69;</span>=<span>1D4F2</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6A;</span>=<span>1D4F3</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6B;</span>=<span>1D4F4</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6C;</span>=<span>1D4F5</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6D;</span>=<span>1D4F6</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6E;</span>=<span>1D4F7</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x6F;</span>=<span>1D4F8</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x70;</span>=<span>1D4F9</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x71;</span>=<span>1D4FA</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x72;</span>=<span>1D4FB</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x73;</span>=<span>1D4FC</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x74;</span>=<span>1D4FD</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x75;</span>=<span>1D4FE</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x76;</span>=<span>1D4FF</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x77;</span>=<span>1D500</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x78;</span>=<span>1D501</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x79;</span>=<span>1D502</span></span>
+ <span><span class="testfont" style="text-transform: math-bold-script">&#x7A;</span>=<span>1D503</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html
new file mode 100644
index 0000000000..09f137a624
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative-ref.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-double-struck (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1EEA1;</span>=<span>1EEA1</span></span>
+ <span><span class="testfont">&#x1EEB5;</span>=<span>1EEB5</span></span>
+ <span><span class="testfont">&#x1EEB6;</span>=<span>1EEB6</span></span>
+ <span><span class="testfont">&#x1EEA2;</span>=<span>1EEA2</span></span>
+ <span><span class="testfont">&#x1EEA7;</span>=<span>1EEA7</span></span>
+ <span><span class="testfont">&#x1EEB7;</span>=<span>1EEB7</span></span>
+ <span><span class="testfont">&#x1EEA3;</span>=<span>1EEA3</span></span>
+ <span><span class="testfont">&#x1EEB8;</span>=<span>1EEB8</span></span>
+ <span><span class="testfont">&#x1EEB3;</span>=<span>1EEB3</span></span>
+ <span><span class="testfont">&#x1EEA6;</span>=<span>1EEA6</span></span><br/>
+ <span><span class="testfont">&#x1D7DB;</span>=<span>1D7DB</span></span>
+ <span><span class="testfont">&#x1D7DC;</span>=<span>1D7DC</span></span>
+ <span><span class="testfont">&#x1D7DD;</span>=<span>1D7DD</span></span>
+ <span><span class="testfont">&#x1EEB9;</span>=<span>1EEB9</span></span>
+ <span><span class="testfont">&#x1EEA8;</span>=<span>1EEA8</span></span>
+ <span><span class="testfont">&#x1EEBA;</span>=<span>1EEBA</span></span>
+ <span><span class="testfont">&#x1D7E1;</span>=<span>1D7E1</span></span>
+ <span><span class="testfont">&#x1EEBB;</span>=<span>1EEBB</span></span>
+ <span><span class="testfont">&#x1EEB0;</span>=<span>1EEB0</span></span>
+ <span><span class="testfont">&#x1EEB2;</span>=<span>1EEB2</span></span><br/>
+ <span><span class="testfont">&#x2102;</span>=<span>02102</span></span>
+ <span><span class="testfont">&#x1EEAB;</span>=<span>1EEAB</span></span>
+ <span><span class="testfont">&#x1EEAC;</span>=<span>1EEAC</span></span>
+ <span><span class="testfont">&#x1EEAD;</span>=<span>1EEAD</span></span>
+ <span><span class="testfont">&#x1D53E;</span>=<span>1D53E</span></span>
+ <span><span class="testfont">&#x1EEA5;</span>=<span>1EEA5</span></span>
+ <span><span class="testfont">&#x1D540;</span>=<span>1D540</span></span>
+ <span><span class="testfont">&#x1EEA9;</span>=<span>1EEA9</span></span>
+ <span><span class="testfont">&#x1D542;</span>=<span>1D542</span></span>
+ <span><span class="testfont">&#x1D543;</span>=<span>1D543</span></span><br/>
+ <span><span class="testfont">&#x1D544;</span>=<span>1D544</span></span>
+ <span><span class="testfont">&#x2115;</span>=<span>02115</span></span>
+ <span><span class="testfont">&#x1D546;</span>=<span>1D546</span></span>
+ <span><span class="testfont">&#x2119;</span>=<span>02119</span></span>
+ <span><span class="testfont">&#x211A;</span>=<span>0211A</span></span>
+ <span><span class="testfont">&#x211D;</span>=<span>0211D</span></span>
+ <span><span class="testfont">&#x1D54A;</span>=<span>1D54A</span></span>
+ <span><span class="testfont">&#x1D54B;</span>=<span>1D54B</span></span>
+ <span><span class="testfont">&#x1D54C;</span>=<span>1D54C</span></span>
+ <span><span class="testfont">&#x1D54D;</span>=<span>1D54D</span></span><br/>
+ <span><span class="testfont">&#x1D54E;</span>=<span>1D54E</span></span>
+ <span><span class="testfont">&#x1D54F;</span>=<span>1D54F</span></span>
+ <span><span class="testfont">&#x1D550;</span>=<span>1D550</span></span>
+ <span><span class="testfont">&#x2124;</span>=<span>02124</span></span>
+ <span><span class="testfont">&#x1D552;</span>=<span>1D552</span></span>
+ <span><span class="testfont">&#x1D553;</span>=<span>1D553</span></span>
+ <span><span class="testfont">&#x1D554;</span>=<span>1D554</span></span>
+ <span><span class="testfont">&#x1D555;</span>=<span>1D555</span></span>
+ <span><span class="testfont">&#x1D556;</span>=<span>1D556</span></span>
+ <span><span class="testfont">&#x1D557;</span>=<span>1D557</span></span><br/>
+ <span><span class="testfont">&#x1D558;</span>=<span>1D558</span></span>
+ <span><span class="testfont">&#x1D559;</span>=<span>1D559</span></span>
+ <span><span class="testfont">&#x1D55A;</span>=<span>1D55A</span></span>
+ <span><span class="testfont">&#x1D55B;</span>=<span>1D55B</span></span>
+ <span><span class="testfont">&#x1D55C;</span>=<span>1D55C</span></span>
+ <span><span class="testfont">&#x1D55D;</span>=<span>1D55D</span></span>
+ <span><span class="testfont">&#x1D55E;</span>=<span>1D55E</span></span>
+ <span><span class="testfont">&#x1D55F;</span>=<span>1D55F</span></span>
+ <span><span class="testfont">&#x1D560;</span>=<span>1D560</span></span>
+ <span><span class="testfont">&#x1D561;</span>=<span>1D561</span></span><br/>
+ <span><span class="testfont">&#x1D562;</span>=<span>1D562</span></span>
+ <span><span class="testfont">&#x1D563;</span>=<span>1D563</span></span>
+ <span><span class="testfont">&#x1D564;</span>=<span>1D564</span></span>
+ <span><span class="testfont">&#x1D565;</span>=<span>1D565</span></span>
+ <span><span class="testfont">&#x1D566;</span>=<span>1D566</span></span>
+ <span><span class="testfont">&#x1D567;</span>=<span>1D567</span></span>
+ <span><span class="testfont">&#x1D568;</span>=<span>1D568</span></span>
+ <span><span class="testfont">&#x1D569;</span>=<span>1D569</span></span>
+ <span><span class="testfont">&#x1D56A;</span>=<span>1D56A</span></span>
+ <span><span class="testfont">&#x1D56B;</span>=<span>1D56B</span></span><br/>
+ <span><span class="testfont">&#x1D7D8;</span>=<span>1D7D8</span></span>
+ <span><span class="testfont">&#x1D7D9;</span>=<span>1D7D9</span></span>
+ <span><span class="testfont">&#x1D7DA;</span>=<span>1D7DA</span></span>
+ <span><span class="testfont">&#x1EEAE;</span>=<span>1EEAE</span></span>
+ <span><span class="testfont">&#x1EEB4;</span>=<span>1EEB4</span></span>
+ <span><span class="testfont">&#x1EEB1;</span>=<span>1EEB1</span></span>
+ <span><span class="testfont">&#x1D7DE;</span>=<span>1D7DE</span></span>
+ <span><span class="testfont">&#x1D7DF;</span>=<span>1D7DF</span></span>
+ <span><span class="testfont">&#x1D7E0;</span>=<span>1D7E0</span></span>
+ <span><span class="testfont">&#x1EEAF;</span>=<span>1EEAF</span></span><br/>
+ <span><span class="testfont">&#x1D538;</span>=<span>1D538</span></span>
+ <span><span class="testfont">&#x1D539;</span>=<span>1D539</span></span>
+ <span><span class="testfont">&#x1D53B;</span>=<span>1D53B</span></span>
+ <span><span class="testfont">&#x1D53C;</span>=<span>1D53C</span></span>
+ <span><span class="testfont">&#x1D53D;</span>=<span>1D53D</span></span>
+ <span><span class="testfont">&#x210D;</span>=<span>0210D</span></span>
+ <span><span class="testfont">&#x1D541;</span>=<span>1D541</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html
new file mode 100644
index 0000000000..df656d6847
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-double-struck-001.tentative.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-double-struck</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#double-struck-mappings">
+<link rel="match" href="text-transform-math-double-struck-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-double-struck' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x628;</span>=<span>1EEA1</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62A;</span>=<span>1EEB5</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62B;</span>=<span>1EEB6</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62C;</span>=<span>1EEA2</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62D;</span>=<span>1EEA7</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62E;</span>=<span>1EEB7</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62F;</span>=<span>1EEA3</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x630;</span>=<span>1EEB8</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x631;</span>=<span>1EEB3</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x632;</span>=<span>1EEA6</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x33;</span>=<span>1D7DB</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x34;</span>=<span>1D7DC</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x35;</span>=<span>1D7DD</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x636;</span>=<span>1EEB9</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x637;</span>=<span>1EEA8</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x638;</span>=<span>1EEBA</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x39;</span>=<span>1D7E1</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x63A;</span>=<span>1EEBB</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x641;</span>=<span>1EEB0</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x642;</span>=<span>1EEB2</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x43;</span>=<span>02102</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x644;</span>=<span>1EEAB</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x645;</span>=<span>1EEAC</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x646;</span>=<span>1EEAD</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x47;</span>=<span>1D53E</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x648;</span>=<span>1EEA5</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x49;</span>=<span>1D540</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x64A;</span>=<span>1EEA9</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4B;</span>=<span>1D542</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4C;</span>=<span>1D543</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4D;</span>=<span>1D544</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4E;</span>=<span>02115</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4F;</span>=<span>1D546</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x50;</span>=<span>02119</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x51;</span>=<span>0211A</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x52;</span>=<span>0211D</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x53;</span>=<span>1D54A</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x54;</span>=<span>1D54B</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x55;</span>=<span>1D54C</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x56;</span>=<span>1D54D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x57;</span>=<span>1D54E</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x58;</span>=<span>1D54F</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x59;</span>=<span>1D550</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x5A;</span>=<span>02124</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x61;</span>=<span>1D552</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x62;</span>=<span>1D553</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x63;</span>=<span>1D554</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x64;</span>=<span>1D555</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x65;</span>=<span>1D556</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x66;</span>=<span>1D557</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x67;</span>=<span>1D558</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x68;</span>=<span>1D559</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x69;</span>=<span>1D55A</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6A;</span>=<span>1D55B</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6B;</span>=<span>1D55C</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6C;</span>=<span>1D55D</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6D;</span>=<span>1D55E</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6E;</span>=<span>1D55F</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x6F;</span>=<span>1D560</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x70;</span>=<span>1D561</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x71;</span>=<span>1D562</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x72;</span>=<span>1D563</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x73;</span>=<span>1D564</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x74;</span>=<span>1D565</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x75;</span>=<span>1D566</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x76;</span>=<span>1D567</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x77;</span>=<span>1D568</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x78;</span>=<span>1D569</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x79;</span>=<span>1D56A</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x7A;</span>=<span>1D56B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x30;</span>=<span>1D7D8</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x31;</span>=<span>1D7D9</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x32;</span>=<span>1D7DA</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x633;</span>=<span>1EEAE</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x634;</span>=<span>1EEB4</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x635;</span>=<span>1EEB1</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x36;</span>=<span>1D7DE</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x37;</span>=<span>1D7DF</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x38;</span>=<span>1D7E0</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x639;</span>=<span>1EEAF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x41;</span>=<span>1D538</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x42;</span>=<span>1D539</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x44;</span>=<span>1D53B</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x45;</span>=<span>1D53C</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x46;</span>=<span>1D53D</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x48;</span>=<span>0210D</span></span>
+ <span><span class="testfont" style="text-transform: math-double-struck">&#x4A;</span>=<span>1D541</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html
new file mode 100644
index 0000000000..09ea704989
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-fraktur (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D504;</span>=<span>1D504</span></span>
+ <span><span class="testfont">&#x1D505;</span>=<span>1D505</span></span>
+ <span><span class="testfont">&#x212D;</span>=<span>0212D</span></span>
+ <span><span class="testfont">&#x1D507;</span>=<span>1D507</span></span>
+ <span><span class="testfont">&#x1D508;</span>=<span>1D508</span></span>
+ <span><span class="testfont">&#x1D509;</span>=<span>1D509</span></span>
+ <span><span class="testfont">&#x1D50A;</span>=<span>1D50A</span></span>
+ <span><span class="testfont">&#x210C;</span>=<span>0210C</span></span>
+ <span><span class="testfont">&#x2111;</span>=<span>02111</span></span>
+ <span><span class="testfont">&#x1D50D;</span>=<span>1D50D</span></span><br/>
+ <span><span class="testfont">&#x1D50E;</span>=<span>1D50E</span></span>
+ <span><span class="testfont">&#x1D50F;</span>=<span>1D50F</span></span>
+ <span><span class="testfont">&#x1D510;</span>=<span>1D510</span></span>
+ <span><span class="testfont">&#x1D511;</span>=<span>1D511</span></span>
+ <span><span class="testfont">&#x1D512;</span>=<span>1D512</span></span>
+ <span><span class="testfont">&#x1D513;</span>=<span>1D513</span></span>
+ <span><span class="testfont">&#x1D514;</span>=<span>1D514</span></span>
+ <span><span class="testfont">&#x211C;</span>=<span>0211C</span></span>
+ <span><span class="testfont">&#x1D516;</span>=<span>1D516</span></span>
+ <span><span class="testfont">&#x1D517;</span>=<span>1D517</span></span><br/>
+ <span><span class="testfont">&#x1D518;</span>=<span>1D518</span></span>
+ <span><span class="testfont">&#x1D519;</span>=<span>1D519</span></span>
+ <span><span class="testfont">&#x1D51A;</span>=<span>1D51A</span></span>
+ <span><span class="testfont">&#x1D51B;</span>=<span>1D51B</span></span>
+ <span><span class="testfont">&#x1D51C;</span>=<span>1D51C</span></span>
+ <span><span class="testfont">&#x2128;</span>=<span>02128</span></span>
+ <span><span class="testfont">&#x1D51E;</span>=<span>1D51E</span></span>
+ <span><span class="testfont">&#x1D51F;</span>=<span>1D51F</span></span>
+ <span><span class="testfont">&#x1D520;</span>=<span>1D520</span></span>
+ <span><span class="testfont">&#x1D521;</span>=<span>1D521</span></span><br/>
+ <span><span class="testfont">&#x1D522;</span>=<span>1D522</span></span>
+ <span><span class="testfont">&#x1D523;</span>=<span>1D523</span></span>
+ <span><span class="testfont">&#x1D524;</span>=<span>1D524</span></span>
+ <span><span class="testfont">&#x1D525;</span>=<span>1D525</span></span>
+ <span><span class="testfont">&#x1D526;</span>=<span>1D526</span></span>
+ <span><span class="testfont">&#x1D527;</span>=<span>1D527</span></span>
+ <span><span class="testfont">&#x1D528;</span>=<span>1D528</span></span>
+ <span><span class="testfont">&#x1D529;</span>=<span>1D529</span></span>
+ <span><span class="testfont">&#x1D52A;</span>=<span>1D52A</span></span>
+ <span><span class="testfont">&#x1D52B;</span>=<span>1D52B</span></span><br/>
+ <span><span class="testfont">&#x1D52C;</span>=<span>1D52C</span></span>
+ <span><span class="testfont">&#x1D52D;</span>=<span>1D52D</span></span>
+ <span><span class="testfont">&#x1D52E;</span>=<span>1D52E</span></span>
+ <span><span class="testfont">&#x1D52F;</span>=<span>1D52F</span></span>
+ <span><span class="testfont">&#x1D530;</span>=<span>1D530</span></span>
+ <span><span class="testfont">&#x1D531;</span>=<span>1D531</span></span>
+ <span><span class="testfont">&#x1D532;</span>=<span>1D532</span></span>
+ <span><span class="testfont">&#x1D533;</span>=<span>1D533</span></span>
+ <span><span class="testfont">&#x1D534;</span>=<span>1D534</span></span>
+ <span><span class="testfont">&#x1D535;</span>=<span>1D535</span></span><br/>
+ <span><span class="testfont">&#x1D536;</span>=<span>1D536</span></span>
+ <span><span class="testfont">&#x1D537;</span>=<span>1D537</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html
new file mode 100644
index 0000000000..99310b8faf
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-fraktur-001.tentative.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-fraktur</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fraktur-mappings">
+<link rel="match" href="text-transform-math-fraktur-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-fraktur' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x41;</span>=<span>1D504</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x42;</span>=<span>1D505</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x43;</span>=<span>0212D</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x44;</span>=<span>1D507</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x45;</span>=<span>1D508</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x46;</span>=<span>1D509</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x47;</span>=<span>1D50A</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x48;</span>=<span>0210C</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x49;</span>=<span>02111</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4A;</span>=<span>1D50D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4B;</span>=<span>1D50E</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4C;</span>=<span>1D50F</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4D;</span>=<span>1D510</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4E;</span>=<span>1D511</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x4F;</span>=<span>1D512</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x50;</span>=<span>1D513</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x51;</span>=<span>1D514</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x52;</span>=<span>0211C</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x53;</span>=<span>1D516</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x54;</span>=<span>1D517</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x55;</span>=<span>1D518</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x56;</span>=<span>1D519</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x57;</span>=<span>1D51A</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x58;</span>=<span>1D51B</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x59;</span>=<span>1D51C</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x5A;</span>=<span>02128</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x61;</span>=<span>1D51E</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x62;</span>=<span>1D51F</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x63;</span>=<span>1D520</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x64;</span>=<span>1D521</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x65;</span>=<span>1D522</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x66;</span>=<span>1D523</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x67;</span>=<span>1D524</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x68;</span>=<span>1D525</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x69;</span>=<span>1D526</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6A;</span>=<span>1D527</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6B;</span>=<span>1D528</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6C;</span>=<span>1D529</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6D;</span>=<span>1D52A</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6E;</span>=<span>1D52B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x6F;</span>=<span>1D52C</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x70;</span>=<span>1D52D</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x71;</span>=<span>1D52E</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x72;</span>=<span>1D52F</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x73;</span>=<span>1D530</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x74;</span>=<span>1D531</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x75;</span>=<span>1D532</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x76;</span>=<span>1D533</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x77;</span>=<span>1D534</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x78;</span>=<span>1D535</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x79;</span>=<span>1D536</span></span>
+ <span><span class="testfont" style="text-transform: math-fraktur">&#x7A;</span>=<span>1D537</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html
new file mode 100644
index 0000000000..0c15bca02e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-initial (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1EE30;</span>=<span>1EE30</span></span>
+ <span><span class="testfont">&#x1EE32;</span>=<span>1EE32</span></span>
+ <span><span class="testfont">&#x1EE2A;</span>=<span>1EE2A</span></span>
+ <span><span class="testfont">&#x1EE2B;</span>=<span>1EE2B</span></span>
+ <span><span class="testfont">&#x1EE2C;</span>=<span>1EE2C</span></span>
+ <span><span class="testfont">&#x1EE2D;</span>=<span>1EE2D</span></span>
+ <span><span class="testfont">&#x1EE24;</span>=<span>1EE24</span></span>
+ <span><span class="testfont">&#x1EE21;</span>=<span>1EE21</span></span>
+ <span><span class="testfont">&#x1EE29;</span>=<span>1EE29</span></span>
+ <span><span class="testfont">&#x1EE36;</span>=<span>1EE36</span></span><br/>
+ <span><span class="testfont">&#x1EE22;</span>=<span>1EE22</span></span>
+ <span><span class="testfont">&#x1EE27;</span>=<span>1EE27</span></span>
+ <span><span class="testfont">&#x1EE37;</span>=<span>1EE37</span></span>
+ <span><span class="testfont">&#x1EE2E;</span>=<span>1EE2E</span></span>
+ <span><span class="testfont">&#x1EE34;</span>=<span>1EE34</span></span>
+ <span><span class="testfont">&#x1EE31;</span>=<span>1EE31</span></span>
+ <span><span class="testfont">&#x1EE39;</span>=<span>1EE39</span></span>
+ <span><span class="testfont">&#x1EE2F;</span>=<span>1EE2F</span></span>
+ <span><span class="testfont">&#x1EE3B;</span>=<span>1EE3B</span></span>
+ <span><span class="testfont">&#x1EE35;</span>=<span>1EE35</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html
new file mode 100644
index 0000000000..42f3be7a02
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-initial-001.tentative.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-initial</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#initial-mappings">
+<link rel="match" href="text-transform-math-initial-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-initial' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-initial">&#x641;</span>=<span>1EE30</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x642;</span>=<span>1EE32</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x643;</span>=<span>1EE2A</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x644;</span>=<span>1EE2B</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x645;</span>=<span>1EE2C</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x646;</span>=<span>1EE2D</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x647;</span>=<span>1EE24</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x628;</span>=<span>1EE21</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x64A;</span>=<span>1EE29</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x62B;</span>=<span>1EE36</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-initial">&#x62C;</span>=<span>1EE22</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x62D;</span>=<span>1EE27</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x62E;</span>=<span>1EE37</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x633;</span>=<span>1EE2E</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x634;</span>=<span>1EE34</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x635;</span>=<span>1EE31</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x636;</span>=<span>1EE39</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x639;</span>=<span>1EE2F</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x63A;</span>=<span>1EE3B</span></span>
+ <span><span class="testfont" style="text-transform: math-initial">&#x62A;</span>=<span>1EE35</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html
new file mode 100644
index 0000000000..e1a90faf38
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative-ref.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D715;</span>=<span>1D715</span></span>
+ <span><span class="testfont">&#x1D6FB;</span>=<span>1D6FB</span></span>
+ <span><span class="testfont">&#x1D6A5;</span>=<span>1D6A5</span></span>
+ <span><span class="testfont">&#x1D434;</span>=<span>1D434</span></span>
+ <span><span class="testfont">&#x1D435;</span>=<span>1D435</span></span>
+ <span><span class="testfont">&#x1D436;</span>=<span>1D436</span></span>
+ <span><span class="testfont">&#x1D437;</span>=<span>1D437</span></span>
+ <span><span class="testfont">&#x1D438;</span>=<span>1D438</span></span>
+ <span><span class="testfont">&#x1D439;</span>=<span>1D439</span></span>
+ <span><span class="testfont">&#x1D43A;</span>=<span>1D43A</span></span><br/>
+ <span><span class="testfont">&#x1D43B;</span>=<span>1D43B</span></span>
+ <span><span class="testfont">&#x1D43C;</span>=<span>1D43C</span></span>
+ <span><span class="testfont">&#x1D43D;</span>=<span>1D43D</span></span>
+ <span><span class="testfont">&#x1D43E;</span>=<span>1D43E</span></span>
+ <span><span class="testfont">&#x1D43F;</span>=<span>1D43F</span></span>
+ <span><span class="testfont">&#x1D440;</span>=<span>1D440</span></span>
+ <span><span class="testfont">&#x1D441;</span>=<span>1D441</span></span>
+ <span><span class="testfont">&#x1D442;</span>=<span>1D442</span></span>
+ <span><span class="testfont">&#x1D443;</span>=<span>1D443</span></span>
+ <span><span class="testfont">&#x1D444;</span>=<span>1D444</span></span><br/>
+ <span><span class="testfont">&#x1D445;</span>=<span>1D445</span></span>
+ <span><span class="testfont">&#x1D446;</span>=<span>1D446</span></span>
+ <span><span class="testfont">&#x1D447;</span>=<span>1D447</span></span>
+ <span><span class="testfont">&#x1D448;</span>=<span>1D448</span></span>
+ <span><span class="testfont">&#x1D449;</span>=<span>1D449</span></span>
+ <span><span class="testfont">&#x1D44A;</span>=<span>1D44A</span></span>
+ <span><span class="testfont">&#x1D44B;</span>=<span>1D44B</span></span>
+ <span><span class="testfont">&#x1D44C;</span>=<span>1D44C</span></span>
+ <span><span class="testfont">&#x1D44D;</span>=<span>1D44D</span></span>
+ <span><span class="testfont">&#x1D44E;</span>=<span>1D44E</span></span><br/>
+ <span><span class="testfont">&#x1D44F;</span>=<span>1D44F</span></span>
+ <span><span class="testfont">&#x1D450;</span>=<span>1D450</span></span>
+ <span><span class="testfont">&#x1D451;</span>=<span>1D451</span></span>
+ <span><span class="testfont">&#x1D452;</span>=<span>1D452</span></span>
+ <span><span class="testfont">&#x1D453;</span>=<span>1D453</span></span>
+ <span><span class="testfont">&#x1D454;</span>=<span>1D454</span></span>
+ <span><span class="testfont">&#x210E;</span>=<span>0210E</span></span>
+ <span><span class="testfont">&#x1D456;</span>=<span>1D456</span></span>
+ <span><span class="testfont">&#x1D457;</span>=<span>1D457</span></span>
+ <span><span class="testfont">&#x1D458;</span>=<span>1D458</span></span><br/>
+ <span><span class="testfont">&#x1D459;</span>=<span>1D459</span></span>
+ <span><span class="testfont">&#x1D45A;</span>=<span>1D45A</span></span>
+ <span><span class="testfont">&#x1D45B;</span>=<span>1D45B</span></span>
+ <span><span class="testfont">&#x1D45C;</span>=<span>1D45C</span></span>
+ <span><span class="testfont">&#x1D45D;</span>=<span>1D45D</span></span>
+ <span><span class="testfont">&#x1D45E;</span>=<span>1D45E</span></span>
+ <span><span class="testfont">&#x1D45F;</span>=<span>1D45F</span></span>
+ <span><span class="testfont">&#x1D460;</span>=<span>1D460</span></span>
+ <span><span class="testfont">&#x1D461;</span>=<span>1D461</span></span>
+ <span><span class="testfont">&#x1D462;</span>=<span>1D462</span></span><br/>
+ <span><span class="testfont">&#x1D463;</span>=<span>1D463</span></span>
+ <span><span class="testfont">&#x1D464;</span>=<span>1D464</span></span>
+ <span><span class="testfont">&#x1D465;</span>=<span>1D465</span></span>
+ <span><span class="testfont">&#x1D466;</span>=<span>1D466</span></span>
+ <span><span class="testfont">&#x1D467;</span>=<span>1D467</span></span>
+ <span><span class="testfont">&#x1D6A4;</span>=<span>1D6A4</span></span>
+ <span><span class="testfont">&#x1D6E2;</span>=<span>1D6E2</span></span>
+ <span><span class="testfont">&#x1D6E3;</span>=<span>1D6E3</span></span>
+ <span><span class="testfont">&#x1D6E4;</span>=<span>1D6E4</span></span>
+ <span><span class="testfont">&#x1D6E5;</span>=<span>1D6E5</span></span><br/>
+ <span><span class="testfont">&#x1D6E6;</span>=<span>1D6E6</span></span>
+ <span><span class="testfont">&#x1D6E7;</span>=<span>1D6E7</span></span>
+ <span><span class="testfont">&#x1D6E8;</span>=<span>1D6E8</span></span>
+ <span><span class="testfont">&#x1D6E9;</span>=<span>1D6E9</span></span>
+ <span><span class="testfont">&#x1D6EA;</span>=<span>1D6EA</span></span>
+ <span><span class="testfont">&#x1D6EB;</span>=<span>1D6EB</span></span>
+ <span><span class="testfont">&#x1D6EC;</span>=<span>1D6EC</span></span>
+ <span><span class="testfont">&#x1D6ED;</span>=<span>1D6ED</span></span>
+ <span><span class="testfont">&#x1D6EE;</span>=<span>1D6EE</span></span>
+ <span><span class="testfont">&#x1D6EF;</span>=<span>1D6EF</span></span><br/>
+ <span><span class="testfont">&#x1D6F0;</span>=<span>1D6F0</span></span>
+ <span><span class="testfont">&#x1D6F1;</span>=<span>1D6F1</span></span>
+ <span><span class="testfont">&#x1D6F2;</span>=<span>1D6F2</span></span>
+ <span><span class="testfont">&#x1D6F4;</span>=<span>1D6F4</span></span>
+ <span><span class="testfont">&#x1D6F5;</span>=<span>1D6F5</span></span>
+ <span><span class="testfont">&#x1D6F6;</span>=<span>1D6F6</span></span>
+ <span><span class="testfont">&#x1D6F7;</span>=<span>1D6F7</span></span>
+ <span><span class="testfont">&#x1D6F8;</span>=<span>1D6F8</span></span>
+ <span><span class="testfont">&#x1D6F9;</span>=<span>1D6F9</span></span>
+ <span><span class="testfont">&#x1D6FA;</span>=<span>1D6FA</span></span><br/>
+ <span><span class="testfont">&#x1D6FC;</span>=<span>1D6FC</span></span>
+ <span><span class="testfont">&#x1D6FD;</span>=<span>1D6FD</span></span>
+ <span><span class="testfont">&#x1D6FE;</span>=<span>1D6FE</span></span>
+ <span><span class="testfont">&#x1D6FF;</span>=<span>1D6FF</span></span>
+ <span><span class="testfont">&#x1D700;</span>=<span>1D700</span></span>
+ <span><span class="testfont">&#x1D701;</span>=<span>1D701</span></span>
+ <span><span class="testfont">&#x1D702;</span>=<span>1D702</span></span>
+ <span><span class="testfont">&#x1D703;</span>=<span>1D703</span></span>
+ <span><span class="testfont">&#x1D704;</span>=<span>1D704</span></span>
+ <span><span class="testfont">&#x1D705;</span>=<span>1D705</span></span><br/>
+ <span><span class="testfont">&#x1D706;</span>=<span>1D706</span></span>
+ <span><span class="testfont">&#x1D707;</span>=<span>1D707</span></span>
+ <span><span class="testfont">&#x1D708;</span>=<span>1D708</span></span>
+ <span><span class="testfont">&#x1D709;</span>=<span>1D709</span></span>
+ <span><span class="testfont">&#x1D70A;</span>=<span>1D70A</span></span>
+ <span><span class="testfont">&#x1D70B;</span>=<span>1D70B</span></span>
+ <span><span class="testfont">&#x1D70C;</span>=<span>1D70C</span></span>
+ <span><span class="testfont">&#x1D70D;</span>=<span>1D70D</span></span>
+ <span><span class="testfont">&#x1D70E;</span>=<span>1D70E</span></span>
+ <span><span class="testfont">&#x1D70F;</span>=<span>1D70F</span></span><br/>
+ <span><span class="testfont">&#x1D710;</span>=<span>1D710</span></span>
+ <span><span class="testfont">&#x1D711;</span>=<span>1D711</span></span>
+ <span><span class="testfont">&#x1D712;</span>=<span>1D712</span></span>
+ <span><span class="testfont">&#x1D713;</span>=<span>1D713</span></span>
+ <span><span class="testfont">&#x1D714;</span>=<span>1D714</span></span>
+ <span><span class="testfont">&#x1D717;</span>=<span>1D717</span></span>
+ <span><span class="testfont">&#x1D719;</span>=<span>1D719</span></span>
+ <span><span class="testfont">&#x1D71B;</span>=<span>1D71B</span></span>
+ <span><span class="testfont">&#x1D718;</span>=<span>1D718</span></span>
+ <span><span class="testfont">&#x1D71A;</span>=<span>1D71A</span></span><br/>
+ <span><span class="testfont">&#x1D6F3;</span>=<span>1D6F3</span></span>
+ <span><span class="testfont">&#x1D716;</span>=<span>1D716</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html
new file mode 100644
index 0000000000..86e9a84ae2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-italic-001.tentative.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-italic</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#italic-mappings">
+<link rel="match" href="text-transform-math-italic-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-italic' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-italic">&#x2202;</span>=<span>1D715</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x2207;</span>=<span>1D6FB</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x237;</span>=<span>1D6A5</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x41;</span>=<span>1D434</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x42;</span>=<span>1D435</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x43;</span>=<span>1D436</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x44;</span>=<span>1D437</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x45;</span>=<span>1D438</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x46;</span>=<span>1D439</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x47;</span>=<span>1D43A</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x48;</span>=<span>1D43B</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x49;</span>=<span>1D43C</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4A;</span>=<span>1D43D</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4B;</span>=<span>1D43E</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4C;</span>=<span>1D43F</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4D;</span>=<span>1D440</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4E;</span>=<span>1D441</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x4F;</span>=<span>1D442</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x50;</span>=<span>1D443</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x51;</span>=<span>1D444</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x52;</span>=<span>1D445</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x53;</span>=<span>1D446</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x54;</span>=<span>1D447</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x55;</span>=<span>1D448</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x56;</span>=<span>1D449</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x57;</span>=<span>1D44A</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x58;</span>=<span>1D44B</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x59;</span>=<span>1D44C</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x5A;</span>=<span>1D44D</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x61;</span>=<span>1D44E</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x62;</span>=<span>1D44F</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x63;</span>=<span>1D450</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x64;</span>=<span>1D451</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x65;</span>=<span>1D452</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x66;</span>=<span>1D453</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x67;</span>=<span>1D454</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x68;</span>=<span>0210E</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x69;</span>=<span>1D456</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6A;</span>=<span>1D457</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6B;</span>=<span>1D458</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6C;</span>=<span>1D459</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6D;</span>=<span>1D45A</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6E;</span>=<span>1D45B</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x6F;</span>=<span>1D45C</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x70;</span>=<span>1D45D</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x71;</span>=<span>1D45E</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x72;</span>=<span>1D45F</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x73;</span>=<span>1D460</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x74;</span>=<span>1D461</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x75;</span>=<span>1D462</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x76;</span>=<span>1D463</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x77;</span>=<span>1D464</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x78;</span>=<span>1D465</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x79;</span>=<span>1D466</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x7A;</span>=<span>1D467</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x131;</span>=<span>1D6A4</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x391;</span>=<span>1D6E2</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x392;</span>=<span>1D6E3</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x393;</span>=<span>1D6E4</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x394;</span>=<span>1D6E5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x395;</span>=<span>1D6E6</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x396;</span>=<span>1D6E7</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x397;</span>=<span>1D6E8</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x398;</span>=<span>1D6E9</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x399;</span>=<span>1D6EA</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39A;</span>=<span>1D6EB</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39B;</span>=<span>1D6EC</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39C;</span>=<span>1D6ED</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39D;</span>=<span>1D6EE</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39E;</span>=<span>1D6EF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x39F;</span>=<span>1D6F0</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A0;</span>=<span>1D6F1</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A1;</span>=<span>1D6F2</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A3;</span>=<span>1D6F4</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A4;</span>=<span>1D6F5</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A5;</span>=<span>1D6F6</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A6;</span>=<span>1D6F7</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A7;</span>=<span>1D6F8</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A8;</span>=<span>1D6F9</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3A9;</span>=<span>1D6FA</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B1;</span>=<span>1D6FC</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B2;</span>=<span>1D6FD</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B3;</span>=<span>1D6FE</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B4;</span>=<span>1D6FF</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B5;</span>=<span>1D700</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B6;</span>=<span>1D701</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B7;</span>=<span>1D702</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B8;</span>=<span>1D703</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3B9;</span>=<span>1D704</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BA;</span>=<span>1D705</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BB;</span>=<span>1D706</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BC;</span>=<span>1D707</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BD;</span>=<span>1D708</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BE;</span>=<span>1D709</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3BF;</span>=<span>1D70A</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C0;</span>=<span>1D70B</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C1;</span>=<span>1D70C</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C2;</span>=<span>1D70D</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C3;</span>=<span>1D70E</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C4;</span>=<span>1D70F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C5;</span>=<span>1D710</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C6;</span>=<span>1D711</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C7;</span>=<span>1D712</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C8;</span>=<span>1D713</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3C9;</span>=<span>1D714</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3D1;</span>=<span>1D717</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3D5;</span>=<span>1D719</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3D6;</span>=<span>1D71B</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3F0;</span>=<span>1D718</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3F1;</span>=<span>1D71A</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3F4;</span>=<span>1D6F3</span></span>
+ <span><span class="testfont" style="text-transform: math-italic">&#x3F5;</span>=<span>1D716</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html
new file mode 100644
index 0000000000..89b52e2e81
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative-ref.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-looped (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1EE80;</span>=<span>1EE80</span></span>
+ <span><span class="testfont">&#x1EE81;</span>=<span>1EE81</span></span>
+ <span><span class="testfont">&#x1EE95;</span>=<span>1EE95</span></span>
+ <span><span class="testfont">&#x1EE96;</span>=<span>1EE96</span></span>
+ <span><span class="testfont">&#x1EE82;</span>=<span>1EE82</span></span>
+ <span><span class="testfont">&#x1EE87;</span>=<span>1EE87</span></span>
+ <span><span class="testfont">&#x1EE97;</span>=<span>1EE97</span></span>
+ <span><span class="testfont">&#x1EE83;</span>=<span>1EE83</span></span>
+ <span><span class="testfont">&#x1EE98;</span>=<span>1EE98</span></span>
+ <span><span class="testfont">&#x1EE93;</span>=<span>1EE93</span></span><br/>
+ <span><span class="testfont">&#x1EE86;</span>=<span>1EE86</span></span>
+ <span><span class="testfont">&#x1EE8E;</span>=<span>1EE8E</span></span>
+ <span><span class="testfont">&#x1EE94;</span>=<span>1EE94</span></span>
+ <span><span class="testfont">&#x1EE91;</span>=<span>1EE91</span></span>
+ <span><span class="testfont">&#x1EE99;</span>=<span>1EE99</span></span>
+ <span><span class="testfont">&#x1EE88;</span>=<span>1EE88</span></span>
+ <span><span class="testfont">&#x1EE9A;</span>=<span>1EE9A</span></span>
+ <span><span class="testfont">&#x1EE8F;</span>=<span>1EE8F</span></span>
+ <span><span class="testfont">&#x1EE9B;</span>=<span>1EE9B</span></span>
+ <span><span class="testfont">&#x1EE90;</span>=<span>1EE90</span></span><br/>
+ <span><span class="testfont">&#x1EE92;</span>=<span>1EE92</span></span>
+ <span><span class="testfont">&#x1EE8B;</span>=<span>1EE8B</span></span>
+ <span><span class="testfont">&#x1EE8C;</span>=<span>1EE8C</span></span>
+ <span><span class="testfont">&#x1EE8D;</span>=<span>1EE8D</span></span>
+ <span><span class="testfont">&#x1EE84;</span>=<span>1EE84</span></span>
+ <span><span class="testfont">&#x1EE85;</span>=<span>1EE85</span></span>
+ <span><span class="testfont">&#x1EE89;</span>=<span>1EE89</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html
new file mode 100644
index 0000000000..d46cbc163b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-looped-001.tentative.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-looped</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#looped-mappings">
+<link rel="match" href="text-transform-math-looped-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-looped' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-looped">&#x627;</span>=<span>1EE80</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x628;</span>=<span>1EE81</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62A;</span>=<span>1EE95</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62B;</span>=<span>1EE96</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62C;</span>=<span>1EE82</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62D;</span>=<span>1EE87</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62E;</span>=<span>1EE97</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x62F;</span>=<span>1EE83</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x630;</span>=<span>1EE98</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x631;</span>=<span>1EE93</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-looped">&#x632;</span>=<span>1EE86</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x633;</span>=<span>1EE8E</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x634;</span>=<span>1EE94</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x635;</span>=<span>1EE91</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x636;</span>=<span>1EE99</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x637;</span>=<span>1EE88</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x638;</span>=<span>1EE9A</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x639;</span>=<span>1EE8F</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x63A;</span>=<span>1EE9B</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x641;</span>=<span>1EE90</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-looped">&#x642;</span>=<span>1EE92</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x644;</span>=<span>1EE8B</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x645;</span>=<span>1EE8C</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x646;</span>=<span>1EE8D</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x647;</span>=<span>1EE84</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x648;</span>=<span>1EE85</span></span>
+ <span><span class="testfont" style="text-transform: math-looped">&#x64A;</span>=<span>1EE89</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html
new file mode 100644
index 0000000000..e254e1c0d2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative-ref.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-monospace (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D7F6;</span>=<span>1D7F6</span></span>
+ <span><span class="testfont">&#x1D7F7;</span>=<span>1D7F7</span></span>
+ <span><span class="testfont">&#x1D7F8;</span>=<span>1D7F8</span></span>
+ <span><span class="testfont">&#x1D7F9;</span>=<span>1D7F9</span></span>
+ <span><span class="testfont">&#x1D7FA;</span>=<span>1D7FA</span></span>
+ <span><span class="testfont">&#x1D7FB;</span>=<span>1D7FB</span></span>
+ <span><span class="testfont">&#x1D7FC;</span>=<span>1D7FC</span></span>
+ <span><span class="testfont">&#x1D7FD;</span>=<span>1D7FD</span></span>
+ <span><span class="testfont">&#x1D7FE;</span>=<span>1D7FE</span></span>
+ <span><span class="testfont">&#x1D7FF;</span>=<span>1D7FF</span></span><br/>
+ <span><span class="testfont">&#x1D670;</span>=<span>1D670</span></span>
+ <span><span class="testfont">&#x1D671;</span>=<span>1D671</span></span>
+ <span><span class="testfont">&#x1D672;</span>=<span>1D672</span></span>
+ <span><span class="testfont">&#x1D673;</span>=<span>1D673</span></span>
+ <span><span class="testfont">&#x1D674;</span>=<span>1D674</span></span>
+ <span><span class="testfont">&#x1D675;</span>=<span>1D675</span></span>
+ <span><span class="testfont">&#x1D676;</span>=<span>1D676</span></span>
+ <span><span class="testfont">&#x1D677;</span>=<span>1D677</span></span>
+ <span><span class="testfont">&#x1D678;</span>=<span>1D678</span></span>
+ <span><span class="testfont">&#x1D679;</span>=<span>1D679</span></span><br/>
+ <span><span class="testfont">&#x1D67A;</span>=<span>1D67A</span></span>
+ <span><span class="testfont">&#x1D67B;</span>=<span>1D67B</span></span>
+ <span><span class="testfont">&#x1D67C;</span>=<span>1D67C</span></span>
+ <span><span class="testfont">&#x1D67D;</span>=<span>1D67D</span></span>
+ <span><span class="testfont">&#x1D67E;</span>=<span>1D67E</span></span>
+ <span><span class="testfont">&#x1D67F;</span>=<span>1D67F</span></span>
+ <span><span class="testfont">&#x1D680;</span>=<span>1D680</span></span>
+ <span><span class="testfont">&#x1D681;</span>=<span>1D681</span></span>
+ <span><span class="testfont">&#x1D682;</span>=<span>1D682</span></span>
+ <span><span class="testfont">&#x1D683;</span>=<span>1D683</span></span><br/>
+ <span><span class="testfont">&#x1D684;</span>=<span>1D684</span></span>
+ <span><span class="testfont">&#x1D685;</span>=<span>1D685</span></span>
+ <span><span class="testfont">&#x1D686;</span>=<span>1D686</span></span>
+ <span><span class="testfont">&#x1D687;</span>=<span>1D687</span></span>
+ <span><span class="testfont">&#x1D688;</span>=<span>1D688</span></span>
+ <span><span class="testfont">&#x1D689;</span>=<span>1D689</span></span>
+ <span><span class="testfont">&#x1D68A;</span>=<span>1D68A</span></span>
+ <span><span class="testfont">&#x1D68B;</span>=<span>1D68B</span></span>
+ <span><span class="testfont">&#x1D68C;</span>=<span>1D68C</span></span>
+ <span><span class="testfont">&#x1D68D;</span>=<span>1D68D</span></span><br/>
+ <span><span class="testfont">&#x1D68E;</span>=<span>1D68E</span></span>
+ <span><span class="testfont">&#x1D68F;</span>=<span>1D68F</span></span>
+ <span><span class="testfont">&#x1D690;</span>=<span>1D690</span></span>
+ <span><span class="testfont">&#x1D691;</span>=<span>1D691</span></span>
+ <span><span class="testfont">&#x1D692;</span>=<span>1D692</span></span>
+ <span><span class="testfont">&#x1D693;</span>=<span>1D693</span></span>
+ <span><span class="testfont">&#x1D694;</span>=<span>1D694</span></span>
+ <span><span class="testfont">&#x1D695;</span>=<span>1D695</span></span>
+ <span><span class="testfont">&#x1D696;</span>=<span>1D696</span></span>
+ <span><span class="testfont">&#x1D697;</span>=<span>1D697</span></span><br/>
+ <span><span class="testfont">&#x1D698;</span>=<span>1D698</span></span>
+ <span><span class="testfont">&#x1D699;</span>=<span>1D699</span></span>
+ <span><span class="testfont">&#x1D69A;</span>=<span>1D69A</span></span>
+ <span><span class="testfont">&#x1D69B;</span>=<span>1D69B</span></span>
+ <span><span class="testfont">&#x1D69C;</span>=<span>1D69C</span></span>
+ <span><span class="testfont">&#x1D69D;</span>=<span>1D69D</span></span>
+ <span><span class="testfont">&#x1D69E;</span>=<span>1D69E</span></span>
+ <span><span class="testfont">&#x1D69F;</span>=<span>1D69F</span></span>
+ <span><span class="testfont">&#x1D6A0;</span>=<span>1D6A0</span></span>
+ <span><span class="testfont">&#x1D6A1;</span>=<span>1D6A1</span></span><br/>
+ <span><span class="testfont">&#x1D6A2;</span>=<span>1D6A2</span></span>
+ <span><span class="testfont">&#x1D6A3;</span>=<span>1D6A3</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html
new file mode 100644
index 0000000000..86a4d113b2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-monospace-001.tentative.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-monospace</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#monospace-mappings">
+<link rel="match" href="text-transform-math-monospace-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-monospace' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x30;</span>=<span>1D7F6</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x31;</span>=<span>1D7F7</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x32;</span>=<span>1D7F8</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x33;</span>=<span>1D7F9</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x34;</span>=<span>1D7FA</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x35;</span>=<span>1D7FB</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x36;</span>=<span>1D7FC</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x37;</span>=<span>1D7FD</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x38;</span>=<span>1D7FE</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x39;</span>=<span>1D7FF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x41;</span>=<span>1D670</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x42;</span>=<span>1D671</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x43;</span>=<span>1D672</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x44;</span>=<span>1D673</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x45;</span>=<span>1D674</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x46;</span>=<span>1D675</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x47;</span>=<span>1D676</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x48;</span>=<span>1D677</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x49;</span>=<span>1D678</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4A;</span>=<span>1D679</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4B;</span>=<span>1D67A</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4C;</span>=<span>1D67B</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4D;</span>=<span>1D67C</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4E;</span>=<span>1D67D</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x4F;</span>=<span>1D67E</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x50;</span>=<span>1D67F</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x51;</span>=<span>1D680</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x52;</span>=<span>1D681</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x53;</span>=<span>1D682</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x54;</span>=<span>1D683</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x55;</span>=<span>1D684</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x56;</span>=<span>1D685</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x57;</span>=<span>1D686</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x58;</span>=<span>1D687</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x59;</span>=<span>1D688</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x5A;</span>=<span>1D689</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x61;</span>=<span>1D68A</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x62;</span>=<span>1D68B</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x63;</span>=<span>1D68C</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x64;</span>=<span>1D68D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x65;</span>=<span>1D68E</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x66;</span>=<span>1D68F</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x67;</span>=<span>1D690</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x68;</span>=<span>1D691</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x69;</span>=<span>1D692</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6A;</span>=<span>1D693</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6B;</span>=<span>1D694</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6C;</span>=<span>1D695</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6D;</span>=<span>1D696</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6E;</span>=<span>1D697</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x6F;</span>=<span>1D698</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x70;</span>=<span>1D699</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x71;</span>=<span>1D69A</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x72;</span>=<span>1D69B</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x73;</span>=<span>1D69C</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x74;</span>=<span>1D69D</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x75;</span>=<span>1D69E</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x76;</span>=<span>1D69F</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x77;</span>=<span>1D6A0</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x78;</span>=<span>1D6A1</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x79;</span>=<span>1D6A2</span></span>
+ <span><span class="testfont" style="text-transform: math-monospace">&#x7A;</span>=<span>1D6A3</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html
new file mode 100644
index 0000000000..8b75a6f8e1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative-ref.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D7E2;</span>=<span>1D7E2</span></span>
+ <span><span class="testfont">&#x1D7E3;</span>=<span>1D7E3</span></span>
+ <span><span class="testfont">&#x1D7E4;</span>=<span>1D7E4</span></span>
+ <span><span class="testfont">&#x1D7E5;</span>=<span>1D7E5</span></span>
+ <span><span class="testfont">&#x1D7E6;</span>=<span>1D7E6</span></span>
+ <span><span class="testfont">&#x1D7E7;</span>=<span>1D7E7</span></span>
+ <span><span class="testfont">&#x1D7E8;</span>=<span>1D7E8</span></span>
+ <span><span class="testfont">&#x1D7E9;</span>=<span>1D7E9</span></span>
+ <span><span class="testfont">&#x1D7EA;</span>=<span>1D7EA</span></span>
+ <span><span class="testfont">&#x1D7EB;</span>=<span>1D7EB</span></span><br/>
+ <span><span class="testfont">&#x1D5A0;</span>=<span>1D5A0</span></span>
+ <span><span class="testfont">&#x1D5A1;</span>=<span>1D5A1</span></span>
+ <span><span class="testfont">&#x1D5A2;</span>=<span>1D5A2</span></span>
+ <span><span class="testfont">&#x1D5A3;</span>=<span>1D5A3</span></span>
+ <span><span class="testfont">&#x1D5A4;</span>=<span>1D5A4</span></span>
+ <span><span class="testfont">&#x1D5A5;</span>=<span>1D5A5</span></span>
+ <span><span class="testfont">&#x1D5A6;</span>=<span>1D5A6</span></span>
+ <span><span class="testfont">&#x1D5A7;</span>=<span>1D5A7</span></span>
+ <span><span class="testfont">&#x1D5A8;</span>=<span>1D5A8</span></span>
+ <span><span class="testfont">&#x1D5A9;</span>=<span>1D5A9</span></span><br/>
+ <span><span class="testfont">&#x1D5AA;</span>=<span>1D5AA</span></span>
+ <span><span class="testfont">&#x1D5AB;</span>=<span>1D5AB</span></span>
+ <span><span class="testfont">&#x1D5AC;</span>=<span>1D5AC</span></span>
+ <span><span class="testfont">&#x1D5AD;</span>=<span>1D5AD</span></span>
+ <span><span class="testfont">&#x1D5AE;</span>=<span>1D5AE</span></span>
+ <span><span class="testfont">&#x1D5AF;</span>=<span>1D5AF</span></span>
+ <span><span class="testfont">&#x1D5B0;</span>=<span>1D5B0</span></span>
+ <span><span class="testfont">&#x1D5B1;</span>=<span>1D5B1</span></span>
+ <span><span class="testfont">&#x1D5B2;</span>=<span>1D5B2</span></span>
+ <span><span class="testfont">&#x1D5B3;</span>=<span>1D5B3</span></span><br/>
+ <span><span class="testfont">&#x1D5B4;</span>=<span>1D5B4</span></span>
+ <span><span class="testfont">&#x1D5B5;</span>=<span>1D5B5</span></span>
+ <span><span class="testfont">&#x1D5B6;</span>=<span>1D5B6</span></span>
+ <span><span class="testfont">&#x1D5B7;</span>=<span>1D5B7</span></span>
+ <span><span class="testfont">&#x1D5B8;</span>=<span>1D5B8</span></span>
+ <span><span class="testfont">&#x1D5B9;</span>=<span>1D5B9</span></span>
+ <span><span class="testfont">&#x1D5BA;</span>=<span>1D5BA</span></span>
+ <span><span class="testfont">&#x1D5BB;</span>=<span>1D5BB</span></span>
+ <span><span class="testfont">&#x1D5BC;</span>=<span>1D5BC</span></span>
+ <span><span class="testfont">&#x1D5BD;</span>=<span>1D5BD</span></span><br/>
+ <span><span class="testfont">&#x1D5BE;</span>=<span>1D5BE</span></span>
+ <span><span class="testfont">&#x1D5BF;</span>=<span>1D5BF</span></span>
+ <span><span class="testfont">&#x1D5C0;</span>=<span>1D5C0</span></span>
+ <span><span class="testfont">&#x1D5C1;</span>=<span>1D5C1</span></span>
+ <span><span class="testfont">&#x1D5C2;</span>=<span>1D5C2</span></span>
+ <span><span class="testfont">&#x1D5C3;</span>=<span>1D5C3</span></span>
+ <span><span class="testfont">&#x1D5C4;</span>=<span>1D5C4</span></span>
+ <span><span class="testfont">&#x1D5C5;</span>=<span>1D5C5</span></span>
+ <span><span class="testfont">&#x1D5C6;</span>=<span>1D5C6</span></span>
+ <span><span class="testfont">&#x1D5C7;</span>=<span>1D5C7</span></span><br/>
+ <span><span class="testfont">&#x1D5C8;</span>=<span>1D5C8</span></span>
+ <span><span class="testfont">&#x1D5C9;</span>=<span>1D5C9</span></span>
+ <span><span class="testfont">&#x1D5CA;</span>=<span>1D5CA</span></span>
+ <span><span class="testfont">&#x1D5CB;</span>=<span>1D5CB</span></span>
+ <span><span class="testfont">&#x1D5CC;</span>=<span>1D5CC</span></span>
+ <span><span class="testfont">&#x1D5CD;</span>=<span>1D5CD</span></span>
+ <span><span class="testfont">&#x1D5CE;</span>=<span>1D5CE</span></span>
+ <span><span class="testfont">&#x1D5CF;</span>=<span>1D5CF</span></span>
+ <span><span class="testfont">&#x1D5D0;</span>=<span>1D5D0</span></span>
+ <span><span class="testfont">&#x1D5D1;</span>=<span>1D5D1</span></span><br/>
+ <span><span class="testfont">&#x1D5D2;</span>=<span>1D5D2</span></span>
+ <span><span class="testfont">&#x1D5D3;</span>=<span>1D5D3</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html
new file mode 100644
index 0000000000..41a5cc9453
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-001.tentative.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-mappings">
+<link rel="match" href="text-transform-math-sans-serif-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x30;</span>=<span>1D7E2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x31;</span>=<span>1D7E3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x32;</span>=<span>1D7E4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x33;</span>=<span>1D7E5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x34;</span>=<span>1D7E6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x35;</span>=<span>1D7E7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x36;</span>=<span>1D7E8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x37;</span>=<span>1D7E9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x38;</span>=<span>1D7EA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x39;</span>=<span>1D7EB</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x41;</span>=<span>1D5A0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x42;</span>=<span>1D5A1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x43;</span>=<span>1D5A2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x44;</span>=<span>1D5A3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x45;</span>=<span>1D5A4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x46;</span>=<span>1D5A5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x47;</span>=<span>1D5A6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x48;</span>=<span>1D5A7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x49;</span>=<span>1D5A8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4A;</span>=<span>1D5A9</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4B;</span>=<span>1D5AA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4C;</span>=<span>1D5AB</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4D;</span>=<span>1D5AC</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4E;</span>=<span>1D5AD</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x4F;</span>=<span>1D5AE</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x50;</span>=<span>1D5AF</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x51;</span>=<span>1D5B0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x52;</span>=<span>1D5B1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x53;</span>=<span>1D5B2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x54;</span>=<span>1D5B3</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x55;</span>=<span>1D5B4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x56;</span>=<span>1D5B5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x57;</span>=<span>1D5B6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x58;</span>=<span>1D5B7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x59;</span>=<span>1D5B8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x5A;</span>=<span>1D5B9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x61;</span>=<span>1D5BA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x62;</span>=<span>1D5BB</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x63;</span>=<span>1D5BC</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x64;</span>=<span>1D5BD</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x65;</span>=<span>1D5BE</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x66;</span>=<span>1D5BF</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x67;</span>=<span>1D5C0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x68;</span>=<span>1D5C1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x69;</span>=<span>1D5C2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6A;</span>=<span>1D5C3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6B;</span>=<span>1D5C4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6C;</span>=<span>1D5C5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6D;</span>=<span>1D5C6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6E;</span>=<span>1D5C7</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x6F;</span>=<span>1D5C8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x70;</span>=<span>1D5C9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x71;</span>=<span>1D5CA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x72;</span>=<span>1D5CB</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x73;</span>=<span>1D5CC</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x74;</span>=<span>1D5CD</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x75;</span>=<span>1D5CE</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x76;</span>=<span>1D5CF</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x77;</span>=<span>1D5D0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x78;</span>=<span>1D5D1</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x79;</span>=<span>1D5D2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif">&#x7A;</span>=<span>1D5D3</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html
new file mode 100644
index 0000000000..7f71dc40e3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative-ref.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif-bold-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D7C3;</span>=<span>1D7C3</span></span>
+ <span><span class="testfont">&#x1D7A9;</span>=<span>1D7A9</span></span>
+ <span><span class="testfont">&#x1D63C;</span>=<span>1D63C</span></span>
+ <span><span class="testfont">&#x1D63D;</span>=<span>1D63D</span></span>
+ <span><span class="testfont">&#x1D63E;</span>=<span>1D63E</span></span>
+ <span><span class="testfont">&#x1D63F;</span>=<span>1D63F</span></span>
+ <span><span class="testfont">&#x1D640;</span>=<span>1D640</span></span>
+ <span><span class="testfont">&#x1D641;</span>=<span>1D641</span></span>
+ <span><span class="testfont">&#x1D642;</span>=<span>1D642</span></span>
+ <span><span class="testfont">&#x1D643;</span>=<span>1D643</span></span><br/>
+ <span><span class="testfont">&#x1D644;</span>=<span>1D644</span></span>
+ <span><span class="testfont">&#x1D645;</span>=<span>1D645</span></span>
+ <span><span class="testfont">&#x1D646;</span>=<span>1D646</span></span>
+ <span><span class="testfont">&#x1D647;</span>=<span>1D647</span></span>
+ <span><span class="testfont">&#x1D648;</span>=<span>1D648</span></span>
+ <span><span class="testfont">&#x1D649;</span>=<span>1D649</span></span>
+ <span><span class="testfont">&#x1D64A;</span>=<span>1D64A</span></span>
+ <span><span class="testfont">&#x1D64B;</span>=<span>1D64B</span></span>
+ <span><span class="testfont">&#x1D64C;</span>=<span>1D64C</span></span>
+ <span><span class="testfont">&#x1D64D;</span>=<span>1D64D</span></span><br/>
+ <span><span class="testfont">&#x1D64E;</span>=<span>1D64E</span></span>
+ <span><span class="testfont">&#x1D64F;</span>=<span>1D64F</span></span>
+ <span><span class="testfont">&#x1D650;</span>=<span>1D650</span></span>
+ <span><span class="testfont">&#x1D651;</span>=<span>1D651</span></span>
+ <span><span class="testfont">&#x1D652;</span>=<span>1D652</span></span>
+ <span><span class="testfont">&#x1D653;</span>=<span>1D653</span></span>
+ <span><span class="testfont">&#x1D654;</span>=<span>1D654</span></span>
+ <span><span class="testfont">&#x1D655;</span>=<span>1D655</span></span>
+ <span><span class="testfont">&#x1D656;</span>=<span>1D656</span></span>
+ <span><span class="testfont">&#x1D657;</span>=<span>1D657</span></span><br/>
+ <span><span class="testfont">&#x1D658;</span>=<span>1D658</span></span>
+ <span><span class="testfont">&#x1D659;</span>=<span>1D659</span></span>
+ <span><span class="testfont">&#x1D65A;</span>=<span>1D65A</span></span>
+ <span><span class="testfont">&#x1D65B;</span>=<span>1D65B</span></span>
+ <span><span class="testfont">&#x1D65C;</span>=<span>1D65C</span></span>
+ <span><span class="testfont">&#x1D65D;</span>=<span>1D65D</span></span>
+ <span><span class="testfont">&#x1D65E;</span>=<span>1D65E</span></span>
+ <span><span class="testfont">&#x1D65F;</span>=<span>1D65F</span></span>
+ <span><span class="testfont">&#x1D660;</span>=<span>1D660</span></span>
+ <span><span class="testfont">&#x1D661;</span>=<span>1D661</span></span><br/>
+ <span><span class="testfont">&#x1D662;</span>=<span>1D662</span></span>
+ <span><span class="testfont">&#x1D663;</span>=<span>1D663</span></span>
+ <span><span class="testfont">&#x1D664;</span>=<span>1D664</span></span>
+ <span><span class="testfont">&#x1D665;</span>=<span>1D665</span></span>
+ <span><span class="testfont">&#x1D666;</span>=<span>1D666</span></span>
+ <span><span class="testfont">&#x1D667;</span>=<span>1D667</span></span>
+ <span><span class="testfont">&#x1D668;</span>=<span>1D668</span></span>
+ <span><span class="testfont">&#x1D669;</span>=<span>1D669</span></span>
+ <span><span class="testfont">&#x1D66A;</span>=<span>1D66A</span></span>
+ <span><span class="testfont">&#x1D66B;</span>=<span>1D66B</span></span><br/>
+ <span><span class="testfont">&#x1D66C;</span>=<span>1D66C</span></span>
+ <span><span class="testfont">&#x1D66D;</span>=<span>1D66D</span></span>
+ <span><span class="testfont">&#x1D66E;</span>=<span>1D66E</span></span>
+ <span><span class="testfont">&#x1D66F;</span>=<span>1D66F</span></span>
+ <span><span class="testfont">&#x1D790;</span>=<span>1D790</span></span>
+ <span><span class="testfont">&#x1D791;</span>=<span>1D791</span></span>
+ <span><span class="testfont">&#x1D792;</span>=<span>1D792</span></span>
+ <span><span class="testfont">&#x1D793;</span>=<span>1D793</span></span>
+ <span><span class="testfont">&#x1D794;</span>=<span>1D794</span></span>
+ <span><span class="testfont">&#x1D795;</span>=<span>1D795</span></span><br/>
+ <span><span class="testfont">&#x1D796;</span>=<span>1D796</span></span>
+ <span><span class="testfont">&#x1D797;</span>=<span>1D797</span></span>
+ <span><span class="testfont">&#x1D798;</span>=<span>1D798</span></span>
+ <span><span class="testfont">&#x1D799;</span>=<span>1D799</span></span>
+ <span><span class="testfont">&#x1D79A;</span>=<span>1D79A</span></span>
+ <span><span class="testfont">&#x1D79B;</span>=<span>1D79B</span></span>
+ <span><span class="testfont">&#x1D79C;</span>=<span>1D79C</span></span>
+ <span><span class="testfont">&#x1D79D;</span>=<span>1D79D</span></span>
+ <span><span class="testfont">&#x1D79E;</span>=<span>1D79E</span></span>
+ <span><span class="testfont">&#x1D79F;</span>=<span>1D79F</span></span><br/>
+ <span><span class="testfont">&#x1D7A0;</span>=<span>1D7A0</span></span>
+ <span><span class="testfont">&#x1D7A2;</span>=<span>1D7A2</span></span>
+ <span><span class="testfont">&#x1D7A3;</span>=<span>1D7A3</span></span>
+ <span><span class="testfont">&#x1D7A4;</span>=<span>1D7A4</span></span>
+ <span><span class="testfont">&#x1D7A5;</span>=<span>1D7A5</span></span>
+ <span><span class="testfont">&#x1D7A6;</span>=<span>1D7A6</span></span>
+ <span><span class="testfont">&#x1D7A7;</span>=<span>1D7A7</span></span>
+ <span><span class="testfont">&#x1D7A8;</span>=<span>1D7A8</span></span>
+ <span><span class="testfont">&#x1D7AA;</span>=<span>1D7AA</span></span>
+ <span><span class="testfont">&#x1D7AB;</span>=<span>1D7AB</span></span><br/>
+ <span><span class="testfont">&#x1D7AC;</span>=<span>1D7AC</span></span>
+ <span><span class="testfont">&#x1D7AD;</span>=<span>1D7AD</span></span>
+ <span><span class="testfont">&#x1D7AE;</span>=<span>1D7AE</span></span>
+ <span><span class="testfont">&#x1D7AF;</span>=<span>1D7AF</span></span>
+ <span><span class="testfont">&#x1D7B0;</span>=<span>1D7B0</span></span>
+ <span><span class="testfont">&#x1D7B1;</span>=<span>1D7B1</span></span>
+ <span><span class="testfont">&#x1D7B2;</span>=<span>1D7B2</span></span>
+ <span><span class="testfont">&#x1D7B3;</span>=<span>1D7B3</span></span>
+ <span><span class="testfont">&#x1D7B4;</span>=<span>1D7B4</span></span>
+ <span><span class="testfont">&#x1D7B5;</span>=<span>1D7B5</span></span><br/>
+ <span><span class="testfont">&#x1D7B6;</span>=<span>1D7B6</span></span>
+ <span><span class="testfont">&#x1D7B7;</span>=<span>1D7B7</span></span>
+ <span><span class="testfont">&#x1D7B8;</span>=<span>1D7B8</span></span>
+ <span><span class="testfont">&#x1D7B9;</span>=<span>1D7B9</span></span>
+ <span><span class="testfont">&#x1D7BA;</span>=<span>1D7BA</span></span>
+ <span><span class="testfont">&#x1D7BB;</span>=<span>1D7BB</span></span>
+ <span><span class="testfont">&#x1D7BC;</span>=<span>1D7BC</span></span>
+ <span><span class="testfont">&#x1D7BD;</span>=<span>1D7BD</span></span>
+ <span><span class="testfont">&#x1D7BE;</span>=<span>1D7BE</span></span>
+ <span><span class="testfont">&#x1D7BF;</span>=<span>1D7BF</span></span><br/>
+ <span><span class="testfont">&#x1D7C0;</span>=<span>1D7C0</span></span>
+ <span><span class="testfont">&#x1D7C1;</span>=<span>1D7C1</span></span>
+ <span><span class="testfont">&#x1D7C2;</span>=<span>1D7C2</span></span>
+ <span><span class="testfont">&#x1D7C5;</span>=<span>1D7C5</span></span>
+ <span><span class="testfont">&#x1D7C7;</span>=<span>1D7C7</span></span>
+ <span><span class="testfont">&#x1D7C9;</span>=<span>1D7C9</span></span>
+ <span><span class="testfont">&#x1D7C6;</span>=<span>1D7C6</span></span>
+ <span><span class="testfont">&#x1D7C8;</span>=<span>1D7C8</span></span>
+ <span><span class="testfont">&#x1D7A1;</span>=<span>1D7A1</span></span>
+ <span><span class="testfont">&#x1D7C4;</span>=<span>1D7C4</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html
new file mode 100644
index 0000000000..955c54ab38
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-bold-italic-001.tentative.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif-bold-italic</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-bold-italic-mappings">
+<link rel="match" href="text-transform-math-sans-serif-bold-italic-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif-bold-italic' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x2202;</span>=<span>1D7C3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x2207;</span>=<span>1D7A9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x41;</span>=<span>1D63C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x42;</span>=<span>1D63D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x43;</span>=<span>1D63E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x44;</span>=<span>1D63F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x45;</span>=<span>1D640</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x46;</span>=<span>1D641</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x47;</span>=<span>1D642</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x48;</span>=<span>1D643</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x49;</span>=<span>1D644</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4A;</span>=<span>1D645</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4B;</span>=<span>1D646</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4C;</span>=<span>1D647</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4D;</span>=<span>1D648</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4E;</span>=<span>1D649</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x4F;</span>=<span>1D64A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x50;</span>=<span>1D64B</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x51;</span>=<span>1D64C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x52;</span>=<span>1D64D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x53;</span>=<span>1D64E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x54;</span>=<span>1D64F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x55;</span>=<span>1D650</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x56;</span>=<span>1D651</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x57;</span>=<span>1D652</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x58;</span>=<span>1D653</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x59;</span>=<span>1D654</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x5A;</span>=<span>1D655</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x61;</span>=<span>1D656</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x62;</span>=<span>1D657</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x63;</span>=<span>1D658</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x64;</span>=<span>1D659</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x65;</span>=<span>1D65A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x66;</span>=<span>1D65B</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x67;</span>=<span>1D65C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x68;</span>=<span>1D65D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x69;</span>=<span>1D65E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6A;</span>=<span>1D65F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6B;</span>=<span>1D660</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6C;</span>=<span>1D661</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6D;</span>=<span>1D662</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6E;</span>=<span>1D663</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x6F;</span>=<span>1D664</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x70;</span>=<span>1D665</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x71;</span>=<span>1D666</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x72;</span>=<span>1D667</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x73;</span>=<span>1D668</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x74;</span>=<span>1D669</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x75;</span>=<span>1D66A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x76;</span>=<span>1D66B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x77;</span>=<span>1D66C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x78;</span>=<span>1D66D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x79;</span>=<span>1D66E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x7A;</span>=<span>1D66F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x391;</span>=<span>1D790</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x392;</span>=<span>1D791</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x393;</span>=<span>1D792</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x394;</span>=<span>1D793</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x395;</span>=<span>1D794</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x396;</span>=<span>1D795</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x397;</span>=<span>1D796</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x398;</span>=<span>1D797</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x399;</span>=<span>1D798</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39A;</span>=<span>1D799</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39B;</span>=<span>1D79A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39C;</span>=<span>1D79B</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39D;</span>=<span>1D79C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39E;</span>=<span>1D79D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x39F;</span>=<span>1D79E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A0;</span>=<span>1D79F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A1;</span>=<span>1D7A0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A3;</span>=<span>1D7A2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A4;</span>=<span>1D7A3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A5;</span>=<span>1D7A4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A6;</span>=<span>1D7A5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A7;</span>=<span>1D7A6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A8;</span>=<span>1D7A7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3A9;</span>=<span>1D7A8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B1;</span>=<span>1D7AA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B2;</span>=<span>1D7AB</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B3;</span>=<span>1D7AC</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B4;</span>=<span>1D7AD</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B5;</span>=<span>1D7AE</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B6;</span>=<span>1D7AF</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B7;</span>=<span>1D7B0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B8;</span>=<span>1D7B1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3B9;</span>=<span>1D7B2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BA;</span>=<span>1D7B3</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BB;</span>=<span>1D7B4</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BC;</span>=<span>1D7B5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BD;</span>=<span>1D7B6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BE;</span>=<span>1D7B7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3BF;</span>=<span>1D7B8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C0;</span>=<span>1D7B9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C1;</span>=<span>1D7BA</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C2;</span>=<span>1D7BB</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C3;</span>=<span>1D7BC</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C4;</span>=<span>1D7BD</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C5;</span>=<span>1D7BE</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C6;</span>=<span>1D7BF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C7;</span>=<span>1D7C0</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C8;</span>=<span>1D7C1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3C9;</span>=<span>1D7C2</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3D1;</span>=<span>1D7C5</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3D5;</span>=<span>1D7C7</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3D6;</span>=<span>1D7C9</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3F0;</span>=<span>1D7C6</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3F1;</span>=<span>1D7C8</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3F4;</span>=<span>1D7A1</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-bold-italic">&#x3F5;</span>=<span>1D7C4</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html
new file mode 100644
index 0000000000..f352596b6b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D608;</span>=<span>1D608</span></span>
+ <span><span class="testfont">&#x1D609;</span>=<span>1D609</span></span>
+ <span><span class="testfont">&#x1D60A;</span>=<span>1D60A</span></span>
+ <span><span class="testfont">&#x1D60B;</span>=<span>1D60B</span></span>
+ <span><span class="testfont">&#x1D60C;</span>=<span>1D60C</span></span>
+ <span><span class="testfont">&#x1D60D;</span>=<span>1D60D</span></span>
+ <span><span class="testfont">&#x1D60E;</span>=<span>1D60E</span></span>
+ <span><span class="testfont">&#x1D60F;</span>=<span>1D60F</span></span>
+ <span><span class="testfont">&#x1D610;</span>=<span>1D610</span></span>
+ <span><span class="testfont">&#x1D611;</span>=<span>1D611</span></span><br/>
+ <span><span class="testfont">&#x1D612;</span>=<span>1D612</span></span>
+ <span><span class="testfont">&#x1D613;</span>=<span>1D613</span></span>
+ <span><span class="testfont">&#x1D614;</span>=<span>1D614</span></span>
+ <span><span class="testfont">&#x1D615;</span>=<span>1D615</span></span>
+ <span><span class="testfont">&#x1D616;</span>=<span>1D616</span></span>
+ <span><span class="testfont">&#x1D617;</span>=<span>1D617</span></span>
+ <span><span class="testfont">&#x1D618;</span>=<span>1D618</span></span>
+ <span><span class="testfont">&#x1D619;</span>=<span>1D619</span></span>
+ <span><span class="testfont">&#x1D61A;</span>=<span>1D61A</span></span>
+ <span><span class="testfont">&#x1D61B;</span>=<span>1D61B</span></span><br/>
+ <span><span class="testfont">&#x1D61C;</span>=<span>1D61C</span></span>
+ <span><span class="testfont">&#x1D61D;</span>=<span>1D61D</span></span>
+ <span><span class="testfont">&#x1D61E;</span>=<span>1D61E</span></span>
+ <span><span class="testfont">&#x1D61F;</span>=<span>1D61F</span></span>
+ <span><span class="testfont">&#x1D620;</span>=<span>1D620</span></span>
+ <span><span class="testfont">&#x1D621;</span>=<span>1D621</span></span>
+ <span><span class="testfont">&#x1D622;</span>=<span>1D622</span></span>
+ <span><span class="testfont">&#x1D623;</span>=<span>1D623</span></span>
+ <span><span class="testfont">&#x1D624;</span>=<span>1D624</span></span>
+ <span><span class="testfont">&#x1D625;</span>=<span>1D625</span></span><br/>
+ <span><span class="testfont">&#x1D626;</span>=<span>1D626</span></span>
+ <span><span class="testfont">&#x1D627;</span>=<span>1D627</span></span>
+ <span><span class="testfont">&#x1D628;</span>=<span>1D628</span></span>
+ <span><span class="testfont">&#x1D629;</span>=<span>1D629</span></span>
+ <span><span class="testfont">&#x1D62A;</span>=<span>1D62A</span></span>
+ <span><span class="testfont">&#x1D62B;</span>=<span>1D62B</span></span>
+ <span><span class="testfont">&#x1D62C;</span>=<span>1D62C</span></span>
+ <span><span class="testfont">&#x1D62D;</span>=<span>1D62D</span></span>
+ <span><span class="testfont">&#x1D62E;</span>=<span>1D62E</span></span>
+ <span><span class="testfont">&#x1D62F;</span>=<span>1D62F</span></span><br/>
+ <span><span class="testfont">&#x1D630;</span>=<span>1D630</span></span>
+ <span><span class="testfont">&#x1D631;</span>=<span>1D631</span></span>
+ <span><span class="testfont">&#x1D632;</span>=<span>1D632</span></span>
+ <span><span class="testfont">&#x1D633;</span>=<span>1D633</span></span>
+ <span><span class="testfont">&#x1D634;</span>=<span>1D634</span></span>
+ <span><span class="testfont">&#x1D635;</span>=<span>1D635</span></span>
+ <span><span class="testfont">&#x1D636;</span>=<span>1D636</span></span>
+ <span><span class="testfont">&#x1D637;</span>=<span>1D637</span></span>
+ <span><span class="testfont">&#x1D638;</span>=<span>1D638</span></span>
+ <span><span class="testfont">&#x1D639;</span>=<span>1D639</span></span><br/>
+ <span><span class="testfont">&#x1D63A;</span>=<span>1D63A</span></span>
+ <span><span class="testfont">&#x1D63B;</span>=<span>1D63B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html
new file mode 100644
index 0000000000..03afa9a0d1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-sans-serif-italic-001.tentative.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-sans-serif-italic</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#sans-serif-italic-mappings">
+<link rel="match" href="text-transform-math-sans-serif-italic-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-sans-serif-italic' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x41;</span>=<span>1D608</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x42;</span>=<span>1D609</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x43;</span>=<span>1D60A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x44;</span>=<span>1D60B</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x45;</span>=<span>1D60C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x46;</span>=<span>1D60D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x47;</span>=<span>1D60E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x48;</span>=<span>1D60F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x49;</span>=<span>1D610</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4A;</span>=<span>1D611</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4B;</span>=<span>1D612</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4C;</span>=<span>1D613</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4D;</span>=<span>1D614</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4E;</span>=<span>1D615</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x4F;</span>=<span>1D616</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x50;</span>=<span>1D617</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x51;</span>=<span>1D618</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x52;</span>=<span>1D619</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x53;</span>=<span>1D61A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x54;</span>=<span>1D61B</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x55;</span>=<span>1D61C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x56;</span>=<span>1D61D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x57;</span>=<span>1D61E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x58;</span>=<span>1D61F</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x59;</span>=<span>1D620</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x5A;</span>=<span>1D621</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x61;</span>=<span>1D622</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x62;</span>=<span>1D623</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x63;</span>=<span>1D624</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x64;</span>=<span>1D625</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x65;</span>=<span>1D626</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x66;</span>=<span>1D627</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x67;</span>=<span>1D628</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x68;</span>=<span>1D629</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x69;</span>=<span>1D62A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6A;</span>=<span>1D62B</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6B;</span>=<span>1D62C</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6C;</span>=<span>1D62D</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6D;</span>=<span>1D62E</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6E;</span>=<span>1D62F</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x6F;</span>=<span>1D630</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x70;</span>=<span>1D631</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x71;</span>=<span>1D632</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x72;</span>=<span>1D633</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x73;</span>=<span>1D634</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x74;</span>=<span>1D635</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x75;</span>=<span>1D636</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x76;</span>=<span>1D637</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x77;</span>=<span>1D638</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x78;</span>=<span>1D639</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x79;</span>=<span>1D63A</span></span>
+ <span><span class="testfont" style="text-transform: math-sans-serif-italic">&#x7A;</span>=<span>1D63B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html
new file mode 100644
index 0000000000..6cbe296dfb
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-script (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1D49C;</span>=<span>1D49C</span></span>
+ <span><span class="testfont">&#x212C;</span>=<span>0212C</span></span>
+ <span><span class="testfont">&#x1D49E;</span>=<span>1D49E</span></span>
+ <span><span class="testfont">&#x1D49F;</span>=<span>1D49F</span></span>
+ <span><span class="testfont">&#x2130;</span>=<span>02130</span></span>
+ <span><span class="testfont">&#x2131;</span>=<span>02131</span></span>
+ <span><span class="testfont">&#x1D4A2;</span>=<span>1D4A2</span></span>
+ <span><span class="testfont">&#x210B;</span>=<span>0210B</span></span>
+ <span><span class="testfont">&#x2110;</span>=<span>02110</span></span>
+ <span><span class="testfont">&#x1D4A5;</span>=<span>1D4A5</span></span><br/>
+ <span><span class="testfont">&#x1D4A6;</span>=<span>1D4A6</span></span>
+ <span><span class="testfont">&#x2112;</span>=<span>02112</span></span>
+ <span><span class="testfont">&#x2133;</span>=<span>02133</span></span>
+ <span><span class="testfont">&#x1D4A9;</span>=<span>1D4A9</span></span>
+ <span><span class="testfont">&#x1D4AA;</span>=<span>1D4AA</span></span>
+ <span><span class="testfont">&#x1D4AB;</span>=<span>1D4AB</span></span>
+ <span><span class="testfont">&#x1D4AC;</span>=<span>1D4AC</span></span>
+ <span><span class="testfont">&#x211B;</span>=<span>0211B</span></span>
+ <span><span class="testfont">&#x1D4AE;</span>=<span>1D4AE</span></span>
+ <span><span class="testfont">&#x1D4AF;</span>=<span>1D4AF</span></span><br/>
+ <span><span class="testfont">&#x1D4B0;</span>=<span>1D4B0</span></span>
+ <span><span class="testfont">&#x1D4B1;</span>=<span>1D4B1</span></span>
+ <span><span class="testfont">&#x1D4B2;</span>=<span>1D4B2</span></span>
+ <span><span class="testfont">&#x1D4B3;</span>=<span>1D4B3</span></span>
+ <span><span class="testfont">&#x1D4B4;</span>=<span>1D4B4</span></span>
+ <span><span class="testfont">&#x1D4B5;</span>=<span>1D4B5</span></span>
+ <span><span class="testfont">&#x1D4B6;</span>=<span>1D4B6</span></span>
+ <span><span class="testfont">&#x1D4B7;</span>=<span>1D4B7</span></span>
+ <span><span class="testfont">&#x1D4B8;</span>=<span>1D4B8</span></span>
+ <span><span class="testfont">&#x1D4B9;</span>=<span>1D4B9</span></span><br/>
+ <span><span class="testfont">&#x212F;</span>=<span>0212F</span></span>
+ <span><span class="testfont">&#x1D4BB;</span>=<span>1D4BB</span></span>
+ <span><span class="testfont">&#x210A;</span>=<span>0210A</span></span>
+ <span><span class="testfont">&#x1D4BD;</span>=<span>1D4BD</span></span>
+ <span><span class="testfont">&#x1D4BE;</span>=<span>1D4BE</span></span>
+ <span><span class="testfont">&#x1D4BF;</span>=<span>1D4BF</span></span>
+ <span><span class="testfont">&#x1D4C0;</span>=<span>1D4C0</span></span>
+ <span><span class="testfont">&#x1D4C1;</span>=<span>1D4C1</span></span>
+ <span><span class="testfont">&#x1D4C2;</span>=<span>1D4C2</span></span>
+ <span><span class="testfont">&#x1D4C3;</span>=<span>1D4C3</span></span><br/>
+ <span><span class="testfont">&#x2134;</span>=<span>02134</span></span>
+ <span><span class="testfont">&#x1D4C5;</span>=<span>1D4C5</span></span>
+ <span><span class="testfont">&#x1D4C6;</span>=<span>1D4C6</span></span>
+ <span><span class="testfont">&#x1D4C7;</span>=<span>1D4C7</span></span>
+ <span><span class="testfont">&#x1D4C8;</span>=<span>1D4C8</span></span>
+ <span><span class="testfont">&#x1D4C9;</span>=<span>1D4C9</span></span>
+ <span><span class="testfont">&#x1D4CA;</span>=<span>1D4CA</span></span>
+ <span><span class="testfont">&#x1D4CB;</span>=<span>1D4CB</span></span>
+ <span><span class="testfont">&#x1D4CC;</span>=<span>1D4CC</span></span>
+ <span><span class="testfont">&#x1D4CD;</span>=<span>1D4CD</span></span><br/>
+ <span><span class="testfont">&#x1D4CE;</span>=<span>1D4CE</span></span>
+ <span><span class="testfont">&#x1D4CF;</span>=<span>1D4CF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html
new file mode 100644
index 0000000000..bd17ecca70
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-script-001.tentative.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-script</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#script-mappings">
+<link rel="match" href="text-transform-math-script-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-script' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-script">&#x41;</span>=<span>1D49C</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x42;</span>=<span>0212C</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x43;</span>=<span>1D49E</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x44;</span>=<span>1D49F</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x45;</span>=<span>02130</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x46;</span>=<span>02131</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x47;</span>=<span>1D4A2</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x48;</span>=<span>0210B</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x49;</span>=<span>02110</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x4A;</span>=<span>1D4A5</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-script">&#x4B;</span>=<span>1D4A6</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x4C;</span>=<span>02112</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x4D;</span>=<span>02133</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x4E;</span>=<span>1D4A9</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x4F;</span>=<span>1D4AA</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x50;</span>=<span>1D4AB</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x51;</span>=<span>1D4AC</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x52;</span>=<span>0211B</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x53;</span>=<span>1D4AE</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x54;</span>=<span>1D4AF</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-script">&#x55;</span>=<span>1D4B0</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x56;</span>=<span>1D4B1</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x57;</span>=<span>1D4B2</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x58;</span>=<span>1D4B3</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x59;</span>=<span>1D4B4</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x5A;</span>=<span>1D4B5</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x61;</span>=<span>1D4B6</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x62;</span>=<span>1D4B7</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x63;</span>=<span>1D4B8</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x64;</span>=<span>1D4B9</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-script">&#x65;</span>=<span>0212F</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x66;</span>=<span>1D4BB</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x67;</span>=<span>0210A</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x68;</span>=<span>1D4BD</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x69;</span>=<span>1D4BE</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x6A;</span>=<span>1D4BF</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x6B;</span>=<span>1D4C0</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x6C;</span>=<span>1D4C1</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x6D;</span>=<span>1D4C2</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x6E;</span>=<span>1D4C3</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-script">&#x6F;</span>=<span>02134</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x70;</span>=<span>1D4C5</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x71;</span>=<span>1D4C6</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x72;</span>=<span>1D4C7</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x73;</span>=<span>1D4C8</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x74;</span>=<span>1D4C9</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x75;</span>=<span>1D4CA</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x76;</span>=<span>1D4CB</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x77;</span>=<span>1D4CC</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x78;</span>=<span>1D4CD</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-script">&#x79;</span>=<span>1D4CE</span></span>
+ <span><span class="testfont" style="text-transform: math-script">&#x7A;</span>=<span>1D4CF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html
new file mode 100644
index 0000000000..e4fa35e810
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative-ref.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-stretched (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1EE7E;</span>=<span>1EE7E</span></span>
+ <span><span class="testfont">&#x1EE61;</span>=<span>1EE61</span></span>
+ <span><span class="testfont">&#x1EE75;</span>=<span>1EE75</span></span>
+ <span><span class="testfont">&#x1EE76;</span>=<span>1EE76</span></span>
+ <span><span class="testfont">&#x1EE62;</span>=<span>1EE62</span></span>
+ <span><span class="testfont">&#x1EE67;</span>=<span>1EE67</span></span>
+ <span><span class="testfont">&#x1EE77;</span>=<span>1EE77</span></span>
+ <span><span class="testfont">&#x1EE6E;</span>=<span>1EE6E</span></span>
+ <span><span class="testfont">&#x1EE74;</span>=<span>1EE74</span></span>
+ <span><span class="testfont">&#x1EE71;</span>=<span>1EE71</span></span><br/>
+ <span><span class="testfont">&#x1EE79;</span>=<span>1EE79</span></span>
+ <span><span class="testfont">&#x1EE68;</span>=<span>1EE68</span></span>
+ <span><span class="testfont">&#x1EE7A;</span>=<span>1EE7A</span></span>
+ <span><span class="testfont">&#x1EE6F;</span>=<span>1EE6F</span></span>
+ <span><span class="testfont">&#x1EE7B;</span>=<span>1EE7B</span></span>
+ <span><span class="testfont">&#x1EE70;</span>=<span>1EE70</span></span>
+ <span><span class="testfont">&#x1EE72;</span>=<span>1EE72</span></span>
+ <span><span class="testfont">&#x1EE6A;</span>=<span>1EE6A</span></span>
+ <span><span class="testfont">&#x1EE6C;</span>=<span>1EE6C</span></span>
+ <span><span class="testfont">&#x1EE6D;</span>=<span>1EE6D</span></span><br/>
+ <span><span class="testfont">&#x1EE64;</span>=<span>1EE64</span></span>
+ <span><span class="testfont">&#x1EE69;</span>=<span>1EE69</span></span>
+ <span><span class="testfont">&#x1EE7C;</span>=<span>1EE7C</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html
new file mode 100644
index 0000000000..87dd88e9d0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-stretched-001.tentative.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-stretched</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#stretched-mappings">
+<link rel="match" href="text-transform-math-stretched-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-stretched' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x6A1;</span>=<span>1EE7E</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x628;</span>=<span>1EE61</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x62A;</span>=<span>1EE75</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x62B;</span>=<span>1EE76</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x62C;</span>=<span>1EE62</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x62D;</span>=<span>1EE67</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x62E;</span>=<span>1EE77</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x633;</span>=<span>1EE6E</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x634;</span>=<span>1EE74</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x635;</span>=<span>1EE71</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x636;</span>=<span>1EE79</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x637;</span>=<span>1EE68</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x638;</span>=<span>1EE7A</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x639;</span>=<span>1EE6F</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x63A;</span>=<span>1EE7B</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x641;</span>=<span>1EE70</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x642;</span>=<span>1EE72</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x643;</span>=<span>1EE6A</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x645;</span>=<span>1EE6C</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x646;</span>=<span>1EE6D</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x647;</span>=<span>1EE64</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x64A;</span>=<span>1EE69</span></span>
+ <span><span class="testfont" style="text-transform: math-stretched">&#x66E;</span>=<span>1EE7C</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html
new file mode 100644
index 0000000000..7a1c9b0056
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative-ref.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-tailed (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont">&#x1EE52;</span>=<span>1EE52</span></span>
+ <span><span class="testfont">&#x1EE4B;</span>=<span>1EE4B</span></span>
+ <span><span class="testfont">&#x1EE4D;</span>=<span>1EE4D</span></span>
+ <span><span class="testfont">&#x1EE49;</span>=<span>1EE49</span></span>
+ <span><span class="testfont">&#x1EE42;</span>=<span>1EE42</span></span>
+ <span><span class="testfont">&#x1EE47;</span>=<span>1EE47</span></span>
+ <span><span class="testfont">&#x1EE57;</span>=<span>1EE57</span></span>
+ <span><span class="testfont">&#x1EE5F;</span>=<span>1EE5F</span></span>
+ <span><span class="testfont">&#x1EE4E;</span>=<span>1EE4E</span></span>
+ <span><span class="testfont">&#x1EE54;</span>=<span>1EE54</span></span><br/>
+ <span><span class="testfont">&#x1EE51;</span>=<span>1EE51</span></span>
+ <span><span class="testfont">&#x1EE59;</span>=<span>1EE59</span></span>
+ <span><span class="testfont">&#x1EE4F;</span>=<span>1EE4F</span></span>
+ <span><span class="testfont">&#x1EE5B;</span>=<span>1EE5B</span></span>
+ <span><span class="testfont">&#x1EE5D;</span>=<span>1EE5D</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html
new file mode 100644
index 0000000000..f08c4657f1
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/math/text-transform-math-tailed-001.tentative.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>text-transform math-tailed</title>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3745"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#tailed-mappings">
+<link rel="match" href="text-transform-math-tailed-001.tentative-ref.html"/>
+<meta name="assert" content="Verify that a character with 'text-transform: math-tailed' renders the same as the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x642;</span>=<span>1EE52</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x644;</span>=<span>1EE4B</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x646;</span>=<span>1EE4D</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x64A;</span>=<span>1EE49</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x62C;</span>=<span>1EE42</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x62D;</span>=<span>1EE47</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x62E;</span>=<span>1EE57</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x66F;</span>=<span>1EE5F</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x633;</span>=<span>1EE4E</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x634;</span>=<span>1EE54</span></span><br/>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x635;</span>=<span>1EE51</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x636;</span>=<span>1EE59</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x639;</span>=<span>1EE4F</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x63A;</span>=<span>1EE5B</span></span>
+ <span><span class="testfont" style="text-transform: math-tailed">&#x6BA;</span>=<span>1EE5D</span></span>
+</body>
+</html>
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-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-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/text-transform-capitalize-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-001.html
new file mode 100644
index 0000000000..1f41ca4beb
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-001.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Basic and Latin-1</title>
+<meta name="assert" content="For the Latin Basic and Latin-1 blocks, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-001-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x00B5;&#x00B5;&#x00B5; &#x039C;&#x00B5;&#x00B5;</span> <span title="U+00E0">&#x00E0;&#x00E0;&#x00E0; &#x00C0;&#x00E0;&#x00E0;</span> <span title="U+00E1">&#x00E1;&#x00E1;&#x00E1; &#x00C1;&#x00E1;&#x00E1;</span> <span title="U+00E2">&#x00E2;&#x00E2;&#x00E2; &#x00C2;&#x00E2;&#x00E2;</span> <span title="U+00E3">&#x00E3;&#x00E3;&#x00E3; &#x00C3;&#x00E3;&#x00E3;</span> <span title="U+00E4">&#x00E4;&#x00E4;&#x00E4; &#x00C4;&#x00E4;&#x00E4;</span> <span title="U+00E5">&#x00E5;&#x00E5;&#x00E5; &#x00C5;&#x00E5;&#x00E5;</span> <span title="U+00E6">&#x00E6;&#x00E6;&#x00E6; &#x00C6;&#x00E6;&#x00E6;</span> <span title="U+00E7">&#x00E7;&#x00E7;&#x00E7; &#x00C7;&#x00E7;&#x00E7;</span> <span title="U+00E8">&#x00E8;&#x00E8;&#x00E8; &#x00C8;&#x00E8;&#x00E8;</span> <span title="U+00E9">&#x00E9;&#x00E9;&#x00E9; &#x00C9;&#x00E9;&#x00E9;</span> <span title="U+00EA">&#x00EA;&#x00EA;&#x00EA; &#x00CA;&#x00EA;&#x00EA;</span> <span title="U+00EB">&#x00EB;&#x00EB;&#x00EB; &#x00CB;&#x00EB;&#x00EB;</span> <span title="U+00EC">&#x00EC;&#x00EC;&#x00EC; &#x00CC;&#x00EC;&#x00EC;</span> <span title="U+00ED">&#x00ED;&#x00ED;&#x00ED; &#x00CD;&#x00ED;&#x00ED;</span> <span title="U+00EE">&#x00EE;&#x00EE;&#x00EE; &#x00CE;&#x00EE;&#x00EE;</span> <span title="U+00EF">&#x00EF;&#x00EF;&#x00EF; &#x00CF;&#x00EF;&#x00EF;</span> <span title="U+00F0">&#x00F0;&#x00F0;&#x00F0; &#x00D0;&#x00F0;&#x00F0;</span> <span title="U+00F1">&#x00F1;&#x00F1;&#x00F1; &#x00D1;&#x00F1;&#x00F1;</span> <span title="U+00F2">&#x00F2;&#x00F2;&#x00F2; &#x00D2;&#x00F2;&#x00F2;</span> <span title="U+00F3">&#x00F3;&#x00F3;&#x00F3; &#x00D3;&#x00F3;&#x00F3;</span> <span title="U+00F4">&#x00F4;&#x00F4;&#x00F4; &#x00D4;&#x00F4;&#x00F4;</span> <span title="U+00F5">&#x00F5;&#x00F5;&#x00F5; &#x00D5;&#x00F5;&#x00F5;</span> <span title="U+00F6">&#x00F6;&#x00F6;&#x00F6; &#x00D6;&#x00F6;&#x00F6;</span> <span title="U+00F8">&#x00F8;&#x00F8;&#x00F8; &#x00D8;&#x00F8;&#x00F8;</span> <span title="U+00F9">&#x00F9;&#x00F9;&#x00F9; &#x00D9;&#x00F9;&#x00F9;</span> <span title="U+00FA">&#x00FA;&#x00FA;&#x00FA; &#x00DA;&#x00FA;&#x00FA;</span> <span title="U+00FB">&#x00FB;&#x00FB;&#x00FB; &#x00DB;&#x00FB;&#x00FB;</span> <span title="U+00FC">&#x00FC;&#x00FC;&#x00FC; &#x00DC;&#x00FC;&#x00FC;</span> <span title="U+00FD">&#x00FD;&#x00FD;&#x00FD; &#x00DD;&#x00FD;&#x00FD;</span> <span title="U+00FE">&#x00FE;&#x00FE;&#x00FE; &#x00DE;&#x00FE;&#x00FE;</span> <span title="U+00FF">&#x00FF;&#x00FF;&#x00FF; &#x0178;&#x00FF;&#x00FF;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-003.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-003.html
new file mode 100644
index 0000000000..2ba726bd13
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-003.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended Additional</title>
+<meta name="assert" content="For the Latin Extended Additional Unicode block, text-transform: text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-003-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x1E01;&#x1E01;&#x1E01; &#x1E00;&#x1E01;&#x1E01;</span> <span title="U+1E03">&#x1E03;&#x1E03;&#x1E03; &#x1E02;&#x1E03;&#x1E03;</span> <span title="U+1E05">&#x1E05;&#x1E05;&#x1E05; &#x1E04;&#x1E05;&#x1E05;</span> <span title="U+1E07">&#x1E07;&#x1E07;&#x1E07; &#x1E06;&#x1E07;&#x1E07;</span> <span title="U+1E09">&#x1E09;&#x1E09;&#x1E09; &#x1E08;&#x1E09;&#x1E09;</span> <span title="U+1E0B">&#x1E0B;&#x1E0B;&#x1E0B; &#x1E0A;&#x1E0B;&#x1E0B;</span> <span title="U+1E0D">&#x1E0D;&#x1E0D;&#x1E0D; &#x1E0C;&#x1E0D;&#x1E0D;</span> <span title="U+1E0F">&#x1E0F;&#x1E0F;&#x1E0F; &#x1E0E;&#x1E0F;&#x1E0F;</span> <span title="U+1E11">&#x1E11;&#x1E11;&#x1E11; &#x1E10;&#x1E11;&#x1E11;</span> <span title="U+1E13">&#x1E13;&#x1E13;&#x1E13; &#x1E12;&#x1E13;&#x1E13;</span> <span title="U+1E15">&#x1E15;&#x1E15;&#x1E15; &#x1E14;&#x1E15;&#x1E15;</span> <span title="U+1E17">&#x1E17;&#x1E17;&#x1E17; &#x1E16;&#x1E17;&#x1E17;</span> <span title="U+1E19">&#x1E19;&#x1E19;&#x1E19; &#x1E18;&#x1E19;&#x1E19;</span> <span title="U+1E1B">&#x1E1B;&#x1E1B;&#x1E1B; &#x1E1A;&#x1E1B;&#x1E1B;</span> <span title="U+1E1D">&#x1E1D;&#x1E1D;&#x1E1D; &#x1E1C;&#x1E1D;&#x1E1D;</span> <span title="U+1E1F">&#x1E1F;&#x1E1F;&#x1E1F; &#x1E1E;&#x1E1F;&#x1E1F;</span> <span title="U+1E21">&#x1E21;&#x1E21;&#x1E21; &#x1E20;&#x1E21;&#x1E21;</span> <span title="U+1E23">&#x1E23;&#x1E23;&#x1E23; &#x1E22;&#x1E23;&#x1E23;</span> <span title="U+1E25">&#x1E25;&#x1E25;&#x1E25; &#x1E24;&#x1E25;&#x1E25;</span> <span title="U+1E27">&#x1E27;&#x1E27;&#x1E27; &#x1E26;&#x1E27;&#x1E27;</span> <span title="U+1E29">&#x1E29;&#x1E29;&#x1E29; &#x1E28;&#x1E29;&#x1E29;</span> <span title="U+1E2B">&#x1E2B;&#x1E2B;&#x1E2B; &#x1E2A;&#x1E2B;&#x1E2B;</span> <span title="U+1E2D">&#x1E2D;&#x1E2D;&#x1E2D; &#x1E2C;&#x1E2D;&#x1E2D;</span> <span title="U+1E2F">&#x1E2F;&#x1E2F;&#x1E2F; &#x1E2E;&#x1E2F;&#x1E2F;</span> <span title="U+1E31">&#x1E31;&#x1E31;&#x1E31; &#x1E30;&#x1E31;&#x1E31;</span> <span title="U+1E33">&#x1E33;&#x1E33;&#x1E33; &#x1E32;&#x1E33;&#x1E33;</span> <span title="U+1E35">&#x1E35;&#x1E35;&#x1E35; &#x1E34;&#x1E35;&#x1E35;</span> <span title="U+1E37">&#x1E37;&#x1E37;&#x1E37; &#x1E36;&#x1E37;&#x1E37;</span> <span title="U+1E39">&#x1E39;&#x1E39;&#x1E39; &#x1E38;&#x1E39;&#x1E39;</span> <span title="U+1E3B">&#x1E3B;&#x1E3B;&#x1E3B; &#x1E3A;&#x1E3B;&#x1E3B;</span> <span title="U+1E3D">&#x1E3D;&#x1E3D;&#x1E3D; &#x1E3C;&#x1E3D;&#x1E3D;</span> <span title="U+1E3F">&#x1E3F;&#x1E3F;&#x1E3F; &#x1E3E;&#x1E3F;&#x1E3F;</span> <span title="U+1E41">&#x1E41;&#x1E41;&#x1E41; &#x1E40;&#x1E41;&#x1E41;</span> <span title="U+1E43">&#x1E43;&#x1E43;&#x1E43; &#x1E42;&#x1E43;&#x1E43;</span> <span title="U+1E45">&#x1E45;&#x1E45;&#x1E45; &#x1E44;&#x1E45;&#x1E45;</span> <span title="U+1E47">&#x1E47;&#x1E47;&#x1E47; &#x1E46;&#x1E47;&#x1E47;</span> <span title="U+1E49">&#x1E49;&#x1E49;&#x1E49; &#x1E48;&#x1E49;&#x1E49;</span> <span title="U+1E4B">&#x1E4B;&#x1E4B;&#x1E4B; &#x1E4A;&#x1E4B;&#x1E4B;</span> <span title="U+1E4D">&#x1E4D;&#x1E4D;&#x1E4D; &#x1E4C;&#x1E4D;&#x1E4D;</span> <span title="U+1E4F">&#x1E4F;&#x1E4F;&#x1E4F; &#x1E4E;&#x1E4F;&#x1E4F;</span> <span title="U+1E51">&#x1E51;&#x1E51;&#x1E51; &#x1E50;&#x1E51;&#x1E51;</span> <span title="U+1E53">&#x1E53;&#x1E53;&#x1E53; &#x1E52;&#x1E53;&#x1E53;</span> <span title="U+1E55">&#x1E55;&#x1E55;&#x1E55; &#x1E54;&#x1E55;&#x1E55;</span> <span title="U+1E57">&#x1E57;&#x1E57;&#x1E57; &#x1E56;&#x1E57;&#x1E57;</span> <span title="U+1E59">&#x1E59;&#x1E59;&#x1E59; &#x1E58;&#x1E59;&#x1E59;</span> <span title="U+1E5B">&#x1E5B;&#x1E5B;&#x1E5B; &#x1E5A;&#x1E5B;&#x1E5B;</span> <span title="U+1E5D">&#x1E5D;&#x1E5D;&#x1E5D; &#x1E5C;&#x1E5D;&#x1E5D;</span> <span title="U+1E5F">&#x1E5F;&#x1E5F;&#x1E5F; &#x1E5E;&#x1E5F;&#x1E5F;</span> <span title="U+1E61">&#x1E61;&#x1E61;&#x1E61; &#x1E60;&#x1E61;&#x1E61;</span> <span title="U+1E63">&#x1E63;&#x1E63;&#x1E63; &#x1E62;&#x1E63;&#x1E63;</span> <span title="U+1E65">&#x1E65;&#x1E65;&#x1E65; &#x1E64;&#x1E65;&#x1E65;</span> <span title="U+1E67">&#x1E67;&#x1E67;&#x1E67; &#x1E66;&#x1E67;&#x1E67;</span> <span title="U+1E69">&#x1E69;&#x1E69;&#x1E69; &#x1E68;&#x1E69;&#x1E69;</span> <span title="U+1E6B">&#x1E6B;&#x1E6B;&#x1E6B; &#x1E6A;&#x1E6B;&#x1E6B;</span> <span title="U+1E6D">&#x1E6D;&#x1E6D;&#x1E6D; &#x1E6C;&#x1E6D;&#x1E6D;</span> <span title="U+1E6F">&#x1E6F;&#x1E6F;&#x1E6F; &#x1E6E;&#x1E6F;&#x1E6F;</span> <span title="U+1E71">&#x1E71;&#x1E71;&#x1E71; &#x1E70;&#x1E71;&#x1E71;</span> <span title="U+1E73">&#x1E73;&#x1E73;&#x1E73; &#x1E72;&#x1E73;&#x1E73;</span> <span title="U+1E75">&#x1E75;&#x1E75;&#x1E75; &#x1E74;&#x1E75;&#x1E75;</span> <span title="U+1E77">&#x1E77;&#x1E77;&#x1E77; &#x1E76;&#x1E77;&#x1E77;</span> <span title="U+1E79">&#x1E79;&#x1E79;&#x1E79; &#x1E78;&#x1E79;&#x1E79;</span> <span title="U+1E7B">&#x1E7B;&#x1E7B;&#x1E7B; &#x1E7A;&#x1E7B;&#x1E7B;</span> <span title="U+1E7D">&#x1E7D;&#x1E7D;&#x1E7D; &#x1E7C;&#x1E7D;&#x1E7D;</span> <span title="U+1E7F">&#x1E7F;&#x1E7F;&#x1E7F; &#x1E7E;&#x1E7F;&#x1E7F;</span> <span title="U+1E81">&#x1E81;&#x1E81;&#x1E81; &#x1E80;&#x1E81;&#x1E81;</span> <span title="U+1E83">&#x1E83;&#x1E83;&#x1E83; &#x1E82;&#x1E83;&#x1E83;</span> <span title="U+1E85">&#x1E85;&#x1E85;&#x1E85; &#x1E84;&#x1E85;&#x1E85;</span> <span title="U+1E87">&#x1E87;&#x1E87;&#x1E87; &#x1E86;&#x1E87;&#x1E87;</span> <span title="U+1E89">&#x1E89;&#x1E89;&#x1E89; &#x1E88;&#x1E89;&#x1E89;</span> <span title="U+1E8B">&#x1E8B;&#x1E8B;&#x1E8B; &#x1E8A;&#x1E8B;&#x1E8B;</span> <span title="U+1E8D">&#x1E8D;&#x1E8D;&#x1E8D; &#x1E8C;&#x1E8D;&#x1E8D;</span> <span title="U+1E8F">&#x1E8F;&#x1E8F;&#x1E8F; &#x1E8E;&#x1E8F;&#x1E8F;</span> <span title="U+1E91">&#x1E91;&#x1E91;&#x1E91; &#x1E90;&#x1E91;&#x1E91;</span> <span title="U+1E93">&#x1E93;&#x1E93;&#x1E93; &#x1E92;&#x1E93;&#x1E93;</span> <span title="U+1E95">&#x1E95;&#x1E95;&#x1E95; &#x1E94;&#x1E95;&#x1E95;</span> <span title="U+1E9B">&#x1E9B;&#x1E9B;&#x1E9B; &#x1E60;&#x1E9B;&#x1E9B;</span> <span title="U+1EA1">&#x1EA1;&#x1EA1;&#x1EA1; &#x1EA0;&#x1EA1;&#x1EA1;</span> <span title="U+1EA3">&#x1EA3;&#x1EA3;&#x1EA3; &#x1EA2;&#x1EA3;&#x1EA3;</span> <span title="U+1EA5">&#x1EA5;&#x1EA5;&#x1EA5; &#x1EA4;&#x1EA5;&#x1EA5;</span> <span title="U+1EA7">&#x1EA7;&#x1EA7;&#x1EA7; &#x1EA6;&#x1EA7;&#x1EA7;</span> <span title="U+1EA9">&#x1EA9;&#x1EA9;&#x1EA9; &#x1EA8;&#x1EA9;&#x1EA9;</span> <span title="U+1EAB">&#x1EAB;&#x1EAB;&#x1EAB; &#x1EAA;&#x1EAB;&#x1EAB;</span> <span title="U+1EAD">&#x1EAD;&#x1EAD;&#x1EAD; &#x1EAC;&#x1EAD;&#x1EAD;</span> <span title="U+1EAF">&#x1EAF;&#x1EAF;&#x1EAF; &#x1EAE;&#x1EAF;&#x1EAF;</span> <span title="U+1EB1">&#x1EB1;&#x1EB1;&#x1EB1; &#x1EB0;&#x1EB1;&#x1EB1;</span> <span title="U+1EB3">&#x1EB3;&#x1EB3;&#x1EB3; &#x1EB2;&#x1EB3;&#x1EB3;</span> <span title="U+1EB5">&#x1EB5;&#x1EB5;&#x1EB5; &#x1EB4;&#x1EB5;&#x1EB5;</span> <span title="U+1EB7">&#x1EB7;&#x1EB7;&#x1EB7; &#x1EB6;&#x1EB7;&#x1EB7;</span> <span title="U+1EB9">&#x1EB9;&#x1EB9;&#x1EB9; &#x1EB8;&#x1EB9;&#x1EB9;</span> <span title="U+1EBB">&#x1EBB;&#x1EBB;&#x1EBB; &#x1EBA;&#x1EBB;&#x1EBB;</span> <span title="U+1EBD">&#x1EBD;&#x1EBD;&#x1EBD; &#x1EBC;&#x1EBD;&#x1EBD;</span> <span title="U+1EBF">&#x1EBF;&#x1EBF;&#x1EBF; &#x1EBE;&#x1EBF;&#x1EBF;</span> <span title="U+1EC1">&#x1EC1;&#x1EC1;&#x1EC1; &#x1EC0;&#x1EC1;&#x1EC1;</span> <span title="U+1EC3">&#x1EC3;&#x1EC3;&#x1EC3; &#x1EC2;&#x1EC3;&#x1EC3;</span> <span title="U+1EC5">&#x1EC5;&#x1EC5;&#x1EC5; &#x1EC4;&#x1EC5;&#x1EC5;</span> <span title="U+1EC7">&#x1EC7;&#x1EC7;&#x1EC7; &#x1EC6;&#x1EC7;&#x1EC7;</span> <span title="U+1EC9">&#x1EC9;&#x1EC9;&#x1EC9; &#x1EC8;&#x1EC9;&#x1EC9;</span> <span title="U+1ECB">&#x1ECB;&#x1ECB;&#x1ECB; &#x1ECA;&#x1ECB;&#x1ECB;</span> <span title="U+1ECD">&#x1ECD;&#x1ECD;&#x1ECD; &#x1ECC;&#x1ECD;&#x1ECD;</span> <span title="U+1ECF">&#x1ECF;&#x1ECF;&#x1ECF; &#x1ECE;&#x1ECF;&#x1ECF;</span> <span title="U+1ED1">&#x1ED1;&#x1ED1;&#x1ED1; &#x1ED0;&#x1ED1;&#x1ED1;</span> <span title="U+1ED3">&#x1ED3;&#x1ED3;&#x1ED3; &#x1ED2;&#x1ED3;&#x1ED3;</span> <span title="U+1ED5">&#x1ED5;&#x1ED5;&#x1ED5; &#x1ED4;&#x1ED5;&#x1ED5;</span> <span title="U+1ED7">&#x1ED7;&#x1ED7;&#x1ED7; &#x1ED6;&#x1ED7;&#x1ED7;</span> <span title="U+1ED9">&#x1ED9;&#x1ED9;&#x1ED9; &#x1ED8;&#x1ED9;&#x1ED9;</span> <span title="U+1EDB">&#x1EDB;&#x1EDB;&#x1EDB; &#x1EDA;&#x1EDB;&#x1EDB;</span> <span title="U+1EDD">&#x1EDD;&#x1EDD;&#x1EDD; &#x1EDC;&#x1EDD;&#x1EDD;</span> <span title="U+1EDF">&#x1EDF;&#x1EDF;&#x1EDF; &#x1EDE;&#x1EDF;&#x1EDF;</span> <span title="U+1EE1">&#x1EE1;&#x1EE1;&#x1EE1; &#x1EE0;&#x1EE1;&#x1EE1;</span> <span title="U+1EE3">&#x1EE3;&#x1EE3;&#x1EE3; &#x1EE2;&#x1EE3;&#x1EE3;</span> <span title="U+1EE5">&#x1EE5;&#x1EE5;&#x1EE5; &#x1EE4;&#x1EE5;&#x1EE5;</span> <span title="U+1EE7">&#x1EE7;&#x1EE7;&#x1EE7; &#x1EE6;&#x1EE7;&#x1EE7;</span> <span title="U+1EE9">&#x1EE9;&#x1EE9;&#x1EE9; &#x1EE8;&#x1EE9;&#x1EE9;</span> <span title="U+1EEB">&#x1EEB;&#x1EEB;&#x1EEB; &#x1EEA;&#x1EEB;&#x1EEB;</span> <span title="U+1EED">&#x1EED;&#x1EED;&#x1EED; &#x1EEC;&#x1EED;&#x1EED;</span> <span title="U+1EEF">&#x1EEF;&#x1EEF;&#x1EEF; &#x1EEE;&#x1EEF;&#x1EEF;</span> <span title="U+1EF1">&#x1EF1;&#x1EF1;&#x1EF1; &#x1EF0;&#x1EF1;&#x1EF1;</span> <span title="U+1EF3">&#x1EF3;&#x1EF3;&#x1EF3; &#x1EF2;&#x1EF3;&#x1EF3;</span> <span title="U+1EF5">&#x1EF5;&#x1EF5;&#x1EF5; &#x1EF4;&#x1EF5;&#x1EF5;</span> <span title="U+1EF7">&#x1EF7;&#x1EF7;&#x1EF7; &#x1EF6;&#x1EF7;&#x1EF7;</span> <span title="U+1EF9">&#x1EF9;&#x1EF9;&#x1EF9; &#x1EF8;&#x1EF9;&#x1EF9;</span> <span title="U+1EFB">&#x1EFB;&#x1EFB;&#x1EFB; &#x1EFA;&#x1EFB;&#x1EFB;</span> <span title="U+1EFD">&#x1EFD;&#x1EFD;&#x1EFD; &#x1EFC;&#x1EFD;&#x1EFD;</span> <span title="U+1EFF">&#x1EFF;&#x1EFF;&#x1EFF; &#x1EFE;&#x1EFF;&#x1EFF;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-005.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-005.html
new file mode 100644
index 0000000000..4279ca6ce8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-005.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-A</title>
+<meta name="assert" content="For the Latin Extended-A Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-005-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0101;&#x0101;&#x0101; &#x0100;&#x0101;&#x0101;</span> <span title="U+0103">&#x0103;&#x0103;&#x0103; &#x0102;&#x0103;&#x0103;</span> <span title="U+0105">&#x0105;&#x0105;&#x0105; &#x0104;&#x0105;&#x0105;</span> <span title="U+0107">&#x0107;&#x0107;&#x0107; &#x0106;&#x0107;&#x0107;</span> <span title="U+0109">&#x0109;&#x0109;&#x0109; &#x0108;&#x0109;&#x0109;</span> <span title="U+010B">&#x010B;&#x010B;&#x010B; &#x010A;&#x010B;&#x010B;</span> <span title="U+010D">&#x010D;&#x010D;&#x010D; &#x010C;&#x010D;&#x010D;</span> <span title="U+010F">&#x010F;&#x010F;&#x010F; &#x010E;&#x010F;&#x010F;</span> <span title="U+0111">&#x0111;&#x0111;&#x0111; &#x0110;&#x0111;&#x0111;</span> <span title="U+0113">&#x0113;&#x0113;&#x0113; &#x0112;&#x0113;&#x0113;</span> <span title="U+0115">&#x0115;&#x0115;&#x0115; &#x0114;&#x0115;&#x0115;</span> <span title="U+0117">&#x0117;&#x0117;&#x0117; &#x0116;&#x0117;&#x0117;</span> <span title="U+0119">&#x0119;&#x0119;&#x0119; &#x0118;&#x0119;&#x0119;</span> <span title="U+011B">&#x011B;&#x011B;&#x011B; &#x011A;&#x011B;&#x011B;</span> <span title="U+011D">&#x011D;&#x011D;&#x011D; &#x011C;&#x011D;&#x011D;</span> <span title="U+011F">&#x011F;&#x011F;&#x011F; &#x011E;&#x011F;&#x011F;</span> <span title="U+0121">&#x0121;&#x0121;&#x0121; &#x0120;&#x0121;&#x0121;</span> <span title="U+0123">&#x0123;&#x0123;&#x0123; &#x0122;&#x0123;&#x0123;</span> <span title="U+0125">&#x0125;&#x0125;&#x0125; &#x0124;&#x0125;&#x0125;</span> <span title="U+0127">&#x0127;&#x0127;&#x0127; &#x0126;&#x0127;&#x0127;</span> <span title="U+0129">&#x0129;&#x0129;&#x0129; &#x0128;&#x0129;&#x0129;</span> <span title="U+012B">&#x012B;&#x012B;&#x012B; &#x012A;&#x012B;&#x012B;</span> <span title="U+012D">&#x012D;&#x012D;&#x012D; &#x012C;&#x012D;&#x012D;</span> <span title="U+012F">&#x012F;&#x012F;&#x012F; &#x012E;&#x012F;&#x012F;</span> <span title="U+0131">&#x0131;&#x0131;&#x0131; &#x0049;&#x0131;&#x0131;</span> <span title="U+0133">&#x0133;&#x0133;&#x0133; &#x0132;&#x0133;&#x0133;</span> <span title="U+0135">&#x0135;&#x0135;&#x0135; &#x0134;&#x0135;&#x0135;</span> <span title="U+0137">&#x0137;&#x0137;&#x0137; &#x0136;&#x0137;&#x0137;</span> <span title="U+013A">&#x013A;&#x013A;&#x013A; &#x0139;&#x013A;&#x013A;</span> <span title="U+013C">&#x013C;&#x013C;&#x013C; &#x013B;&#x013C;&#x013C;</span> <span title="U+013E">&#x013E;&#x013E;&#x013E; &#x013D;&#x013E;&#x013E;</span> <span title="U+0140">&#x0140;&#x0140;&#x0140; &#x013F;&#x0140;&#x0140;</span> <span title="U+0142">&#x0142;&#x0142;&#x0142; &#x0141;&#x0142;&#x0142;</span> <span title="U+0144">&#x0144;&#x0144;&#x0144; &#x0143;&#x0144;&#x0144;</span> <span title="U+0146">&#x0146;&#x0146;&#x0146; &#x0145;&#x0146;&#x0146;</span> <span title="U+0148">&#x0148;&#x0148;&#x0148; &#x0147;&#x0148;&#x0148;</span> <span title="U+014B">&#x014B;&#x014B;&#x014B; &#x014A;&#x014B;&#x014B;</span> <span title="U+014D">&#x014D;&#x014D;&#x014D; &#x014C;&#x014D;&#x014D;</span> <span title="U+014F">&#x014F;&#x014F;&#x014F; &#x014E;&#x014F;&#x014F;</span> <span title="U+0151">&#x0151;&#x0151;&#x0151; &#x0150;&#x0151;&#x0151;</span> <span title="U+0153">&#x0153;&#x0153;&#x0153; &#x0152;&#x0153;&#x0153;</span> <span title="U+0155">&#x0155;&#x0155;&#x0155; &#x0154;&#x0155;&#x0155;</span> <span title="U+0157">&#x0157;&#x0157;&#x0157; &#x0156;&#x0157;&#x0157;</span> <span title="U+0159">&#x0159;&#x0159;&#x0159; &#x0158;&#x0159;&#x0159;</span> <span title="U+015B">&#x015B;&#x015B;&#x015B; &#x015A;&#x015B;&#x015B;</span> <span title="U+015D">&#x015D;&#x015D;&#x015D; &#x015C;&#x015D;&#x015D;</span> <span title="U+015F">&#x015F;&#x015F;&#x015F; &#x015E;&#x015F;&#x015F;</span> <span title="U+0161">&#x0161;&#x0161;&#x0161; &#x0160;&#x0161;&#x0161;</span> <span title="U+0163">&#x0163;&#x0163;&#x0163; &#x0162;&#x0163;&#x0163;</span> <span title="U+0165">&#x0165;&#x0165;&#x0165; &#x0164;&#x0165;&#x0165;</span> <span title="U+0167">&#x0167;&#x0167;&#x0167; &#x0166;&#x0167;&#x0167;</span> <span title="U+0169">&#x0169;&#x0169;&#x0169; &#x0168;&#x0169;&#x0169;</span> <span title="U+016B">&#x016B;&#x016B;&#x016B; &#x016A;&#x016B;&#x016B;</span> <span title="U+016D">&#x016D;&#x016D;&#x016D; &#x016C;&#x016D;&#x016D;</span> <span title="U+016F">&#x016F;&#x016F;&#x016F; &#x016E;&#x016F;&#x016F;</span> <span title="U+0171">&#x0171;&#x0171;&#x0171; &#x0170;&#x0171;&#x0171;</span> <span title="U+0173">&#x0173;&#x0173;&#x0173; &#x0172;&#x0173;&#x0173;</span> <span title="U+0175">&#x0175;&#x0175;&#x0175; &#x0174;&#x0175;&#x0175;</span> <span title="U+0177">&#x0177;&#x0177;&#x0177; &#x0176;&#x0177;&#x0177;</span> <span title="U+017A">&#x017A;&#x017A;&#x017A; &#x0179;&#x017A;&#x017A;</span> <span title="U+017C">&#x017C;&#x017C;&#x017C; &#x017B;&#x017C;&#x017C;</span> <span title="U+017E">&#x017E;&#x017E;&#x017E; &#x017D;&#x017E;&#x017E;</span> <span title="U+017F">&#x017F;&#x017F;&#x017F; &#x0053;&#x017F;&#x017F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-007.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-007.html
new file mode 100644
index 0000000000..6d4e5e432f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-007.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-B</title>
+<meta name="assert" content="For the Latin Extended-B Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-007-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0180;&#x0180;&#x0180; &#x0243;&#x0180;&#x0180;</span> <span title="U+0183">&#x0183;&#x0183;&#x0183; &#x0182;&#x0183;&#x0183;</span> <span title="U+0185">&#x0185;&#x0185;&#x0185; &#x0184;&#x0185;&#x0185;</span> <span title="U+0188">&#x0188;&#x0188;&#x0188; &#x0187;&#x0188;&#x0188;</span> <span title="U+018C">&#x018C;&#x018C;&#x018C; &#x018B;&#x018C;&#x018C;</span> <span title="U+0192">&#x0192;&#x0192;&#x0192; &#x0191;&#x0192;&#x0192;</span> <span title="U+0195">&#x0195;&#x0195;&#x0195; &#x01F6;&#x0195;&#x0195;</span> <span title="U+0199">&#x0199;&#x0199;&#x0199; &#x0198;&#x0199;&#x0199;</span> <span title="U+019A">&#x019A;&#x019A;&#x019A; &#x023D;&#x019A;&#x019A;</span> <span title="U+019E">&#x019E;&#x019E;&#x019E; &#x0220;&#x019E;&#x019E;</span> <span title="U+01A1">&#x01A1;&#x01A1;&#x01A1; &#x01A0;&#x01A1;&#x01A1;</span> <span title="U+01A3">&#x01A3;&#x01A3;&#x01A3; &#x01A2;&#x01A3;&#x01A3;</span> <span title="U+01A5">&#x01A5;&#x01A5;&#x01A5; &#x01A4;&#x01A5;&#x01A5;</span> <span title="U+01A8">&#x01A8;&#x01A8;&#x01A8; &#x01A7;&#x01A8;&#x01A8;</span> <span title="U+01AD">&#x01AD;&#x01AD;&#x01AD; &#x01AC;&#x01AD;&#x01AD;</span> <span title="U+01B0">&#x01B0;&#x01B0;&#x01B0; &#x01AF;&#x01B0;&#x01B0;</span> <span title="U+01B4">&#x01B4;&#x01B4;&#x01B4; &#x01B3;&#x01B4;&#x01B4;</span> <span title="U+01B6">&#x01B6;&#x01B6;&#x01B6; &#x01B5;&#x01B6;&#x01B6;</span> <span title="U+01B9">&#x01B9;&#x01B9;&#x01B9; &#x01B8;&#x01B9;&#x01B9;</span> <span title="U+01BD">&#x01BD;&#x01BD;&#x01BD; &#x01BC;&#x01BD;&#x01BD;</span> <span title="U+01BF">&#x01BF;&#x01BF;&#x01BF; &#x01F7;&#x01BF;&#x01BF;</span> <span title="U+01C4">&#x01C4;&#x01C6;&#x01C6; &#x01C5;&#x01C6;&#x01C6;</span> <span title="U+01C6">&#x01C6;&#x01C6;&#x01C6; &#x01C5;&#x01C6;&#x01C6;</span> <span title="U+01C7">&#x01C7;&#x01C9;&#x01C9; &#x01C8;&#x01C9;&#x01C9;</span> <span title="U+01C9">&#x01C9;&#x01C9;&#x01C9; &#x01C8;&#x01C9;&#x01C9;</span> <span title="U+01CA">&#x01CA;&#x01CC;&#x01CC; &#x01CB;&#x01CC;&#x01CC;</span> <span title="U+01CC">&#x01CC;&#x01CC;&#x01CC; &#x01CB;&#x01CC;&#x01CC;</span> <span title="U+01CE">&#x01CE;&#x01CE;&#x01CE; &#x01CD;&#x01CE;&#x01CE;</span> <span title="U+01D0">&#x01D0;&#x01D0;&#x01D0; &#x01CF;&#x01D0;&#x01D0;</span> <span title="U+01D2">&#x01D2;&#x01D2;&#x01D2; &#x01D1;&#x01D2;&#x01D2;</span> <span title="U+01D4">&#x01D4;&#x01D4;&#x01D4; &#x01D3;&#x01D4;&#x01D4;</span> <span title="U+01D6">&#x01D6;&#x01D6;&#x01D6; &#x01D5;&#x01D6;&#x01D6;</span> <span title="U+01D8">&#x01D8;&#x01D8;&#x01D8; &#x01D7;&#x01D8;&#x01D8;</span> <span title="U+01DA">&#x01DA;&#x01DA;&#x01DA; &#x01D9;&#x01DA;&#x01DA;</span> <span title="U+01DC">&#x01DC;&#x01DC;&#x01DC; &#x01DB;&#x01DC;&#x01DC;</span> <span title="U+01DD">&#x01DD;&#x01DD;&#x01DD; &#x018E;&#x01DD;&#x01DD;</span> <span title="U+01DF">&#x01DF;&#x01DF;&#x01DF; &#x01DE;&#x01DF;&#x01DF;</span> <span title="U+01E1">&#x01E1;&#x01E1;&#x01E1; &#x01E0;&#x01E1;&#x01E1;</span> <span title="U+01E3">&#x01E3;&#x01E3;&#x01E3; &#x01E2;&#x01E3;&#x01E3;</span> <span title="U+01E5">&#x01E5;&#x01E5;&#x01E5; &#x01E4;&#x01E5;&#x01E5;</span> <span title="U+01E7">&#x01E7;&#x01E7;&#x01E7; &#x01E6;&#x01E7;&#x01E7;</span> <span title="U+01E9">&#x01E9;&#x01E9;&#x01E9; &#x01E8;&#x01E9;&#x01E9;</span> <span title="U+01EB">&#x01EB;&#x01EB;&#x01EB; &#x01EA;&#x01EB;&#x01EB;</span> <span title="U+01ED">&#x01ED;&#x01ED;&#x01ED; &#x01EC;&#x01ED;&#x01ED;</span> <span title="U+01EF">&#x01EF;&#x01EF;&#x01EF; &#x01EE;&#x01EF;&#x01EF;</span> <span title="U+01F1">&#x01F1;&#x01F3;&#x01F3; &#x01F2;&#x01F3;&#x01F3;</span> <span title="U+01F3">&#x01F3;&#x01F3;&#x01F3; &#x01F2;&#x01F3;&#x01F3;</span> <span title="U+01F5">&#x01F5;&#x01F5;&#x01F5; &#x01F4;&#x01F5;&#x01F5;</span> <span title="U+01F9">&#x01F9;&#x01F9;&#x01F9; &#x01F8;&#x01F9;&#x01F9;</span> <span title="U+01FB">&#x01FB;&#x01FB;&#x01FB; &#x01FA;&#x01FB;&#x01FB;</span> <span title="U+01FD">&#x01FD;&#x01FD;&#x01FD; &#x01FC;&#x01FD;&#x01FD;</span> <span title="U+01FF">&#x01FF;&#x01FF;&#x01FF; &#x01FE;&#x01FF;&#x01FF;</span> <span title="U+0201">&#x0201;&#x0201;&#x0201; &#x0200;&#x0201;&#x0201;</span> <span title="U+0203">&#x0203;&#x0203;&#x0203; &#x0202;&#x0203;&#x0203;</span> <span title="U+0205">&#x0205;&#x0205;&#x0205; &#x0204;&#x0205;&#x0205;</span> <span title="U+0207">&#x0207;&#x0207;&#x0207; &#x0206;&#x0207;&#x0207;</span> <span title="U+0209">&#x0209;&#x0209;&#x0209; &#x0208;&#x0209;&#x0209;</span> <span title="U+020B">&#x020B;&#x020B;&#x020B; &#x020A;&#x020B;&#x020B;</span> <span title="U+020D">&#x020D;&#x020D;&#x020D; &#x020C;&#x020D;&#x020D;</span> <span title="U+020F">&#x020F;&#x020F;&#x020F; &#x020E;&#x020F;&#x020F;</span> <span title="U+0211">&#x0211;&#x0211;&#x0211; &#x0210;&#x0211;&#x0211;</span> <span title="U+0213">&#x0213;&#x0213;&#x0213; &#x0212;&#x0213;&#x0213;</span> <span title="U+0215">&#x0215;&#x0215;&#x0215; &#x0214;&#x0215;&#x0215;</span> <span title="U+0217">&#x0217;&#x0217;&#x0217; &#x0216;&#x0217;&#x0217;</span> <span title="U+0219">&#x0219;&#x0219;&#x0219; &#x0218;&#x0219;&#x0219;</span> <span title="U+021B">&#x021B;&#x021B;&#x021B; &#x021A;&#x021B;&#x021B;</span> <span title="U+021D">&#x021D;&#x021D;&#x021D; &#x021C;&#x021D;&#x021D;</span> <span title="U+021F">&#x021F;&#x021F;&#x021F; &#x021E;&#x021F;&#x021F;</span> <span title="U+0223">&#x0223;&#x0223;&#x0223; &#x0222;&#x0223;&#x0223;</span> <span title="U+0225">&#x0225;&#x0225;&#x0225; &#x0224;&#x0225;&#x0225;</span> <span title="U+0227">&#x0227;&#x0227;&#x0227; &#x0226;&#x0227;&#x0227;</span> <span title="U+0229">&#x0229;&#x0229;&#x0229; &#x0228;&#x0229;&#x0229;</span> <span title="U+022B">&#x022B;&#x022B;&#x022B; &#x022A;&#x022B;&#x022B;</span> <span title="U+022D">&#x022D;&#x022D;&#x022D; &#x022C;&#x022D;&#x022D;</span> <span title="U+022F">&#x022F;&#x022F;&#x022F; &#x022E;&#x022F;&#x022F;</span> <span title="U+0231">&#x0231;&#x0231;&#x0231; &#x0230;&#x0231;&#x0231;</span> <span title="U+0233">&#x0233;&#x0233;&#x0233; &#x0232;&#x0233;&#x0233;</span> <span title="U+023C">&#x023C;&#x023C;&#x023C; &#x023B;&#x023C;&#x023C;</span> <span title="U+023F">&#x023F;&#x023F;&#x023F; &#x2C7E;&#x023F;&#x023F;</span> <span title="U+0240">&#x0240;&#x0240;&#x0240; &#x2C7F;&#x0240;&#x0240;</span> <span title="U+0242">&#x0242;&#x0242;&#x0242; &#x0241;&#x0242;&#x0242;</span> <span title="U+0247">&#x0247;&#x0247;&#x0247; &#x0246;&#x0247;&#x0247;</span> <span title="U+0249">&#x0249;&#x0249;&#x0249; &#x0248;&#x0249;&#x0249;</span> <span title="U+024B">&#x024B;&#x024B;&#x024B; &#x024A;&#x024B;&#x024B;</span> <span title="U+024D">&#x024D;&#x024D;&#x024D; &#x024C;&#x024D;&#x024D;</span> <span title="U+024F">&#x024F;&#x024F;&#x024F; &#x024E;&#x024F;&#x024F;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-009.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-009.html
new file mode 100644
index 0000000000..0e2bdd139f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-009.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-C</title>
+<meta name="assert" content="For the Latin Extended-C Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-009-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x2C61;&#x2C61;&#x2C61; &#x2C60;&#x2C61;&#x2C61;</span> <span title="U+2C65">&#x2C65;&#x2C65;&#x2C65; &#x023A;&#x2C65;&#x2C65;</span> <span title="U+2C66">&#x2C66;&#x2C66;&#x2C66; &#x023E;&#x2C66;&#x2C66;</span> <span title="U+2C68">&#x2C68;&#x2C68;&#x2C68; &#x2C67;&#x2C68;&#x2C68;</span> <span title="U+2C6A">&#x2C6A;&#x2C6A;&#x2C6A; &#x2C69;&#x2C6A;&#x2C6A;</span> <span title="U+2C6C">&#x2C6C;&#x2C6C;&#x2C6C; &#x2C6B;&#x2C6C;&#x2C6C;</span> <span title="U+2C73">&#x2C73;&#x2C73;&#x2C73; &#x2C72;&#x2C73;&#x2C73;</span> <span title="U+2C76">&#x2C76;&#x2C76;&#x2C76; &#x2C75;&#x2C76;&#x2C76;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-010.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-010.html
new file mode 100644
index 0000000000..fd6cb377e2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-010.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Latin Extended-D</title>
+<meta name="assert" content="For the Latin Extended-D Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-010-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#xA723;&#xA723;&#xA723; &#xA722;&#xA723;&#xA723;</span> <span title="U+A725">&#xA725;&#xA725;&#xA725; &#xA724;&#xA725;&#xA725;</span> <span title="U+A727">&#xA727;&#xA727;&#xA727; &#xA726;&#xA727;&#xA727;</span> <span title="U+A729">&#xA729;&#xA729;&#xA729; &#xA728;&#xA729;&#xA729;</span> <span title="U+A72B">&#xA72B;&#xA72B;&#xA72B; &#xA72A;&#xA72B;&#xA72B;</span> <span title="U+A72D">&#xA72D;&#xA72D;&#xA72D; &#xA72C;&#xA72D;&#xA72D;</span> <span title="U+A72F">&#xA72F;&#xA72F;&#xA72F; &#xA72E;&#xA72F;&#xA72F;</span> <span title="U+A733">&#xA733;&#xA733;&#xA733; &#xA732;&#xA733;&#xA733;</span> <span title="U+A735">&#xA735;&#xA735;&#xA735; &#xA734;&#xA735;&#xA735;</span> <span title="U+A737">&#xA737;&#xA737;&#xA737; &#xA736;&#xA737;&#xA737;</span> <span title="U+A739">&#xA739;&#xA739;&#xA739; &#xA738;&#xA739;&#xA739;</span> <span title="U+A73B">&#xA73B;&#xA73B;&#xA73B; &#xA73A;&#xA73B;&#xA73B;</span> <span title="U+A73D">&#xA73D;&#xA73D;&#xA73D; &#xA73C;&#xA73D;&#xA73D;</span> <span title="U+A73F">&#xA73F;&#xA73F;&#xA73F; &#xA73E;&#xA73F;&#xA73F;</span> <span title="U+A741">&#xA741;&#xA741;&#xA741; &#xA740;&#xA741;&#xA741;</span> <span title="U+A743">&#xA743;&#xA743;&#xA743; &#xA742;&#xA743;&#xA743;</span> <span title="U+A745">&#xA745;&#xA745;&#xA745; &#xA744;&#xA745;&#xA745;</span> <span title="U+A747">&#xA747;&#xA747;&#xA747; &#xA746;&#xA747;&#xA747;</span> <span title="U+A749">&#xA749;&#xA749;&#xA749; &#xA748;&#xA749;&#xA749;</span> <span title="U+A74B">&#xA74B;&#xA74B;&#xA74B; &#xA74A;&#xA74B;&#xA74B;</span> <span title="U+A74D">&#xA74D;&#xA74D;&#xA74D; &#xA74C;&#xA74D;&#xA74D;</span> <span title="U+A74F">&#xA74F;&#xA74F;&#xA74F; &#xA74E;&#xA74F;&#xA74F;</span> <span title="U+A751">&#xA751;&#xA751;&#xA751; &#xA750;&#xA751;&#xA751;</span> <span title="U+A753">&#xA753;&#xA753;&#xA753; &#xA752;&#xA753;&#xA753;</span> <span title="U+A755">&#xA755;&#xA755;&#xA755; &#xA754;&#xA755;&#xA755;</span> <span title="U+A757">&#xA757;&#xA757;&#xA757; &#xA756;&#xA757;&#xA757;</span> <span title="U+A759">&#xA759;&#xA759;&#xA759; &#xA758;&#xA759;&#xA759;</span> <span title="U+A75B">&#xA75B;&#xA75B;&#xA75B; &#xA75A;&#xA75B;&#xA75B;</span> <span title="U+A75D">&#xA75D;&#xA75D;&#xA75D; &#xA75C;&#xA75D;&#xA75D;</span> <span title="U+A75F">&#xA75F;&#xA75F;&#xA75F; &#xA75E;&#xA75F;&#xA75F;</span> <span title="U+A761">&#xA761;&#xA761;&#xA761; &#xA760;&#xA761;&#xA761;</span> <span title="U+A763">&#xA763;&#xA763;&#xA763; &#xA762;&#xA763;&#xA763;</span> <span title="U+A765">&#xA765;&#xA765;&#xA765; &#xA764;&#xA765;&#xA765;</span> <span title="U+A767">&#xA767;&#xA767;&#xA767; &#xA766;&#xA767;&#xA767;</span> <span title="U+A769">&#xA769;&#xA769;&#xA769; &#xA768;&#xA769;&#xA769;</span> <span title="U+A76B">&#xA76B;&#xA76B;&#xA76B; &#xA76A;&#xA76B;&#xA76B;</span> <span title="U+A76D">&#xA76D;&#xA76D;&#xA76D; &#xA76C;&#xA76D;&#xA76D;</span> <span title="U+A76F">&#xA76F;&#xA76F;&#xA76F; &#xA76E;&#xA76F;&#xA76F;</span> <span title="U+A77A">&#xA77A;&#xA77A;&#xA77A; &#xA779;&#xA77A;&#xA77A;</span> <span title="U+A77C">&#xA77C;&#xA77C;&#xA77C; &#xA77B;&#xA77C;&#xA77C;</span> <span title="U+A77F">&#xA77F;&#xA77F;&#xA77F; &#xA77E;&#xA77F;&#xA77F;</span> <span title="U+A781">&#xA781;&#xA781;&#xA781; &#xA780;&#xA781;&#xA781;</span> <span title="U+A783">&#xA783;&#xA783;&#xA783; &#xA782;&#xA783;&#xA783;</span> <span title="U+A785">&#xA785;&#xA785;&#xA785; &#xA784;&#xA785;&#xA785;</span> <span title="U+A787">&#xA787;&#xA787;&#xA787; &#xA786;&#xA787;&#xA787;</span> <span title="U+A78C">&#xA78C;&#xA78C;&#xA78C; &#xA78B;&#xA78C;&#xA78C;</span> <span title="U+A791">&#xA791;&#xA791;&#xA791; &#xA790;&#xA791;&#xA791;</span> <span title="U+A793">&#xA793;&#xA793;&#xA793; &#xA792;&#xA793;&#xA793;</span> <span title="U+A797">&#xA797;&#xA797;&#xA797; &#xA796;&#xA797;&#xA797;</span> <span title="U+A799">&#xA799;&#xA799;&#xA799; &#xA798;&#xA799;&#xA799;</span> <span title="U+A79B">&#xA79B;&#xA79B;&#xA79B; &#xA79A;&#xA79B;&#xA79B;</span> <span title="U+A79D">&#xA79D;&#xA79D;&#xA79D; &#xA79C;&#xA79D;&#xA79D;</span> <span title="U+A79F">&#xA79F;&#xA79F;&#xA79F; &#xA79E;&#xA79F;&#xA79F;</span> <span title="U+A7A1">&#xA7A1;&#xA7A1;&#xA7A1; &#xA7A0;&#xA7A1;&#xA7A1;</span> <span title="U+A7A3">&#xA7A3;&#xA7A3;&#xA7A3; &#xA7A2;&#xA7A3;&#xA7A3;</span> <span title="U+A7A5">&#xA7A5;&#xA7A5;&#xA7A5; &#xA7A4;&#xA7A5;&#xA7A5;</span> <span title="U+A7A7">&#xA7A7;&#xA7A7;&#xA7A7; &#xA7A6;&#xA7A7;&#xA7A7;</span> <span title="U+A7A9">&#xA7A9;&#xA7A9;&#xA7A9; &#xA7A8;&#xA7A9;&#xA7A9;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-011.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-011.html
new file mode 100644
index 0000000000..eb16d77c77
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-011.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Full-width Latin</title>
+<meta name="assert" content="For the Latin letters in the Halfwidth and Fullwidth Forms Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-011-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#xFF41;&#xFF41;&#xFF41; &#xFF21;&#xFF41;&#xFF41;</span> <span title="U+FF42">&#xFF42;&#xFF42;&#xFF42; &#xFF22;&#xFF42;&#xFF42;</span> <span title="U+FF43">&#xFF43;&#xFF43;&#xFF43; &#xFF23;&#xFF43;&#xFF43;</span> <span title="U+FF44">&#xFF44;&#xFF44;&#xFF44; &#xFF24;&#xFF44;&#xFF44;</span> <span title="U+FF45">&#xFF45;&#xFF45;&#xFF45; &#xFF25;&#xFF45;&#xFF45;</span> <span title="U+FF46">&#xFF46;&#xFF46;&#xFF46; &#xFF26;&#xFF46;&#xFF46;</span> <span title="U+FF47">&#xFF47;&#xFF47;&#xFF47; &#xFF27;&#xFF47;&#xFF47;</span> <span title="U+FF48">&#xFF48;&#xFF48;&#xFF48; &#xFF28;&#xFF48;&#xFF48;</span> <span title="U+FF49">&#xFF49;&#xFF49;&#xFF49; &#xFF29;&#xFF49;&#xFF49;</span> <span title="U+FF4A">&#xFF4A;&#xFF4A;&#xFF4A; &#xFF2A;&#xFF4A;&#xFF4A;</span> <span title="U+FF4B">&#xFF4B;&#xFF4B;&#xFF4B; &#xFF2B;&#xFF4B;&#xFF4B;</span> <span title="U+FF4C">&#xFF4C;&#xFF4C;&#xFF4C; &#xFF2C;&#xFF4C;&#xFF4C;</span> <span title="U+FF4D">&#xFF4D;&#xFF4D;&#xFF4D; &#xFF2D;&#xFF4D;&#xFF4D;</span> <span title="U+FF4E">&#xFF4E;&#xFF4E;&#xFF4E; &#xFF2E;&#xFF4E;&#xFF4E;</span> <span title="U+FF4F">&#xFF4F;&#xFF4F;&#xFF4F; &#xFF2F;&#xFF4F;&#xFF4F;</span> <span title="U+FF50">&#xFF50;&#xFF50;&#xFF50; &#xFF30;&#xFF50;&#xFF50;</span> <span title="U+FF51">&#xFF51;&#xFF51;&#xFF51; &#xFF31;&#xFF51;&#xFF51;</span> <span title="U+FF52">&#xFF52;&#xFF52;&#xFF52; &#xFF32;&#xFF52;&#xFF52;</span> <span title="U+FF53">&#xFF53;&#xFF53;&#xFF53; &#xFF33;&#xFF53;&#xFF53;</span> <span title="U+FF54">&#xFF54;&#xFF54;&#xFF54; &#xFF34;&#xFF54;&#xFF54;</span> <span title="U+FF55">&#xFF55;&#xFF55;&#xFF55; &#xFF35;&#xFF55;&#xFF55;</span> <span title="U+FF56">&#xFF56;&#xFF56;&#xFF56; &#xFF36;&#xFF56;&#xFF56;</span> <span title="U+FF57">&#xFF57;&#xFF57;&#xFF57; &#xFF37;&#xFF57;&#xFF57;</span> <span title="U+FF58">&#xFF58;&#xFF58;&#xFF58; &#xFF38;&#xFF58;&#xFF58;</span> <span title="U+FF59">&#xFF59;&#xFF59;&#xFF59; &#xFF39;&#xFF59;&#xFF59;</span> <span title="U+FF5A">&#xFF5A;&#xFF5A;&#xFF5A; &#xFF3A;&#xFF5A;&#xFF5A;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-014.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-014.html
new file mode 100644
index 0000000000..69550cfb7a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-014.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek and Coptic</title>
+<meta name="assert" content="For the Greek and Coptic Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-014-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0371;&#x0371;&#x0371; &#x0370;&#x0371;&#x0371;</span> <span title="U+0373">&#x0373;&#x0373;&#x0373; &#x0372;&#x0373;&#x0373;</span> <span title="U+0377">&#x0377;&#x0377;&#x0377; &#x0376;&#x0377;&#x0377;</span> <span title="U+037B">&#x037B;&#x037B;&#x037B; &#x03FD;&#x037B;&#x037B;</span> <span title="U+037C">&#x037C;&#x037C;&#x037C; &#x03FE;&#x037C;&#x037C;</span> <span title="U+037D">&#x037D;&#x037D;&#x037D; &#x03FF;&#x037D;&#x037D;</span> <span title="U+03AC">&#x03AC;&#x03AC;&#x03AC; &#x0386;&#x03AC;&#x03AC;</span> <span title="U+03AD">&#x03AD;&#x03AD;&#x03AD; &#x0388;&#x03AD;&#x03AD;</span> <span title="U+03AE">&#x03AE;&#x03AE;&#x03AE; &#x0389;&#x03AE;&#x03AE;</span> <span title="U+03AF">&#x03AF;&#x03AF;&#x03AF; &#x038A;&#x03AF;&#x03AF;</span> <span title="U+03B1">&#x03B1;&#x03B1;&#x03B1; &#x0391;&#x03B1;&#x03B1;</span> <span title="U+03B2">&#x03B2;&#x03B2;&#x03B2; &#x0392;&#x03B2;&#x03B2;</span> <span title="U+03B3">&#x03B3;&#x03B3;&#x03B3; &#x0393;&#x03B3;&#x03B3;</span> <span title="U+03B4">&#x03B4;&#x03B4;&#x03B4; &#x0394;&#x03B4;&#x03B4;</span> <span title="U+03B5">&#x03B5;&#x03B5;&#x03B5; &#x0395;&#x03B5;&#x03B5;</span> <span title="U+03B6">&#x03B6;&#x03B6;&#x03B6; &#x0396;&#x03B6;&#x03B6;</span> <span title="U+03B7">&#x03B7;&#x03B7;&#x03B7; &#x0397;&#x03B7;&#x03B7;</span> <span title="U+03B8">&#x03B8;&#x03B8;&#x03B8; &#x0398;&#x03B8;&#x03B8;</span> <span title="U+03B9">&#x03B9;&#x03B9;&#x03B9; &#x0399;&#x03B9;&#x03B9;</span> <span title="U+03BA">&#x03BA;&#x03BA;&#x03BA; &#x039A;&#x03BA;&#x03BA;</span> <span title="U+03BB">&#x03BB;&#x03BB;&#x03BB; &#x039B;&#x03BB;&#x03BB;</span> <span title="U+03BC">&#x03BC;&#x03BC;&#x03BC; &#x039C;&#x03BC;&#x03BC;</span> <span title="U+03BD">&#x03BD;&#x03BD;&#x03BD; &#x039D;&#x03BD;&#x03BD;</span> <span title="U+03BE">&#x03BE;&#x03BE;&#x03BE; &#x039E;&#x03BE;&#x03BE;</span> <span title="U+03BF">&#x03BF;&#x03BF;&#x03BF; &#x039F;&#x03BF;&#x03BF;</span> <span title="U+03C0">&#x03C0;&#x03C0;&#x03C0; &#x03A0;&#x03C0;&#x03C0;</span> <span title="U+03C1">&#x03C1;&#x03C1;&#x03C1; &#x03A1;&#x03C1;&#x03C1;</span> <span title="U+03C2">&#x03C2;&#x03C2;&#x03C2; &#x03A3;&#x03C2;&#x03C2;</span> <span title="U+03C3">&#x03C3;&#x03C3;&#x03C3; &#x03A3;&#x03C3;&#x03C3;</span> <span title="U+03C4">&#x03C4;&#x03C4;&#x03C4; &#x03A4;&#x03C4;&#x03C4;</span> <span title="U+03C5">&#x03C5;&#x03C5;&#x03C5; &#x03A5;&#x03C5;&#x03C5;</span> <span title="U+03C6">&#x03C6;&#x03C6;&#x03C6; &#x03A6;&#x03C6;&#x03C6;</span> <span title="U+03C7">&#x03C7;&#x03C7;&#x03C7; &#x03A7;&#x03C7;&#x03C7;</span> <span title="U+03C8">&#x03C8;&#x03C8;&#x03C8; &#x03A8;&#x03C8;&#x03C8;</span> <span title="U+03C9">&#x03C9;&#x03C9;&#x03C9; &#x03A9;&#x03C9;&#x03C9;</span> <span title="U+03CA">&#x03CA;&#x03CA;&#x03CA; &#x03AA;&#x03CA;&#x03CA;</span> <span title="U+03CB">&#x03CB;&#x03CB;&#x03CB; &#x03AB;&#x03CB;&#x03CB;</span> <span title="U+03CC">&#x03CC;&#x03CC;&#x03CC; &#x038C;&#x03CC;&#x03CC;</span> <span title="U+03CD">&#x03CD;&#x03CD;&#x03CD; &#x038E;&#x03CD;&#x03CD;</span> <span title="U+03CE">&#x03CE;&#x03CE;&#x03CE; &#x038F;&#x03CE;&#x03CE;</span> <span title="U+03D0">&#x03D0;&#x03D0;&#x03D0; &#x0392;&#x03D0;&#x03D0;</span> <span title="U+03D1">&#x03D1;&#x03D1;&#x03D1; &#x0398;&#x03D1;&#x03D1;</span> <span title="U+03D5">&#x03D5;&#x03D5;&#x03D5; &#x03A6;&#x03D5;&#x03D5;</span> <span title="U+03D6">&#x03D6;&#x03D6;&#x03D6; &#x03A0;&#x03D6;&#x03D6;</span> <span title="U+03D7">&#x03D7;&#x03D7;&#x03D7; &#x03CF;&#x03D7;&#x03D7;</span> <span title="U+03D9">&#x03D9;&#x03D9;&#x03D9; &#x03D8;&#x03D9;&#x03D9;</span> <span title="U+03DB">&#x03DB;&#x03DB;&#x03DB; &#x03DA;&#x03DB;&#x03DB;</span> <span title="U+03DD">&#x03DD;&#x03DD;&#x03DD; &#x03DC;&#x03DD;&#x03DD;</span> <span title="U+03DF">&#x03DF;&#x03DF;&#x03DF; &#x03DE;&#x03DF;&#x03DF;</span> <span title="U+03E1">&#x03E1;&#x03E1;&#x03E1; &#x03E0;&#x03E1;&#x03E1;</span> <span title="U+03E3">&#x03E3;&#x03E3;&#x03E3; &#x03E2;&#x03E3;&#x03E3;</span> <span title="U+03E5">&#x03E5;&#x03E5;&#x03E5; &#x03E4;&#x03E5;&#x03E5;</span> <span title="U+03E7">&#x03E7;&#x03E7;&#x03E7; &#x03E6;&#x03E7;&#x03E7;</span> <span title="U+03E9">&#x03E9;&#x03E9;&#x03E9; &#x03E8;&#x03E9;&#x03E9;</span> <span title="U+03EB">&#x03EB;&#x03EB;&#x03EB; &#x03EA;&#x03EB;&#x03EB;</span> <span title="U+03ED">&#x03ED;&#x03ED;&#x03ED; &#x03EC;&#x03ED;&#x03ED;</span> <span title="U+03EF">&#x03EF;&#x03EF;&#x03EF; &#x03EE;&#x03EF;&#x03EF;</span> <span title="U+03F0">&#x03F0;&#x03F0;&#x03F0; &#x039A;&#x03F0;&#x03F0;</span> <span title="U+03F1">&#x03F1;&#x03F1;&#x03F1; &#x03A1;&#x03F1;&#x03F1;</span> <span title="U+03F2">&#x03F2;&#x03F2;&#x03F2; &#x03F9;&#x03F2;&#x03F2;</span> <span title="U+03F3">&#x03F3;&#x03F3;&#x03F3; &#x037F;&#x03F3;&#x03F3;</span> <span title="U+03F5">&#x03F5;&#x03F5;&#x03F5; &#x0395;&#x03F5;&#x03F5;</span> <span title="U+03F8">&#x03F8;&#x03F8;&#x03F8; &#x03F7;&#x03F8;&#x03F8;</span> <span title="U+03FB">&#x03FB;&#x03FB;&#x03FB; &#x03FA;&#x03FB;&#x03FB;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-016.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-016.html
new file mode 100644
index 0000000000..7e1bbe3d6a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-016.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek Extended</title>
+<meta name="assert" content="For the Greek Extended Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-016-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x1F00;&#x1F00;&#x1F00; &#x1F08;&#x1F00;&#x1F00;</span> <span title="U+1F01">&#x1F01;&#x1F01;&#x1F01; &#x1F09;&#x1F01;&#x1F01;</span> <span title="U+1F02">&#x1F02;&#x1F02;&#x1F02; &#x1F0A;&#x1F02;&#x1F02;</span> <span title="U+1F03">&#x1F03;&#x1F03;&#x1F03; &#x1F0B;&#x1F03;&#x1F03;</span> <span title="U+1F04">&#x1F04;&#x1F04;&#x1F04; &#x1F0C;&#x1F04;&#x1F04;</span> <span title="U+1F05">&#x1F05;&#x1F05;&#x1F05; &#x1F0D;&#x1F05;&#x1F05;</span> <span title="U+1F06">&#x1F06;&#x1F06;&#x1F06; &#x1F0E;&#x1F06;&#x1F06;</span> <span title="U+1F07">&#x1F07;&#x1F07;&#x1F07; &#x1F0F;&#x1F07;&#x1F07;</span> <span title="U+1F10">&#x1F10;&#x1F10;&#x1F10; &#x1F18;&#x1F10;&#x1F10;</span> <span title="U+1F11">&#x1F11;&#x1F11;&#x1F11; &#x1F19;&#x1F11;&#x1F11;</span> <span title="U+1F12">&#x1F12;&#x1F12;&#x1F12; &#x1F1A;&#x1F12;&#x1F12;</span> <span title="U+1F13">&#x1F13;&#x1F13;&#x1F13; &#x1F1B;&#x1F13;&#x1F13;</span> <span title="U+1F14">&#x1F14;&#x1F14;&#x1F14; &#x1F1C;&#x1F14;&#x1F14;</span> <span title="U+1F15">&#x1F15;&#x1F15;&#x1F15; &#x1F1D;&#x1F15;&#x1F15;</span> <span title="U+1F20">&#x1F20;&#x1F20;&#x1F20; &#x1F28;&#x1F20;&#x1F20;</span> <span title="U+1F21">&#x1F21;&#x1F21;&#x1F21; &#x1F29;&#x1F21;&#x1F21;</span> <span title="U+1F22">&#x1F22;&#x1F22;&#x1F22; &#x1F2A;&#x1F22;&#x1F22;</span> <span title="U+1F23">&#x1F23;&#x1F23;&#x1F23; &#x1F2B;&#x1F23;&#x1F23;</span> <span title="U+1F24">&#x1F24;&#x1F24;&#x1F24; &#x1F2C;&#x1F24;&#x1F24;</span> <span title="U+1F25">&#x1F25;&#x1F25;&#x1F25; &#x1F2D;&#x1F25;&#x1F25;</span> <span title="U+1F26">&#x1F26;&#x1F26;&#x1F26; &#x1F2E;&#x1F26;&#x1F26;</span> <span title="U+1F27">&#x1F27;&#x1F27;&#x1F27; &#x1F2F;&#x1F27;&#x1F27;</span> <span title="U+1F30">&#x1F30;&#x1F30;&#x1F30; &#x1F38;&#x1F30;&#x1F30;</span> <span title="U+1F31">&#x1F31;&#x1F31;&#x1F31; &#x1F39;&#x1F31;&#x1F31;</span> <span title="U+1F32">&#x1F32;&#x1F32;&#x1F32; &#x1F3A;&#x1F32;&#x1F32;</span> <span title="U+1F33">&#x1F33;&#x1F33;&#x1F33; &#x1F3B;&#x1F33;&#x1F33;</span> <span title="U+1F34">&#x1F34;&#x1F34;&#x1F34; &#x1F3C;&#x1F34;&#x1F34;</span> <span title="U+1F35">&#x1F35;&#x1F35;&#x1F35; &#x1F3D;&#x1F35;&#x1F35;</span> <span title="U+1F36">&#x1F36;&#x1F36;&#x1F36; &#x1F3E;&#x1F36;&#x1F36;</span> <span title="U+1F37">&#x1F37;&#x1F37;&#x1F37; &#x1F3F;&#x1F37;&#x1F37;</span> <span title="U+1F40">&#x1F40;&#x1F40;&#x1F40; &#x1F48;&#x1F40;&#x1F40;</span> <span title="U+1F41">&#x1F41;&#x1F41;&#x1F41; &#x1F49;&#x1F41;&#x1F41;</span> <span title="U+1F42">&#x1F42;&#x1F42;&#x1F42; &#x1F4A;&#x1F42;&#x1F42;</span> <span title="U+1F43">&#x1F43;&#x1F43;&#x1F43; &#x1F4B;&#x1F43;&#x1F43;</span> <span title="U+1F44">&#x1F44;&#x1F44;&#x1F44; &#x1F4C;&#x1F44;&#x1F44;</span> <span title="U+1F45">&#x1F45;&#x1F45;&#x1F45; &#x1F4D;&#x1F45;&#x1F45;</span> <span title="U+1F51">&#x1F51;&#x1F51;&#x1F51; &#x1F59;&#x1F51;&#x1F51;</span> <span title="U+1F53">&#x1F53;&#x1F53;&#x1F53; &#x1F5B;&#x1F53;&#x1F53;</span> <span title="U+1F55">&#x1F55;&#x1F55;&#x1F55; &#x1F5D;&#x1F55;&#x1F55;</span> <span title="U+1F57">&#x1F57;&#x1F57;&#x1F57; &#x1F5F;&#x1F57;&#x1F57;</span> <span title="U+1F60">&#x1F60;&#x1F60;&#x1F60; &#x1F68;&#x1F60;&#x1F60;</span> <span title="U+1F61">&#x1F61;&#x1F61;&#x1F61; &#x1F69;&#x1F61;&#x1F61;</span> <span title="U+1F62">&#x1F62;&#x1F62;&#x1F62; &#x1F6A;&#x1F62;&#x1F62;</span> <span title="U+1F63">&#x1F63;&#x1F63;&#x1F63; &#x1F6B;&#x1F63;&#x1F63;</span> <span title="U+1F64">&#x1F64;&#x1F64;&#x1F64; &#x1F6C;&#x1F64;&#x1F64;</span> <span title="U+1F65">&#x1F65;&#x1F65;&#x1F65; &#x1F6D;&#x1F65;&#x1F65;</span> <span title="U+1F66">&#x1F66;&#x1F66;&#x1F66; &#x1F6E;&#x1F66;&#x1F66;</span> <span title="U+1F67">&#x1F67;&#x1F67;&#x1F67; &#x1F6F;&#x1F67;&#x1F67;</span> <span title="U+1F70">&#x1F70;&#x1F70;&#x1F70; &#x1FBA;&#x1F70;&#x1F70;</span> <span title="U+1F71">&#x1F71;&#x1F71;&#x1F71; &#x1FBB;&#x1F71;&#x1F71;</span> <span title="U+1F72">&#x1F72;&#x1F72;&#x1F72; &#x1FC8;&#x1F72;&#x1F72;</span> <span title="U+1F73">&#x1F73;&#x1F73;&#x1F73; &#x1FC9;&#x1F73;&#x1F73;</span> <span title="U+1F74">&#x1F74;&#x1F74;&#x1F74; &#x1FCA;&#x1F74;&#x1F74;</span> <span title="U+1F75">&#x1F75;&#x1F75;&#x1F75; &#x1FCB;&#x1F75;&#x1F75;</span> <span title="U+1F76">&#x1F76;&#x1F76;&#x1F76; &#x1FDA;&#x1F76;&#x1F76;</span> <span title="U+1F77">&#x1F77;&#x1F77;&#x1F77; &#x1FDB;&#x1F77;&#x1F77;</span> <span title="U+1F78">&#x1F78;&#x1F78;&#x1F78; &#x1FF8;&#x1F78;&#x1F78;</span> <span title="U+1F79">&#x1F79;&#x1F79;&#x1F79; &#x1FF9;&#x1F79;&#x1F79;</span> <span title="U+1F7A">&#x1F7A;&#x1F7A;&#x1F7A; &#x1FEA;&#x1F7A;&#x1F7A;</span> <span title="U+1F7B">&#x1F7B;&#x1F7B;&#x1F7B; &#x1FEB;&#x1F7B;&#x1F7B;</span> <span title="U+1F7C">&#x1F7C;&#x1F7C;&#x1F7C; &#x1FFA;&#x1F7C;&#x1F7C;</span> <span title="U+1F7D">&#x1F7D;&#x1F7D;&#x1F7D; &#x1FFB;&#x1F7D;&#x1F7D;</span> <span title="U+1F80">&#x1F80;&#x1F80;&#x1F80; &#x1F88;&#x1F80;&#x1F80;</span> <span title="U+1F81">&#x1F81;&#x1F81;&#x1F81; &#x1F89;&#x1F81;&#x1F81;</span> <span title="U+1F82">&#x1F82;&#x1F82;&#x1F82; &#x1F8A;&#x1F82;&#x1F82;</span> <span title="U+1F83">&#x1F83;&#x1F83;&#x1F83; &#x1F8B;&#x1F83;&#x1F83;</span> <span title="U+1F84">&#x1F84;&#x1F84;&#x1F84; &#x1F8C;&#x1F84;&#x1F84;</span> <span title="U+1F85">&#x1F85;&#x1F85;&#x1F85; &#x1F8D;&#x1F85;&#x1F85;</span> <span title="U+1F86">&#x1F86;&#x1F86;&#x1F86; &#x1F8E;&#x1F86;&#x1F86;</span> <span title="U+1F87">&#x1F87;&#x1F87;&#x1F87; &#x1F8F;&#x1F87;&#x1F87;</span> <span title="U+1F90">&#x1F90;&#x1F90;&#x1F90; &#x1F98;&#x1F90;&#x1F90;</span> <span title="U+1F91">&#x1F91;&#x1F91;&#x1F91; &#x1F99;&#x1F91;&#x1F91;</span> <span title="U+1F92">&#x1F92;&#x1F92;&#x1F92; &#x1F9A;&#x1F92;&#x1F92;</span> <span title="U+1F93">&#x1F93;&#x1F93;&#x1F93; &#x1F9B;&#x1F93;&#x1F93;</span> <span title="U+1F94">&#x1F94;&#x1F94;&#x1F94; &#x1F9C;&#x1F94;&#x1F94;</span> <span title="U+1F95">&#x1F95;&#x1F95;&#x1F95; &#x1F9D;&#x1F95;&#x1F95;</span> <span title="U+1F96">&#x1F96;&#x1F96;&#x1F96; &#x1F9E;&#x1F96;&#x1F96;</span> <span title="U+1F97">&#x1F97;&#x1F97;&#x1F97; &#x1F9F;&#x1F97;&#x1F97;</span> <span title="U+1FA0">&#x1FA0;&#x1FA0;&#x1FA0; &#x1FA8;&#x1FA0;&#x1FA0;</span> <span title="U+1FA1">&#x1FA1;&#x1FA1;&#x1FA1; &#x1FA9;&#x1FA1;&#x1FA1;</span> <span title="U+1FA2">&#x1FA2;&#x1FA2;&#x1FA2; &#x1FAA;&#x1FA2;&#x1FA2;</span> <span title="U+1FA3">&#x1FA3;&#x1FA3;&#x1FA3; &#x1FAB;&#x1FA3;&#x1FA3;</span> <span title="U+1FA4">&#x1FA4;&#x1FA4;&#x1FA4; &#x1FAC;&#x1FA4;&#x1FA4;</span> <span title="U+1FA5">&#x1FA5;&#x1FA5;&#x1FA5; &#x1FAD;&#x1FA5;&#x1FA5;</span> <span title="U+1FA6">&#x1FA6;&#x1FA6;&#x1FA6; &#x1FAE;&#x1FA6;&#x1FA6;</span> <span title="U+1FA7">&#x1FA7;&#x1FA7;&#x1FA7; &#x1FAF;&#x1FA7;&#x1FA7;</span> <span title="U+1FB0">&#x1FB0;&#x1FB0;&#x1FB0; &#x1FB8;&#x1FB0;&#x1FB0;</span> <span title="U+1FB1">&#x1FB1;&#x1FB1;&#x1FB1; &#x1FB9;&#x1FB1;&#x1FB1;</span> <span title="U+1FB3">&#x1FB3;&#x1FB3;&#x1FB3; &#x1FBC;&#x1FB3;&#x1FB3;</span> <span title="U+1FBE">&#x1FBE;&#x1FBE;&#x1FBE; &#x0399;&#x1FBE;&#x1FBE;</span> <span title="U+1FC3">&#x1FC3;&#x1FC3;&#x1FC3; &#x1FCC;&#x1FC3;&#x1FC3;</span> <span title="U+1FD0">&#x1FD0;&#x1FD0;&#x1FD0; &#x1FD8;&#x1FD0;&#x1FD0;</span> <span title="U+1FD1">&#x1FD1;&#x1FD1;&#x1FD1; &#x1FD9;&#x1FD1;&#x1FD1;</span> <span title="U+1FE0">&#x1FE0;&#x1FE0;&#x1FE0; &#x1FE8;&#x1FE0;&#x1FE0;</span> <span title="U+1FE1">&#x1FE1;&#x1FE1;&#x1FE1; &#x1FE9;&#x1FE1;&#x1FE1;</span> <span title="U+1FE5">&#x1FE5;&#x1FE5;&#x1FE5; &#x1FEC;&#x1FE5;&#x1FE5;</span> <span title="U+1FF3">&#x1FF3;&#x1FF3;&#x1FF3; &#x1FFC;&#x1FF3;&#x1FF3;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-018.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-018.html
new file mode 100644
index 0000000000..6568a0366c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-018.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Cyrillic</title>
+<meta name="assert" content="For the Cyrillic Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-018-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0430;&#x0430;&#x0430; &#x0410;&#x0430;&#x0430;</span> <span title="U+0431">&#x0431;&#x0431;&#x0431; &#x0411;&#x0431;&#x0431;</span> <span title="U+0432">&#x0432;&#x0432;&#x0432; &#x0412;&#x0432;&#x0432;</span> <span title="U+0433">&#x0433;&#x0433;&#x0433; &#x0413;&#x0433;&#x0433;</span> <span title="U+0434">&#x0434;&#x0434;&#x0434; &#x0414;&#x0434;&#x0434;</span> <span title="U+0435">&#x0435;&#x0435;&#x0435; &#x0415;&#x0435;&#x0435;</span> <span title="U+0436">&#x0436;&#x0436;&#x0436; &#x0416;&#x0436;&#x0436;</span> <span title="U+0437">&#x0437;&#x0437;&#x0437; &#x0417;&#x0437;&#x0437;</span> <span title="U+0438">&#x0438;&#x0438;&#x0438; &#x0418;&#x0438;&#x0438;</span> <span title="U+0439">&#x0439;&#x0439;&#x0439; &#x0419;&#x0439;&#x0439;</span> <span title="U+043A">&#x043A;&#x043A;&#x043A; &#x041A;&#x043A;&#x043A;</span> <span title="U+043B">&#x043B;&#x043B;&#x043B; &#x041B;&#x043B;&#x043B;</span> <span title="U+043C">&#x043C;&#x043C;&#x043C; &#x041C;&#x043C;&#x043C;</span> <span title="U+043D">&#x043D;&#x043D;&#x043D; &#x041D;&#x043D;&#x043D;</span> <span title="U+043E">&#x043E;&#x043E;&#x043E; &#x041E;&#x043E;&#x043E;</span> <span title="U+043F">&#x043F;&#x043F;&#x043F; &#x041F;&#x043F;&#x043F;</span> <span title="U+0440">&#x0440;&#x0440;&#x0440; &#x0420;&#x0440;&#x0440;</span> <span title="U+0441">&#x0441;&#x0441;&#x0441; &#x0421;&#x0441;&#x0441;</span> <span title="U+0442">&#x0442;&#x0442;&#x0442; &#x0422;&#x0442;&#x0442;</span> <span title="U+0443">&#x0443;&#x0443;&#x0443; &#x0423;&#x0443;&#x0443;</span> <span title="U+0444">&#x0444;&#x0444;&#x0444; &#x0424;&#x0444;&#x0444;</span> <span title="U+0445">&#x0445;&#x0445;&#x0445; &#x0425;&#x0445;&#x0445;</span> <span title="U+0446">&#x0446;&#x0446;&#x0446; &#x0426;&#x0446;&#x0446;</span> <span title="U+0447">&#x0447;&#x0447;&#x0447; &#x0427;&#x0447;&#x0447;</span> <span title="U+0448">&#x0448;&#x0448;&#x0448; &#x0428;&#x0448;&#x0448;</span> <span title="U+0449">&#x0449;&#x0449;&#x0449; &#x0429;&#x0449;&#x0449;</span> <span title="U+044A">&#x044A;&#x044A;&#x044A; &#x042A;&#x044A;&#x044A;</span> <span title="U+044B">&#x044B;&#x044B;&#x044B; &#x042B;&#x044B;&#x044B;</span> <span title="U+044C">&#x044C;&#x044C;&#x044C; &#x042C;&#x044C;&#x044C;</span> <span title="U+044D">&#x044D;&#x044D;&#x044D; &#x042D;&#x044D;&#x044D;</span> <span title="U+044E">&#x044E;&#x044E;&#x044E; &#x042E;&#x044E;&#x044E;</span> <span title="U+044F">&#x044F;&#x044F;&#x044F; &#x042F;&#x044F;&#x044F;</span> <span title="U+0450">&#x0450;&#x0450;&#x0450; &#x0400;&#x0450;&#x0450;</span> <span title="U+0451">&#x0451;&#x0451;&#x0451; &#x0401;&#x0451;&#x0451;</span> <span title="U+0452">&#x0452;&#x0452;&#x0452; &#x0402;&#x0452;&#x0452;</span> <span title="U+0453">&#x0453;&#x0453;&#x0453; &#x0403;&#x0453;&#x0453;</span> <span title="U+0454">&#x0454;&#x0454;&#x0454; &#x0404;&#x0454;&#x0454;</span> <span title="U+0455">&#x0455;&#x0455;&#x0455; &#x0405;&#x0455;&#x0455;</span> <span title="U+0456">&#x0456;&#x0456;&#x0456; &#x0406;&#x0456;&#x0456;</span> <span title="U+0457">&#x0457;&#x0457;&#x0457; &#x0407;&#x0457;&#x0457;</span> <span title="U+0458">&#x0458;&#x0458;&#x0458; &#x0408;&#x0458;&#x0458;</span> <span title="U+0459">&#x0459;&#x0459;&#x0459; &#x0409;&#x0459;&#x0459;</span> <span title="U+045A">&#x045A;&#x045A;&#x045A; &#x040A;&#x045A;&#x045A;</span> <span title="U+045B">&#x045B;&#x045B;&#x045B; &#x040B;&#x045B;&#x045B;</span> <span title="U+045C">&#x045C;&#x045C;&#x045C; &#x040C;&#x045C;&#x045C;</span> <span title="U+045D">&#x045D;&#x045D;&#x045D; &#x040D;&#x045D;&#x045D;</span> <span title="U+045E">&#x045E;&#x045E;&#x045E; &#x040E;&#x045E;&#x045E;</span> <span title="U+045F">&#x045F;&#x045F;&#x045F; &#x040F;&#x045F;&#x045F;</span> <span title="U+0461">&#x0461;&#x0461;&#x0461; &#x0460;&#x0461;&#x0461;</span> <span title="U+0463">&#x0463;&#x0463;&#x0463; &#x0462;&#x0463;&#x0463;</span> <span title="U+0465">&#x0465;&#x0465;&#x0465; &#x0464;&#x0465;&#x0465;</span> <span title="U+0467">&#x0467;&#x0467;&#x0467; &#x0466;&#x0467;&#x0467;</span> <span title="U+0469">&#x0469;&#x0469;&#x0469; &#x0468;&#x0469;&#x0469;</span> <span title="U+046B">&#x046B;&#x046B;&#x046B; &#x046A;&#x046B;&#x046B;</span> <span title="U+046D">&#x046D;&#x046D;&#x046D; &#x046C;&#x046D;&#x046D;</span> <span title="U+046F">&#x046F;&#x046F;&#x046F; &#x046E;&#x046F;&#x046F;</span> <span title="U+0471">&#x0471;&#x0471;&#x0471; &#x0470;&#x0471;&#x0471;</span> <span title="U+0473">&#x0473;&#x0473;&#x0473; &#x0472;&#x0473;&#x0473;</span> <span title="U+0475">&#x0475;&#x0475;&#x0475; &#x0474;&#x0475;&#x0475;</span> <span title="U+0477">&#x0477;&#x0477;&#x0477; &#x0476;&#x0477;&#x0477;</span> <span title="U+0479">&#x0479;&#x0479;&#x0479; &#x0478;&#x0479;&#x0479;</span> <span title="U+047B">&#x047B;&#x047B;&#x047B; &#x047A;&#x047B;&#x047B;</span> <span title="U+047D">&#x047D;&#x047D;&#x047D; &#x047C;&#x047D;&#x047D;</span> <span title="U+047F">&#x047F;&#x047F;&#x047F; &#x047E;&#x047F;&#x047F;</span> <span title="U+0481">&#x0481;&#x0481;&#x0481; &#x0480;&#x0481;&#x0481;</span> <span title="U+048B">&#x048B;&#x048B;&#x048B; &#x048A;&#x048B;&#x048B;</span> <span title="U+048D">&#x048D;&#x048D;&#x048D; &#x048C;&#x048D;&#x048D;</span> <span title="U+048F">&#x048F;&#x048F;&#x048F; &#x048E;&#x048F;&#x048F;</span> <span title="U+0491">&#x0491;&#x0491;&#x0491; &#x0490;&#x0491;&#x0491;</span> <span title="U+0493">&#x0493;&#x0493;&#x0493; &#x0492;&#x0493;&#x0493;</span> <span title="U+0495">&#x0495;&#x0495;&#x0495; &#x0494;&#x0495;&#x0495;</span> <span title="U+0497">&#x0497;&#x0497;&#x0497; &#x0496;&#x0497;&#x0497;</span> <span title="U+0499">&#x0499;&#x0499;&#x0499; &#x0498;&#x0499;&#x0499;</span> <span title="U+049B">&#x049B;&#x049B;&#x049B; &#x049A;&#x049B;&#x049B;</span> <span title="U+049D">&#x049D;&#x049D;&#x049D; &#x049C;&#x049D;&#x049D;</span> <span title="U+049F">&#x049F;&#x049F;&#x049F; &#x049E;&#x049F;&#x049F;</span> <span title="U+04A1">&#x04A1;&#x04A1;&#x04A1; &#x04A0;&#x04A1;&#x04A1;</span> <span title="U+04A3">&#x04A3;&#x04A3;&#x04A3; &#x04A2;&#x04A3;&#x04A3;</span> <span title="U+04A5">&#x04A5;&#x04A5;&#x04A5; &#x04A4;&#x04A5;&#x04A5;</span> <span title="U+04A7">&#x04A7;&#x04A7;&#x04A7; &#x04A6;&#x04A7;&#x04A7;</span> <span title="U+04A9">&#x04A9;&#x04A9;&#x04A9; &#x04A8;&#x04A9;&#x04A9;</span> <span title="U+04AB">&#x04AB;&#x04AB;&#x04AB; &#x04AA;&#x04AB;&#x04AB;</span> <span title="U+04AD">&#x04AD;&#x04AD;&#x04AD; &#x04AC;&#x04AD;&#x04AD;</span> <span title="U+04AF">&#x04AF;&#x04AF;&#x04AF; &#x04AE;&#x04AF;&#x04AF;</span> <span title="U+04B1">&#x04B1;&#x04B1;&#x04B1; &#x04B0;&#x04B1;&#x04B1;</span> <span title="U+04B3">&#x04B3;&#x04B3;&#x04B3; &#x04B2;&#x04B3;&#x04B3;</span> <span title="U+04B5">&#x04B5;&#x04B5;&#x04B5; &#x04B4;&#x04B5;&#x04B5;</span> <span title="U+04B7">&#x04B7;&#x04B7;&#x04B7; &#x04B6;&#x04B7;&#x04B7;</span> <span title="U+04B9">&#x04B9;&#x04B9;&#x04B9; &#x04B8;&#x04B9;&#x04B9;</span> <span title="U+04BB">&#x04BB;&#x04BB;&#x04BB; &#x04BA;&#x04BB;&#x04BB;</span> <span title="U+04BD">&#x04BD;&#x04BD;&#x04BD; &#x04BC;&#x04BD;&#x04BD;</span> <span title="U+04BF">&#x04BF;&#x04BF;&#x04BF; &#x04BE;&#x04BF;&#x04BF;</span> <span title="U+04C2">&#x04C2;&#x04C2;&#x04C2; &#x04C1;&#x04C2;&#x04C2;</span> <span title="U+04C4">&#x04C4;&#x04C4;&#x04C4; &#x04C3;&#x04C4;&#x04C4;</span> <span title="U+04C6">&#x04C6;&#x04C6;&#x04C6; &#x04C5;&#x04C6;&#x04C6;</span> <span title="U+04C8">&#x04C8;&#x04C8;&#x04C8; &#x04C7;&#x04C8;&#x04C8;</span> <span title="U+04CA">&#x04CA;&#x04CA;&#x04CA; &#x04C9;&#x04CA;&#x04CA;</span> <span title="U+04CC">&#x04CC;&#x04CC;&#x04CC; &#x04CB;&#x04CC;&#x04CC;</span> <span title="U+04CE">&#x04CE;&#x04CE;&#x04CE; &#x04CD;&#x04CE;&#x04CE;</span> <span title="U+04CF">&#x04CF;&#x04CF;&#x04CF; &#x04C0;&#x04CF;&#x04CF;</span> <span title="U+04D1">&#x04D1;&#x04D1;&#x04D1; &#x04D0;&#x04D1;&#x04D1;</span> <span title="U+04D3">&#x04D3;&#x04D3;&#x04D3; &#x04D2;&#x04D3;&#x04D3;</span> <span title="U+04D5">&#x04D5;&#x04D5;&#x04D5; &#x04D4;&#x04D5;&#x04D5;</span> <span title="U+04D7">&#x04D7;&#x04D7;&#x04D7; &#x04D6;&#x04D7;&#x04D7;</span> <span title="U+04D9">&#x04D9;&#x04D9;&#x04D9; &#x04D8;&#x04D9;&#x04D9;</span> <span title="U+04DB">&#x04DB;&#x04DB;&#x04DB; &#x04DA;&#x04DB;&#x04DB;</span> <span title="U+04DD">&#x04DD;&#x04DD;&#x04DD; &#x04DC;&#x04DD;&#x04DD;</span> <span title="U+04DF">&#x04DF;&#x04DF;&#x04DF; &#x04DE;&#x04DF;&#x04DF;</span> <span title="U+04E1">&#x04E1;&#x04E1;&#x04E1; &#x04E0;&#x04E1;&#x04E1;</span> <span title="U+04E3">&#x04E3;&#x04E3;&#x04E3; &#x04E2;&#x04E3;&#x04E3;</span> <span title="U+04E5">&#x04E5;&#x04E5;&#x04E5; &#x04E4;&#x04E5;&#x04E5;</span> <span title="U+04E7">&#x04E7;&#x04E7;&#x04E7; &#x04E6;&#x04E7;&#x04E7;</span> <span title="U+04E9">&#x04E9;&#x04E9;&#x04E9; &#x04E8;&#x04E9;&#x04E9;</span> <span title="U+04EB">&#x04EB;&#x04EB;&#x04EB; &#x04EA;&#x04EB;&#x04EB;</span> <span title="U+04ED">&#x04ED;&#x04ED;&#x04ED; &#x04EC;&#x04ED;&#x04ED;</span> <span title="U+04EF">&#x04EF;&#x04EF;&#x04EF; &#x04EE;&#x04EF;&#x04EF;</span> <span title="U+04F1">&#x04F1;&#x04F1;&#x04F1; &#x04F0;&#x04F1;&#x04F1;</span> <span title="U+04F3">&#x04F3;&#x04F3;&#x04F3; &#x04F2;&#x04F3;&#x04F3;</span> <span title="U+04F5">&#x04F5;&#x04F5;&#x04F5; &#x04F4;&#x04F5;&#x04F5;</span> <span title="U+04F7">&#x04F7;&#x04F7;&#x04F7; &#x04F6;&#x04F7;&#x04F7;</span> <span title="U+04F9">&#x04F9;&#x04F9;&#x04F9; &#x04F8;&#x04F9;&#x04F9;</span> <span title="U+04FB">&#x04FB;&#x04FB;&#x04FB; &#x04FA;&#x04FB;&#x04FB;</span> <span title="U+04FD">&#x04FD;&#x04FD;&#x04FD; &#x04FC;&#x04FD;&#x04FD;</span> <span title="U+04FF">&#x04FF;&#x04FF;&#x04FF; &#x04FE;&#x04FF;&#x04FF;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-020.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-020.html
new file mode 100644
index 0000000000..0b852ba9ec
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-020.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Cyrillic Supplement</title>
+<meta name="assert" content="For the Cyrillic Supplement Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-020-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0501;&#x0501;&#x0501; &#x0500;&#x0501;&#x0501;</span> <span title="U+0503">&#x0503;&#x0503;&#x0503; &#x0502;&#x0503;&#x0503;</span> <span title="U+0505">&#x0505;&#x0505;&#x0505; &#x0504;&#x0505;&#x0505;</span> <span title="U+0507">&#x0507;&#x0507;&#x0507; &#x0506;&#x0507;&#x0507;</span> <span title="U+0509">&#x0509;&#x0509;&#x0509; &#x0508;&#x0509;&#x0509;</span> <span title="U+050B">&#x050B;&#x050B;&#x050B; &#x050A;&#x050B;&#x050B;</span> <span title="U+050D">&#x050D;&#x050D;&#x050D; &#x050C;&#x050D;&#x050D;</span> <span title="U+050F">&#x050F;&#x050F;&#x050F; &#x050E;&#x050F;&#x050F;</span> <span title="U+0511">&#x0511;&#x0511;&#x0511; &#x0510;&#x0511;&#x0511;</span> <span title="U+0513">&#x0513;&#x0513;&#x0513; &#x0512;&#x0513;&#x0513;</span> <span title="U+0515">&#x0515;&#x0515;&#x0515; &#x0514;&#x0515;&#x0515;</span> <span title="U+0517">&#x0517;&#x0517;&#x0517; &#x0516;&#x0517;&#x0517;</span> <span title="U+0519">&#x0519;&#x0519;&#x0519; &#x0518;&#x0519;&#x0519;</span> <span title="U+051B">&#x051B;&#x051B;&#x051B; &#x051A;&#x051B;&#x051B;</span> <span title="U+051D">&#x051D;&#x051D;&#x051D; &#x051C;&#x051D;&#x051D;</span> <span title="U+051F">&#x051F;&#x051F;&#x051F; &#x051E;&#x051F;&#x051F;</span> <span title="U+0521">&#x0521;&#x0521;&#x0521; &#x0520;&#x0521;&#x0521;</span> <span title="U+0523">&#x0523;&#x0523;&#x0523; &#x0522;&#x0523;&#x0523;</span> <span title="U+0525">&#x0525;&#x0525;&#x0525; &#x0524;&#x0525;&#x0525;</span> <span title="U+0527">&#x0527;&#x0527;&#x0527; &#x0526;&#x0527;&#x0527;</span> <span title="U+0529">&#x0529;&#x0529;&#x0529; &#x0528;&#x0529;&#x0529;</span> <span title="U+052B">&#x052B;&#x052B;&#x052B; &#x052A;&#x052B;&#x052B;</span> <span title="U+052D">&#x052D;&#x052D;&#x052D; &#x052C;&#x052D;&#x052D;</span> <span title="U+052F">&#x052F;&#x052F;&#x052F; &#x052E;&#x052F;&#x052F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-022.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-022.html
new file mode 100644
index 0000000000..aa702810b2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-022.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Armenian</title>
+<meta name="assert" content="For the ArmenianUnicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-022-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x0561;&#x0561;&#x0561; &#x0531;&#x0561;&#x0561;</span> <span title="U+0562">&#x0562;&#x0562;&#x0562; &#x0532;&#x0562;&#x0562;</span> <span title="U+0563">&#x0563;&#x0563;&#x0563; &#x0533;&#x0563;&#x0563;</span> <span title="U+0564">&#x0564;&#x0564;&#x0564; &#x0534;&#x0564;&#x0564;</span> <span title="U+0565">&#x0565;&#x0565;&#x0565; &#x0535;&#x0565;&#x0565;</span> <span title="U+0566">&#x0566;&#x0566;&#x0566; &#x0536;&#x0566;&#x0566;</span> <span title="U+0567">&#x0567;&#x0567;&#x0567; &#x0537;&#x0567;&#x0567;</span> <span title="U+0568">&#x0568;&#x0568;&#x0568; &#x0538;&#x0568;&#x0568;</span> <span title="U+0569">&#x0569;&#x0569;&#x0569; &#x0539;&#x0569;&#x0569;</span> <span title="U+056A">&#x056A;&#x056A;&#x056A; &#x053A;&#x056A;&#x056A;</span> <span title="U+056B">&#x056B;&#x056B;&#x056B; &#x053B;&#x056B;&#x056B;</span> <span title="U+056C">&#x056C;&#x056C;&#x056C; &#x053C;&#x056C;&#x056C;</span> <span title="U+056D">&#x056D;&#x056D;&#x056D; &#x053D;&#x056D;&#x056D;</span> <span title="U+056E">&#x056E;&#x056E;&#x056E; &#x053E;&#x056E;&#x056E;</span> <span title="U+056F">&#x056F;&#x056F;&#x056F; &#x053F;&#x056F;&#x056F;</span> <span title="U+0570">&#x0570;&#x0570;&#x0570; &#x0540;&#x0570;&#x0570;</span> <span title="U+0571">&#x0571;&#x0571;&#x0571; &#x0541;&#x0571;&#x0571;</span> <span title="U+0572">&#x0572;&#x0572;&#x0572; &#x0542;&#x0572;&#x0572;</span> <span title="U+0573">&#x0573;&#x0573;&#x0573; &#x0543;&#x0573;&#x0573;</span> <span title="U+0574">&#x0574;&#x0574;&#x0574; &#x0544;&#x0574;&#x0574;</span> <span title="U+0575">&#x0575;&#x0575;&#x0575; &#x0545;&#x0575;&#x0575;</span> <span title="U+0576">&#x0576;&#x0576;&#x0576; &#x0546;&#x0576;&#x0576;</span> <span title="U+0577">&#x0577;&#x0577;&#x0577; &#x0547;&#x0577;&#x0577;</span> <span title="U+0578">&#x0578;&#x0578;&#x0578; &#x0548;&#x0578;&#x0578;</span> <span title="U+0579">&#x0579;&#x0579;&#x0579; &#x0549;&#x0579;&#x0579;</span> <span title="U+057A">&#x057A;&#x057A;&#x057A; &#x054A;&#x057A;&#x057A;</span> <span title="U+057B">&#x057B;&#x057B;&#x057B; &#x054B;&#x057B;&#x057B;</span> <span title="U+057C">&#x057C;&#x057C;&#x057C; &#x054C;&#x057C;&#x057C;</span> <span title="U+057D">&#x057D;&#x057D;&#x057D; &#x054D;&#x057D;&#x057D;</span> <span title="U+057E">&#x057E;&#x057E;&#x057E; &#x054E;&#x057E;&#x057E;</span> <span title="U+057F">&#x057F;&#x057F;&#x057F; &#x054F;&#x057F;&#x057F;</span> <span title="U+0580">&#x0580;&#x0580;&#x0580; &#x0550;&#x0580;&#x0580;</span> <span title="U+0581">&#x0581;&#x0581;&#x0581; &#x0551;&#x0581;&#x0581;</span> <span title="U+0582">&#x0582;&#x0582;&#x0582; &#x0552;&#x0582;&#x0582;</span> <span title="U+0583">&#x0583;&#x0583;&#x0583; &#x0553;&#x0583;&#x0583;</span> <span title="U+0584">&#x0584;&#x0584;&#x0584; &#x0554;&#x0584;&#x0584;</span> <span title="U+0585">&#x0585;&#x0585;&#x0585; &#x0555;&#x0585;&#x0585;</span> <span title="U+0586">&#x0586;&#x0586;&#x0586; &#x0556;&#x0586;&#x0586;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-024.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-024.html
new file mode 100644
index 0000000000..891228db89
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-024.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Number Forms</title>
+<meta name="assert" content="For the Number Forms Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-024-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x2170;&#x2170;&#x2170; &#x2160;&#x2170;&#x2170;</span> <span title="U+2171">&#x2171;&#x2171;&#x2171; &#x2161;&#x2171;&#x2171;</span> <span title="U+2172">&#x2172;&#x2172;&#x2172; &#x2162;&#x2172;&#x2172;</span> <span title="U+2173">&#x2173;&#x2173;&#x2173; &#x2163;&#x2173;&#x2173;</span> <span title="U+2174">&#x2174;&#x2174;&#x2174; &#x2164;&#x2174;&#x2174;</span> <span title="U+2175">&#x2175;&#x2175;&#x2175; &#x2165;&#x2175;&#x2175;</span> <span title="U+2176">&#x2176;&#x2176;&#x2176; &#x2166;&#x2176;&#x2176;</span> <span title="U+2177">&#x2177;&#x2177;&#x2177; &#x2167;&#x2177;&#x2177;</span> <span title="U+2178">&#x2178;&#x2178;&#x2178; &#x2168;&#x2178;&#x2178;</span> <span title="U+2179">&#x2179;&#x2179;&#x2179; &#x2169;&#x2179;&#x2179;</span> <span title="U+217A">&#x217A;&#x217A;&#x217A; &#x216A;&#x217A;&#x217A;</span> <span title="U+217B">&#x217B;&#x217B;&#x217B; &#x216B;&#x217B;&#x217B;</span> <span title="U+217C">&#x217C;&#x217C;&#x217C; &#x216C;&#x217C;&#x217C;</span> <span title="U+217D">&#x217D;&#x217D;&#x217D; &#x216D;&#x217D;&#x217D;</span> <span title="U+217E">&#x217E;&#x217E;&#x217E; &#x216E;&#x217E;&#x217E;</span> <span title="U+217F">&#x217F;&#x217F;&#x217F; &#x216F;&#x217F;&#x217F;</span> <span title="U+2184">&#x2184;&#x2184;&#x2184; &#x2183;&#x2184;&#x2184;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-026.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-026.html
new file mode 100644
index 0000000000..30e654c576
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-026.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Enclosed Alphanumerics</title>
+<meta name="assert" content="For the Enclosed Alphanumerics Unicode block, text-transform: capitalize does NOT put any character in titlecase.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-026-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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/text-transform-capitalize-028.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-028.html
new file mode 100644
index 0000000000..b274012eb9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-028.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Deseret</title>
+<meta name="assert" content="For the Deseret Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-028-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x10428;&#x10428;&#x10428; &#x10400;&#x10428;&#x10428;</span> <span title="U+10429">&#x10429;&#x10429;&#x10429; &#x10401;&#x10429;&#x10429;</span> <span title="U+1042A">&#x1042A;&#x1042A;&#x1042A; &#x10402;&#x1042A;&#x1042A;</span> <span title="U+1042B">&#x1042B;&#x1042B;&#x1042B; &#x10403;&#x1042B;&#x1042B;</span> <span title="U+1042C">&#x1042C;&#x1042C;&#x1042C; &#x10404;&#x1042C;&#x1042C;</span> <span title="U+1042D">&#x1042D;&#x1042D;&#x1042D; &#x10405;&#x1042D;&#x1042D;</span> <span title="U+1042E">&#x1042E;&#x1042E;&#x1042E; &#x10406;&#x1042E;&#x1042E;</span> <span title="U+1042F">&#x1042F;&#x1042F;&#x1042F; &#x10407;&#x1042F;&#x1042F;</span> <span title="U+10430">&#x10430;&#x10430;&#x10430; &#x10408;&#x10430;&#x10430;</span> <span title="U+10431">&#x10431;&#x10431;&#x10431; &#x10409;&#x10431;&#x10431;</span> <span title="U+10432">&#x10432;&#x10432;&#x10432; &#x1040A;&#x10432;&#x10432;</span> <span title="U+10433">&#x10433;&#x10433;&#x10433; &#x1040B;&#x10433;&#x10433;</span> <span title="U+10434">&#x10434;&#x10434;&#x10434; &#x1040C;&#x10434;&#x10434;</span> <span title="U+10435">&#x10435;&#x10435;&#x10435; &#x1040D;&#x10435;&#x10435;</span> <span title="U+10436">&#x10436;&#x10436;&#x10436; &#x1040E;&#x10436;&#x10436;</span> <span title="U+10437">&#x10437;&#x10437;&#x10437; &#x1040F;&#x10437;&#x10437;</span> <span title="U+10438">&#x10438;&#x10438;&#x10438; &#x10410;&#x10438;&#x10438;</span> <span title="U+10439">&#x10439;&#x10439;&#x10439; &#x10411;&#x10439;&#x10439;</span> <span title="U+1043A">&#x1043A;&#x1043A;&#x1043A; &#x10412;&#x1043A;&#x1043A;</span> <span title="U+1043B">&#x1043B;&#x1043B;&#x1043B; &#x10413;&#x1043B;&#x1043B;</span> <span title="U+1043C">&#x1043C;&#x1043C;&#x1043C; &#x10414;&#x1043C;&#x1043C;</span> <span title="U+1043D">&#x1043D;&#x1043D;&#x1043D; &#x10415;&#x1043D;&#x1043D;</span> <span title="U+1043E">&#x1043E;&#x1043E;&#x1043E; &#x10416;&#x1043E;&#x1043E;</span> <span title="U+1043F">&#x1043F;&#x1043F;&#x1043F; &#x10417;&#x1043F;&#x1043F;</span> <span title="U+10440">&#x10440;&#x10440;&#x10440; &#x10418;&#x10440;&#x10440;</span> <span title="U+10441">&#x10441;&#x10441;&#x10441; &#x10419;&#x10441;&#x10441;</span> <span title="U+10442">&#x10442;&#x10442;&#x10442; &#x1041A;&#x10442;&#x10442;</span> <span title="U+10443">&#x10443;&#x10443;&#x10443; &#x1041B;&#x10443;&#x10443;</span> <span title="U+10444">&#x10444;&#x10444;&#x10444; &#x1041C;&#x10444;&#x10444;</span> <span title="U+10445">&#x10445;&#x10445;&#x10445; &#x1041D;&#x10445;&#x10445;</span> <span title="U+10446">&#x10446;&#x10446;&#x10446; &#x1041E;&#x10446;&#x10446;</span> <span title="U+10447">&#x10447;&#x10447;&#x10447; &#x1041F;&#x10447;&#x10447;</span> <span title="U+10448">&#x10448;&#x10448;&#x10448; &#x10420;&#x10448;&#x10448;</span> <span title="U+10449">&#x10449;&#x10449;&#x10449; &#x10421;&#x10449;&#x10449;</span> <span title="U+1044A">&#x1044A;&#x1044A;&#x1044A; &#x10422;&#x1044A;&#x1044A;</span> <span title="U+1044B">&#x1044B;&#x1044B;&#x1044B; &#x10423;&#x1044B;&#x1044B;</span> <span title="U+1044C">&#x1044C;&#x1044C;&#x1044C; &#x10424;&#x1044C;&#x1044C;</span> <span title="U+1044D">&#x1044D;&#x1044D;&#x1044D; &#x10425;&#x1044D;&#x1044D;</span> <span title="U+1044E">&#x1044E;&#x1044E;&#x1044E; &#x10426;&#x1044E;&#x1044E;</span> <span title="U+1044F">&#x1044F;&#x1044F;&#x1044F; &#x10427;&#x1044F;&#x1044F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-030.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-030.html
new file mode 100644
index 0000000000..be2a7bb3f4
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-030.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Georgian Supplement</title>
+<meta name="assert" content="For the Georgian Supplement Unicode block, text-transform: capitalize puts the first typographic letter unit of each word in titlecase; other characters are unaffected.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-030-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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">&#x2D00;&#x2D00;&#x2D00; &#x10A0;&#x2D00;&#x2D00;</span> <span title="U+2D01">&#x2D01;&#x2D01;&#x2D01; &#x10A1;&#x2D01;&#x2D01;</span> <span title="U+2D02">&#x2D02;&#x2D02;&#x2D02; &#x10A2;&#x2D02;&#x2D02;</span> <span title="U+2D03">&#x2D03;&#x2D03;&#x2D03; &#x10A3;&#x2D03;&#x2D03;</span> <span title="U+2D04">&#x2D04;&#x2D04;&#x2D04; &#x10A4;&#x2D04;&#x2D04;</span> <span title="U+2D05">&#x2D05;&#x2D05;&#x2D05; &#x10A5;&#x2D05;&#x2D05;</span> <span title="U+2D06">&#x2D06;&#x2D06;&#x2D06; &#x10A6;&#x2D06;&#x2D06;</span> <span title="U+2D07">&#x2D07;&#x2D07;&#x2D07; &#x10A7;&#x2D07;&#x2D07;</span> <span title="U+2D08">&#x2D08;&#x2D08;&#x2D08; &#x10A8;&#x2D08;&#x2D08;</span> <span title="U+2D09">&#x2D09;&#x2D09;&#x2D09; &#x10A9;&#x2D09;&#x2D09;</span> <span title="U+2D0A">&#x2D0A;&#x2D0A;&#x2D0A; &#x10AA;&#x2D0A;&#x2D0A;</span> <span title="U+2D0B">&#x2D0B;&#x2D0B;&#x2D0B; &#x10AB;&#x2D0B;&#x2D0B;</span> <span title="U+2D0C">&#x2D0C;&#x2D0C;&#x2D0C; &#x10AC;&#x2D0C;&#x2D0C;</span> <span title="U+2D0D">&#x2D0D;&#x2D0D;&#x2D0D; &#x10AD;&#x2D0D;&#x2D0D;</span> <span title="U+2D0E">&#x2D0E;&#x2D0E;&#x2D0E; &#x10AE;&#x2D0E;&#x2D0E;</span> <span title="U+2D0F">&#x2D0F;&#x2D0F;&#x2D0F; &#x10AF;&#x2D0F;&#x2D0F;</span> <span title="U+2D10">&#x2D10;&#x2D10;&#x2D10; &#x10B0;&#x2D10;&#x2D10;</span> <span title="U+2D11">&#x2D11;&#x2D11;&#x2D11; &#x10B1;&#x2D11;&#x2D11;</span> <span title="U+2D12">&#x2D12;&#x2D12;&#x2D12; &#x10B2;&#x2D12;&#x2D12;</span> <span title="U+2D13">&#x2D13;&#x2D13;&#x2D13; &#x10B3;&#x2D13;&#x2D13;</span> <span title="U+2D14">&#x2D14;&#x2D14;&#x2D14; &#x10B4;&#x2D14;&#x2D14;</span> <span title="U+2D15">&#x2D15;&#x2D15;&#x2D15; &#x10B5;&#x2D15;&#x2D15;</span> <span title="U+2D16">&#x2D16;&#x2D16;&#x2D16; &#x10B6;&#x2D16;&#x2D16;</span> <span title="U+2D17">&#x2D17;&#x2D17;&#x2D17; &#x10B7;&#x2D17;&#x2D17;</span> <span title="U+2D18">&#x2D18;&#x2D18;&#x2D18; &#x10B8;&#x2D18;&#x2D18;</span> <span title="U+2D19">&#x2D19;&#x2D19;&#x2D19; &#x10B9;&#x2D19;&#x2D19;</span> <span title="U+2D1A">&#x2D1A;&#x2D1A;&#x2D1A; &#x10BA;&#x2D1A;&#x2D1A;</span> <span title="U+2D1B">&#x2D1B;&#x2D1B;&#x2D1B; &#x10BB;&#x2D1B;&#x2D1B;</span> <span title="U+2D1C">&#x2D1C;&#x2D1C;&#x2D1C; &#x10BC;&#x2D1C;&#x2D1C;</span> <span title="U+2D1D">&#x2D1D;&#x2D1D;&#x2D1D; &#x10BD;&#x2D1D;&#x2D1D;</span> <span title="U+2D1E">&#x2D1E;&#x2D1E;&#x2D1E; &#x10BE;&#x2D1E;&#x2D1E;</span> <span title="U+2D1F">&#x2D1F;&#x2D1F;&#x2D1F; &#x10BF;&#x2D1F;&#x2D1F;</span> <span title="U+2D20">&#x2D20;&#x2D20;&#x2D20; &#x10C0;&#x2D20;&#x2D20;</span> <span title="U+2D21">&#x2D21;&#x2D21;&#x2D21; &#x10C1;&#x2D21;&#x2D21;</span> <span title="U+2D22">&#x2D22;&#x2D22;&#x2D22; &#x10C2;&#x2D22;&#x2D22;</span> <span title="U+2D23">&#x2D23;&#x2D23;&#x2D23; &#x10C3;&#x2D23;&#x2D23;</span> <span title="U+2D24">&#x2D24;&#x2D24;&#x2D24; &#x10C4;&#x2D24;&#x2D24;</span> <span title="U+2D25">&#x2D25;&#x2D25;&#x2D25; &#x10C5;&#x2D25;&#x2D25;</span> <span title="U+2D27">&#x2D27;&#x2D27;&#x2D27; &#x10C7;&#x2D27;&#x2D27;</span> <span title="U+2D2D">&#x2D2D;&#x2D2D;&#x2D2D; &#x10CD;&#x2D2D;&#x2D2D;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-031.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-031.html
new file mode 100644
index 0000000000..3a5b5d1537
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-031.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, initial punctuation</title>
+<meta name="assert" content="text-transform: uppercase ignores characters that are not typographic letter units and capitalizes the first typographic letter unit in a word.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-capitalize-031-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize ; }
+</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/text-transform-capitalize-032.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-032.xht
new file mode 100644
index 0000000000..3a133933b0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-032.xht
@@ -0,0 +1,33 @@
+<?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</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <link rel="help" title="CSS Text Level 3: 3.1. Transforming Text: the ‘text-transform’ property" href="http://www.w3.org/TR/css-text-3/#text-transform" />
+ <link rel="match" href="reference/text-transform-capitalize-032-ref.xht"/>
+ <meta name="assert" content="The UA should put all words in titlecase when text-transform is set to capitalize." />
+ <style type="text/css">
+ <![CDATA[
+ .test span {
+ text-transform: capitalize;
+ }
+ /* the CSS below is not part of the test */
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div class="test">
+ <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/text-transform-capitalize-033-ref.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033-ref.html
new file mode 100644
index 0000000000..7bbacef735
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<title>CSS Test Reference</title>
+<p>
+ Should read "Pass" below
+</p>
+<p style="font-kerning: none">
+ Pass
+</p>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033.html
new file mode 100644
index 0000000000..7a764cdf68
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-capitalize-033.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>CSS Test: text-transform ignores out of flow</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<link rel="help" href="https://drafts.csswg.org/css-text/#propdef-text-transform">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=906369">
+<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=191807">
+<link rel="match" href="text-transform-capitalize-033-ref.html">
+<p>
+ Should read "Pass" below
+</p>
+<p style="text-transform: capitalize; font-kerning: none">
+ p<span style="position: absolute"></span>ass
+</p>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-copy-paste-001-manual.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-copy-paste-001-manual.html
new file mode 100644
index 0000000000..d80901cb2a
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-copy-paste-001-manual.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>CSS Text 3 test: effects of text-transform on plain text copy&paste</title>
+<link rel=author title="Florian Rivoal" href="https://florian.rivoal.net">
+<link rel=help href="https://drafts.csswg.org/css-text-3/#text-transform-property">
+<meta name=flags content="interact">
+<meta name=assert content="text-transform must not affect the content of a plain text copy and paste operation.">
+<!--
+I wish this test could be written automatedly, but I don't think it can.
+We can work around the fact that document.execCommand(‘copy’) only works when triggered by user interactions
+by using test_driver.bless,
+but even then there's no way to read the content of the clipboard in an automated way:
+* document.execCommand(‘paste’) isn't supported in regular web pages by anyone but IE
+* The Clipboard API is not supported across the board,
+ and Firefox only supports reading the clipboard in browser extensions,
+ not in regular web pages.
+-->
+<style>
+div {
+ text-transform: uppercase;
+ border: solid 5px blue;
+}
+textarea { border: solid 5px orange; }
+div, textarea { padding: 1em; }
+</style>
+
+<p>Copy the content of the blue box, then paste it in the orange box.
+<p>The test passes if the result is in lowercase.
+
+<div id=source>there is no need to shout</div>
+<textarea></textarea>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-001.html
new file mode 100644
index 0000000000..8c532ff723
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: Hiragana and text-transform: full-size-kana</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-full-size-kana">
+<link rel="match" href="reference/text-transform-full-size-kana-001-ref.html">
+<meta name="assert" content="small hiragana are transformed to normal hiragana by text-tranform: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>ぁ<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/text-transform-full-size-kana-002.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-002.html
new file mode 100644
index 0000000000..1aa03aa2f8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-002.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: Katakana and text-transform: full-size-kana</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-full-size-kana">
+<link rel="match" href="reference/text-transform-full-size-kana-002-ref.html">
+<meta name="assert" content="small katakana are transformed to normal katakana by text-tranform:full-size-kana (part 1)">
+<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>ァ<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/text-transform-full-size-kana-003.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-003.html
new file mode 100644
index 0000000000..49938c2185
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-003.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: Katakana and text-transform: full-size-kana</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-full-size-kana">
+<link rel="match" href="reference/text-transform-full-size-kana-003-ref.html">
+<meta name="assert" content="small katakana are transformed to normal katakana by text-tranform:full-size-kana (part 2)">
+<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>ㇵ<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/text-transform-full-size-kana-004.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-004.html
new file mode 100644
index 0000000000..1e6e690d73
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-004.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: half-width Katakana and text-transform: full-size-kana</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-full-size-kana">
+<link rel="match" href="reference/text-transform-full-size-kana-004-ref.html">
+<meta name="assert" content="small half-width katakana are transformed to normal half-width katakana by text-tranform: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>ァ<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/text-transform-full-size-kana-005.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-005.html
new file mode 100644
index 0000000000..32cadd3138
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-005.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 Text, text transform: full-size-kana, full-size kanas, hiragana</title>
+<meta name="assert" content="For full-size kanas, text-transform: full-size-kana leaves all kanas unaltered (testing the hiragana subset).">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-full-size-kana-005-ref.html">
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+/* the CSS above is not part of the test */
+.test { text-transform: full-size-kana; }
+</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><span class=test>&#x30FC;</span> &#x30FC;</span>
+ <span><span class=test>&#x3042;</span> &#x3042;</span>
+ <span><span class=test>&#x3044;</span> &#x3044;</span>
+ <span><span class=test>&#x3046;</span> &#x3046;</span>
+ <span><span class=test>&#x3048;</span> &#x3048;</span>
+ <span><span class=test>&#x304A;</span> &#x304A;</span>
+ <span><span class=test>&#x304B;</span> &#x304B;</span>
+ <span><span class=test>&#x304C;</span> &#x304C;</span>
+ <span><span class=test>&#x304D;</span> &#x304D;</span>
+ <span><span class=test>&#x304E;</span> &#x304E;</span>
+ <span><span class=test>&#x304F;</span> &#x304F;</span>
+ <span><span class=test>&#x3050;</span> &#x3050;</span>
+ <span><span class=test>&#x3051;</span> &#x3051;</span>
+ <span><span class=test>&#x3052;</span> &#x3052;</span>
+ <span><span class=test>&#x3053;</span> &#x3053;</span>
+ <span><span class=test>&#x3054;</span> &#x3054;</span>
+ <span><span class=test>&#x3055;</span> &#x3055;</span>
+ <span><span class=test>&#x3056;</span> &#x3056;</span>
+ <span><span class=test>&#x3057;</span> &#x3057;</span>
+ <span><span class=test>&#x3058;</span> &#x3058;</span>
+ <span><span class=test>&#x3059;</span> &#x3059;</span>
+ <span><span class=test>&#x305A;</span> &#x305A;</span>
+ <span><span class=test>&#x305B;</span> &#x305B;</span>
+ <span><span class=test>&#x305C;</span> &#x305C;</span>
+ <span><span class=test>&#x305D;</span> &#x305D;</span>
+ <span><span class=test>&#x305E;</span> &#x305E;</span>
+ <span><span class=test>&#x305F;</span> &#x305F;</span>
+ <span><span class=test>&#x3060;</span> &#x3060;</span>
+ <span><span class=test>&#x3061;</span> &#x3061;</span>
+ <span><span class=test>&#x3062;</span> &#x3062;</span>
+ <span><span class=test>&#x3064;</span> &#x3064;</span>
+ <span><span class=test>&#x3065;</span> &#x3065;</span>
+ <span><span class=test>&#x3066;</span> &#x3066;</span>
+ <span><span class=test>&#x3067;</span> &#x3067;</span>
+ <span><span class=test>&#x3068;</span> &#x3068;</span>
+ <span><span class=test>&#x3069;</span> &#x3069;</span>
+ <span><span class=test>&#x306A;</span> &#x306A;</span>
+ <span><span class=test>&#x306B;</span> &#x306B;</span>
+ <span><span class=test>&#x306C;</span> &#x306C;</span>
+ <span><span class=test>&#x306D;</span> &#x306D;</span>
+ <span><span class=test>&#x306E;</span> &#x306E;</span>
+ <span><span class=test>&#x306F;</span> &#x306F;</span>
+ <span><span class=test>&#x3070;</span> &#x3070;</span>
+ <span><span class=test>&#x3071;</span> &#x3071;</span>
+ <span><span class=test>&#x3072;</span> &#x3072;</span>
+ <span><span class=test>&#x3073;</span> &#x3073;</span>
+ <span><span class=test>&#x3074;</span> &#x3074;</span>
+ <span><span class=test>&#x3075;</span> &#x3075;</span>
+ <span><span class=test>&#x3076;</span> &#x3076;</span>
+ <span><span class=test>&#x3077;</span> &#x3077;</span>
+ <span><span class=test>&#x3078;</span> &#x3078;</span>
+ <span><span class=test>&#x3079;</span> &#x3079;</span>
+ <span><span class=test>&#x307A;</span> &#x307A;</span>
+ <span><span class=test>&#x307B;</span> &#x307B;</span>
+ <span><span class=test>&#x307C;</span> &#x307C;</span>
+ <span><span class=test>&#x307D;</span> &#x307D;</span>
+ <span><span class=test>&#x307E;</span> &#x307E;</span>
+ <span><span class=test>&#x307F;</span> &#x307F;</span>
+ <span><span class=test>&#x3080;</span> &#x3080;</span>
+ <span><span class=test>&#x3081;</span> &#x3081;</span>
+ <span><span class=test>&#x3082;</span> &#x3082;</span>
+ <span><span class=test>&#x3084;</span> &#x3084;</span>
+ <span><span class=test>&#x3086;</span> &#x3086;</span>
+ <span><span class=test>&#x3088;</span> &#x3088;</span>
+ <span><span class=test>&#x3089;</span> &#x3089;</span>
+ <span><span class=test>&#x308A;</span> &#x308A;</span>
+ <span><span class=test>&#x308B;</span> &#x308B;</span>
+ <span><span class=test>&#x308C;</span> &#x308C;</span>
+ <span><span class=test>&#x308D;</span> &#x308D;</span>
+ <span><span class=test>&#x308F;</span> &#x308F;</span>
+ <span><span class=test>&#x3090;</span> &#x3090;</span>
+ <span><span class=test>&#x3091;</span> &#x3091;</span>
+ <span><span class=test>&#x3092;</span> &#x3092;</span>
+ <span><span class=test>&#x3093;</span> &#x3093;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-006.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-006.html
new file mode 100644
index 0000000000..b9e3f19b4f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-006.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 Text, text transform: full-size-kana, full-size kanas, katakana</title>
+<meta name="assert" content="For full-size kanas, text-transform: full-size-kana leaves all kanas unaltered (testing the katakana subset).">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-full-size-kana-006-ref.html">
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+/* the CSS above is not part of the test */
+.test { text-transform: full-size-kana; }
+</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><span class=test>&#x30A2;</span> &#x30A2;</span>
+ <span><span class=test>&#x30A4;</span> &#x30A4;</span>
+ <span><span class=test>&#x30A6;</span> &#x30A6;</span>
+ <span><span class=test>&#x30A8;</span> &#x30A8;</span>
+ <span><span class=test>&#x30AA;</span> &#x30AA;</span>
+ <span><span class=test>&#x30AB;</span> &#x30AB;</span>
+ <span><span class=test>&#x30AC;</span> &#x30AC;</span>
+ <span><span class=test>&#x30AD;</span> &#x30AD;</span>
+ <span><span class=test>&#x30AE;</span> &#x30AE;</span>
+ <span><span class=test>&#x30AF;</span> &#x30AF;</span>
+ <span><span class=test>&#x30B0;</span> &#x30B0;</span>
+ <span><span class=test>&#x30B1;</span> &#x30B1;</span>
+ <span><span class=test>&#x30B2;</span> &#x30B2;</span>
+ <span><span class=test>&#x30B3;</span> &#x30B3;</span>
+ <span><span class=test>&#x30B4;</span> &#x30B4;</span>
+ <span><span class=test>&#x30B5;</span> &#x30B5;</span>
+ <span><span class=test>&#x30B6;</span> &#x30B6;</span>
+ <span><span class=test>&#x30B7;</span> &#x30B7;</span>
+ <span><span class=test>&#x30B8;</span> &#x30B8;</span>
+ <span><span class=test>&#x30B9;</span> &#x30B9;</span>
+ <span><span class=test>&#x30BA;</span> &#x30BA;</span>
+ <span><span class=test>&#x30BB;</span> &#x30BB;</span>
+ <span><span class=test>&#x30BC;</span> &#x30BC;</span>
+ <span><span class=test>&#x30BD;</span> &#x30BD;</span>
+ <span><span class=test>&#x30BE;</span> &#x30BE;</span>
+ <span><span class=test>&#x30BF;</span> &#x30BF;</span>
+ <span><span class=test>&#x30C0;</span> &#x30C0;</span>
+ <span><span class=test>&#x30C1;</span> &#x30C1;</span>
+ <span><span class=test>&#x30C2;</span> &#x30C2;</span>
+ <span><span class=test>&#x30C4;</span> &#x30C4;</span>
+ <span><span class=test>&#x30C5;</span> &#x30C5;</span>
+ <span><span class=test>&#x30C6;</span> &#x30C6;</span>
+ <span><span class=test>&#x30C7;</span> &#x30C7;</span>
+ <span><span class=test>&#x30C8;</span> &#x30C8;</span>
+ <span><span class=test>&#x30C9;</span> &#x30C9;</span>
+ <span><span class=test>&#x30CA;</span> &#x30CA;</span>
+ <span><span class=test>&#x30CB;</span> &#x30CB;</span>
+ <span><span class=test>&#x30CC;</span> &#x30CC;</span>
+ <span><span class=test>&#x30CD;</span> &#x30CD;</span>
+ <span><span class=test>&#x30CE;</span> &#x30CE;</span>
+ <span><span class=test>&#x30CF;</span> &#x30CF;</span>
+ <span><span class=test>&#x30D0;</span> &#x30D0;</span>
+ <span><span class=test>&#x30D1;</span> &#x30D1;</span>
+ <span><span class=test>&#x30D2;</span> &#x30D2;</span>
+ <span><span class=test>&#x30D3;</span> &#x30D3;</span>
+ <span><span class=test>&#x30D4;</span> &#x30D4;</span>
+ <span><span class=test>&#x30D5;</span> &#x30D5;</span>
+ <span><span class=test>&#x30D6;</span> &#x30D6;</span>
+ <span><span class=test>&#x30D7;</span> &#x30D7;</span>
+ <span><span class=test>&#x30D8;</span> &#x30D8;</span>
+ <span><span class=test>&#x30D9;</span> &#x30D9;</span>
+ <span><span class=test>&#x30DA;</span> &#x30DA;</span>
+ <span><span class=test>&#x30DB;</span> &#x30DB;</span>
+ <span><span class=test>&#x30DC;</span> &#x30DC;</span>
+ <span><span class=test>&#x30DD;</span> &#x30DD;</span>
+ <span><span class=test>&#x30DE;</span> &#x30DE;</span>
+ <span><span class=test>&#x30DF;</span> &#x30DF;</span>
+ <span><span class=test>&#x30E0;</span> &#x30E0;</span>
+ <span><span class=test>&#x30E1;</span> &#x30E1;</span>
+ <span><span class=test>&#x30E2;</span> &#x30E2;</span>
+ <span><span class=test>&#x30E4;</span> &#x30E4;</span>
+ <span><span class=test>&#x30E6;</span> &#x30E6;</span>
+ <span><span class=test>&#x30E8;</span> &#x30E8;</span>
+ <span><span class=test>&#x30E9;</span> &#x30E9;</span>
+ <span><span class=test>&#x30EA;</span> &#x30EA;</span>
+ <span><span class=test>&#x30EB;</span> &#x30EB;</span>
+ <span><span class=test>&#x30EC;</span> &#x30EC;</span>
+ <span><span class=test>&#x30ED;</span> &#x30ED;</span>
+ <span><span class=test>&#x30EF;</span> &#x30EF;</span>
+ <span><span class=test>&#x30F0;</span> &#x30F0;</span>
+ <span><span class=test>&#x30F1;</span> &#x30F1;</span>
+ <span><span class=test>&#x30F2;</span> &#x30F2;</span>
+ <span><span class=test>&#x30F3;</span> &#x30F3;</span>
+ <span><span class=test>&#x30F4;</span> &#x30F4;</span>
+ <span><span class=test>&#x309B;</span> &#x309B;</span>
+ <span><span class=test>&#x309C;</span> &#x309C;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-007.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-007.html
new file mode 100644
index 0000000000..5ea0105088
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-full-size-kana-007.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS3 Text, text transform: full-size-kana, full-size kanas, half-width katakana</title>
+<meta name="assert" content="For full-size kanas, text-transform: full-size-kana leaves all kanas unaltered (testing the half-wdith katakana subset).">
+<link rel='author' title='Diego Pino Garcia' href='mailto:dpino@igalia.com'>
+<link rel='author' title='Florian Rivoal' href='https://florian.rivoal.net'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-full-size-kana-007-ref.html">
+<style>
+div { font-size: 150%;}
+div > span { margin-right: 1em; white-space: nowrap; }
+/* the CSS above is not part of the test */
+.test { text-transform: full-size-kana; }
+</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><span class=test>&#xFF65;</span> &#xFF65;</span>
+ <span><span class=test>&#xFF66;</span> &#xFF66;</span>
+ <span><span class=test>&#xFF70;</span> &#xFF70;</span>
+ <span><span class=test>&#xFF71;</span> &#xFF71;</span>
+ <span><span class=test>&#xFF72;</span> &#xFF72;</span>
+ <span><span class=test>&#xFF73;</span> &#xFF73;</span>
+ <span><span class=test>&#xFF74;</span> &#xFF74;</span>
+ <span><span class=test>&#xFF75;</span> &#xFF75;</span>
+ <span><span class=test>&#xFF76;</span> &#xFF76;</span>
+ <span><span class=test>&#xFF77;</span> &#xFF77;</span>
+ <span><span class=test>&#xFF78;</span> &#xFF78;</span>
+ <span><span class=test>&#xFF79;</span> &#xFF79;</span>
+ <span><span class=test>&#xFF7A;</span> &#xFF7A;</span>
+ <span><span class=test>&#xFF7B;</span> &#xFF7B;</span>
+ <span><span class=test>&#xFF7C;</span> &#xFF7C;</span>
+ <span><span class=test>&#xFF7D;</span> &#xFF7D;</span>
+ <span><span class=test>&#xFF7E;</span> &#xFF7E;</span>
+ <span><span class=test>&#xFF7F;</span> &#xFF7F;</span>
+ <span><span class=test>&#xFF80;</span> &#xFF80;</span>
+ <span><span class=test>&#xFF81;</span> &#xFF81;</span>
+ <span><span class=test>&#xFF82;</span> &#xFF82;</span>
+ <span><span class=test>&#xFF83;</span> &#xFF83;</span>
+ <span><span class=test>&#xFF84;</span> &#xFF84;</span>
+ <span><span class=test>&#xFF85;</span> &#xFF85;</span>
+ <span><span class=test>&#xFF86;</span> &#xFF86;</span>
+ <span><span class=test>&#xFF87;</span> &#xFF87;</span>
+ <span><span class=test>&#xFF88;</span> &#xFF88;</span>
+ <span><span class=test>&#xFF89;</span> &#xFF89;</span>
+ <span><span class=test>&#xFF8A;</span> &#xFF8A;</span>
+ <span><span class=test>&#xFF8B;</span> &#xFF8B;</span>
+ <span><span class=test>&#xFF8C;</span> &#xFF8C;</span>
+ <span><span class=test>&#xFF8D;</span> &#xFF8D;</span>
+ <span><span class=test>&#xFF8E;</span> &#xFF8E;</span>
+ <span><span class=test>&#xFF8F;</span> &#xFF8F;</span>
+ <span><span class=test>&#xFF90;</span> &#xFF90;</span>
+ <span><span class=test>&#xFF91;</span> &#xFF91;</span>
+ <span><span class=test>&#xFF92;</span> &#xFF92;</span>
+ <span><span class=test>&#xFF93;</span> &#xFF93;</span>
+ <span><span class=test>&#xFF94;</span> &#xFF94;</span>
+ <span><span class=test>&#xFF95;</span> &#xFF95;</span>
+ <span><span class=test>&#xFF96;</span> &#xFF96;</span>
+ <span><span class=test>&#xFF97;</span> &#xFF97;</span>
+ <span><span class=test>&#xFF98;</span> &#xFF98;</span>
+ <span><span class=test>&#xFF99;</span> &#xFF99;</span>
+ <span><span class=test>&#xFF9A;</span> &#xFF9A;</span>
+ <span><span class=test>&#xFF9B;</span> &#xFF9B;</span>
+ <span><span class=test>&#xFF9C;</span> &#xFF9C;</span>
+ <span><span class=test>&#xFF9D;</span> &#xFF9D;</span>
+ <span><span class=test>&#xFF9E;</span> &#xFF9E;</span>
+ <span><span class=test>&#xFF9F;</span> &#xFF9F;</span>
+</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-001.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-001.xht
new file mode 100644
index 0000000000..355aace0a8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-001.xht
@@ -0,0 +1,316 @@
+<?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</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <link rel="reviewer" title="Koji Ishii" href="mailto:kojiishi@gluesoft.co.jp" />
+ <link rel="help" title="CSS Text Level 3: 3.1. Transforming Text: the ‘text-transform’ property" href="http://www.w3.org/TR/css-text-3/#text-transform" />
+ <link rel="match" href="reference/text-transform-fullwidth-001-ref.xht"/>
+ <meta name="assert" content="The UA should transform halfwidth character to fullwidth character when text-transform is set to fullwidth." />
+ <style type="text/css">
+ <![CDATA[
+ @font-face {
+ font-family: 'mplus-1p-regular';
+ src: url('/fonts/mplus-1p-regular.woff') format('woff');
+ }
+ .test span {
+ text-transform: full-width;
+ }
+ /* the CSS below is not part of the test */
+ span {
+ font-family: 'mplus-1p-regular';
+ background-color: cyan;
+ }
+ .test {
+ color: Blue;
+ line-height: 1.1;
+ }
+ .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>&quot;</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>&amp;</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>&lt;</span></div>
+ <div><span>=</span><br /><span>=</span></div>
+ <div><span>></span><br /><span>&gt;</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;゙</span></div>
+ <div><span>&nbsp;&#x309A;</span><br /><span>&nbsp;゚</span></div>
+
+ <!-- HALFWIDTH HANGUL -->
+ <div>[<span>&#x115F;</span>]<br />[<span>&#xFFA0;</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/text-transform-fullwidth-002-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002-ref.xht
new file mode 100644
index 0000000000..157a06d23b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002-ref.xht
@@ -0,0 +1,51 @@
+<!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 Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+
+
+ <meta name="DC.date.created" content="2017-01-11T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-01-12T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ font-size: 32px;
+ writing-mode: vertical-rl;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if the "Text sample" characters are translated upright and not rotated toward the righthand side.</p>
+
+ <div>&#xFF34;&#xFF45;&#xFF58;&#xFF54;&#x3000;&#xFF53;&#xFF41;&#xFF4D;&#xFF50;&#xFF4C;&#xFF45;</div>
+
+ <!--
+ T = U+FF34 is the FULLWIDTH LATIN CAPITAL LETTER T
+ e = U+FF45 is the FULLWIDTH LATIN SMALL LETTER E
+ x = U+FF58 is the FULLWIDTH LATIN SMALL LETTER X
+ t = U+FF54 is the FULLWIDTH LATIN SMALL LETTER T
+
+ U+3000 is the fullwidth space character
+
+ s = U+FF53 is the FULLWIDTH LATIN SMALL LETTER S
+ a = U+FF41 is the FULLWIDTH LATIN SMALL LETTER A
+ m = U+FF4D is the FULLWIDTH LATIN SMALL LETTER M
+ p = U+FF50 is the FULLWIDTH LATIN SMALL LETTER P
+ l = U+FF4C is the FULLWIDTH LATIN SMALL LETTER L
+ e = U+FF45 is the FULLWIDTH LATIN SMALL LETTER E
+
+ Halfwidth and Fullwidth Forms
+ Range: FF00–FFEF
+ http://www.unicode.org/charts/PDF/UFF00.pdf
+ -->
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002.xht
new file mode 100644
index 0000000000..f0d419e463
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-002.xht
@@ -0,0 +1,36 @@
+<!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 Text Test: text-transform: full-width (basic)</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform" title="2.1 Case Transforms: the 'text-transform' property" />
+ <link rel="help" href="https://www.w3.org/TR/css-writing-modes-3/#text-combine-fullwidth" title="9.1.3.1 Full-width Characters" />
+ <link rel="match" href="text-transform-fullwidth-002-ref.xht" />
+
+ <meta content="This test checks basic support of 'text-transform: full-width' in a vertical writing context. Since full-width Latin characters are typeset upright, then the characters of the text sample of this test should not be rotated toward the right but should be upright." name="assert" />
+
+ <meta name="DC.date.created" content="2017-01-11T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-01-12T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ font-size: 32px;
+ text-transform: full-width;
+ writing-mode: vertical-rl;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if the "Text sample" characters are translated upright and not rotated toward the righthand side.</p>
+
+ <div>Text sample</div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004-ref.xht
new file mode 100644
index 0000000000..d855d294e7
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004-ref.xht
@@ -0,0 +1,42 @@
+<!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 Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+
+
+ <meta name="DC.date.created" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ writing-mode: vertical-rl;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if both "6" glyphs have <strong>identical</strong> layout and orientation.</p>
+
+ <div>
+
+ <h1>&#65302;月</h1>
+
+ <h1>&#65302;月</h1>
+
+ <!--
+ 6 == &#65302; or &xFF16; or U+FF16 is the FULLWIDTH DIGIT 6 (≈ <wide> 0036 6)
+ In the Halfwidth and Fullwidth Forms range:
+ http://unicode.org/charts/PDF/UFF00.pdf
+ -->
+
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004.xht
new file mode 100644
index 0000000000..2bf1b8cc49
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-004.xht
@@ -0,0 +1,53 @@
+<!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 Text Test: text-transform: full-width with 1 single digit (basic)</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform" title="2.1 Case Transforms: the 'text-transform' property" />
+ <link rel="help" href="https://www.w3.org/TR/css-writing-modes-3/#text-combine-fullwidth" title="9.1.3.1 Full-width Characters" />
+ <link rel="match" href="text-transform-fullwidth-004-ref.xht" />
+
+ <meta content="This test checks basic support of 'text-transform: full-width' in a vertical writing context. Since full-width digit characters are typeset upright, then the single digit character in the text sample should not be rotated toward the right but should be upright." name="assert" />
+
+ <meta name="DC.date.created" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-02-18T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ writing-mode: vertical-rl;
+ }
+
+ span
+ {
+ text-transform: full-width;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if both "6" glyphs have <strong>identical</strong> layout and orientation.</p>
+
+ <div>
+
+ <h1 id="test"><span>&#54;</span>月</h1>
+
+ <!-- 6 == &#54; or &x36; or U+0036 In the basic latin range: ASCII Digit 6 -->
+
+ <h1 id="reference">&#65302;月</h1>
+
+ <!--
+ 6 == &#65302; or &xFF16; or U+FF16 is the FULLWIDTH DIGIT 6 (≈ <wide> 0036 6)
+ In the Halfwidth and Fullwidth Forms range:
+ http://unicode.org/charts/PDF/UFF00.pdf
+ -->
+
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005-ref.xht
new file mode 100644
index 0000000000..0c8e9ea343
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005-ref.xht
@@ -0,0 +1,43 @@
+<!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 Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+
+
+ <meta name="DC.date.created" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ writing-mode: vertical-rl;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if both pairs of "23" glyphs have <strong>identical</strong> layout and orientation.</p>
+
+ <div>
+
+ <h1>&#65298;&#65299;日</h1>
+
+ <h1>&#65298;&#65299;日</h1>
+
+ <!--
+ 2 == &#65298; or &xFF12; or U+FF12 is the FULLWIDTH DIGIT 2 (≈ <wide> 0032 2)
+ 3 == &#65299; or &xFF13; or U+FF13 is the FULLWIDTH DIGIT 3 (≈ <wide> 0033 3)
+ In the Halfwidth and Fullwidth Forms range:
+ http://unicode.org/charts/PDF/UFF00.pdf
+ -->
+
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005.xht
new file mode 100644
index 0000000000..546cac2035
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-005.xht
@@ -0,0 +1,56 @@
+<!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 Text Test: text-transform: full-width with 2 digits (basic)</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform" title="2.1 Case Transforms: the 'text-transform' property" />
+ <link rel="help" href="https://www.w3.org/TR/css-writing-modes-3/#text-combine-fullwidth" title="9.1.3.1 Full-width Characters" />
+ <link rel="match" href="text-transform-fullwidth-005-ref.xht" />
+
+ <meta content="This test checks basic support of 'text-transform: full-width' in a vertical writing context. Since full-width digit characters are typeset upright, then both digit characters in the text sample should not be rotated toward the right but should be upright. This is furthermore the case since, in this test, there is no 'text-combine-upright' in effect or applying to such pair of digits." name="assert" />
+
+ <meta name="DC.date.created" content="2017-01-26T09:54:03+11:00" scheme="W3CDTF" />
+ <meta name="DC.date.modified" content="2017-02-18T09:54:03+11:00" scheme="W3CDTF" />
+
+ <style type="text/css"><![CDATA[
+ div
+ {
+ writing-mode: vertical-rl;
+ }
+
+ span
+ {
+ text-transform: full-width;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if both pairs of "23" glyphs have <strong>identical</strong> layout and orientation.</p>
+
+ <div>
+
+ <h1 id="test"><span>&#50;&#51;</span>日</h1>
+
+ <!-- &#50; or &#x32; or U+0032 In the basic latin range: ASCII Digit 2 -->
+
+ <!-- &#51; or &#x33; or U+0033 In the basic latin range: ASCII Digit 3 -->
+
+ <h1 id="reference">&#65298;&#65299;日</h1>
+
+ <!--
+ 2 == &#65298; or &xFF12; or U+FF12 is the FULLWIDTH DIGIT 2 (≈ <wide> 0032 2)
+ 3 == &#65299; or &xFF13; or U+FF13 is the FULLWIDTH DIGIT 3 (≈ <wide> 0033 3)
+ In the Halfwidth and Fullwidth Forms range:
+ http://unicode.org/charts/PDF/UFF00.pdf
+ -->
+
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-006.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-006.html
new file mode 100644
index 0000000000..0bd0aa8840
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-006.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:fullwidth and collapsed spaces</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="match" href="reference/text-transform-fullwidth-006-ref.html">
+<meta name="assert" content="full-width does not transform collapsed U+0020 spaces to U+3000, only the remaining one after collapsing.">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div { font: 50px/1 Ahem; }
+#test {
+ color: green;
+}
+span {
+ text-transform: full-width;
+}
+#ref {
+ color: red;
+ position: absolute;
+ z-index: -1;
+}
+</style>
+
+<p>Test passes if there are two green squares and no red.
+<div id=ref>x&#x3000;x</div>
+<div id=test>x<span> </span>x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-007.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-007.html
new file mode 100644
index 0000000000..f1089f19ab
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-007.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:fullwidth and preserved spaces</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="match" href="reference/text-transform-fullwidth-007-ref.html">
+<meta name="assert" content="full-width does transforms U+0020 spaces to U+3000 within preserved white space.">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div { font: 50px/1 Ahem; }
+#test {
+ color: green;
+ white-space: pre-wrap;
+}
+span {
+ text-transform: full-width;
+}
+#ref {
+ color: red;
+ position: absolute;
+ z-index: -1;
+}
+</style>
+
+<p>Test passes if there are two green squares and no red.
+<div id=ref>x&#x3000;&#x3000;&#x3000;x</div>
+<div id=test>x<span> </span>x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-008.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-008.html
new file mode 100644
index 0000000000..d6cd9c4c98
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-008.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:fullwidth and trailing spaces</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
+<link rel="match" href="reference/text-transform-fullwidth-008-ref.html">
+<meta name="assert" content="full-width does transforms U+0020 spaces to U+3000 after phase 1, but before phase 2, so that end-of-line transformed spaces get the same treatment as natural ones: hang when white-space is normal.">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 20px/1 Ahem;
+ margin: 1em 0;
+}
+.pre {
+ white-space: pre;
+}
+#test, #ref {
+ width: 2em;
+ text-align: right;
+}
+span {
+ text-transform: full-width;
+}
+#test2, #ref2 {
+ width: min-content;
+ margin-left: 1em;
+ background: black;
+}
+</style>
+
+<p>Test passes if all black boxes below have the same width and height and are aligned vertically.
+<div class=pre> x<br> x</div>
+<div id=ref>x&#x3000;x</div>
+<div id=test>x<span> </span>x</div>
+<div id=ref2>x&#x3000;x</div>
+<div id=test2>x<span> </span>x</div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-009.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-009.html
new file mode 100644
index 0000000000..afcb89b0cf
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-fullwidth-009.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:fullwidth and trailing spaces, with pre-wrap</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
+<link rel="match" href="reference/text-transform-fullwidth-009-ref.html">
+<meta name="assert" content="full-width does transforms U+0020 spaces to U+3000 after phase 1, but before phase 2, so that end-of-line transformed spaces get the same treatment as natural ones: hang at the end of soft-wrapped lines, and conditionally hang before forced breaks when white-space is pre-wrap.">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+div {
+ font: 10px/1 Ahem;
+ margin: 1em 0;
+}
+.pre {
+ white-space: pre;
+}
+#test, #ref,
+#test3, #ref3 {
+ width: 2em;
+ text-align: right;
+ white-space: pre-wrap;
+}
+#test3, #ref3 {
+ margin-left: 1em;
+}
+span {
+ text-transform: full-width;
+}
+#test2, #ref2,
+#test4, #ref4 {
+ width: min-content;
+ margin-left: 1em;
+ white-space: pre-wrap;
+ background: black;
+}
+</style>
+
+<p>Test passes if all black boxes below have the same width and height and are aligned vertically.
+<div class=pre> x<br> x</div>
+<div id=ref>x&#x3000;x</div>
+<div id=test>x<span> </span>x</div>
+<div id=ref2>x&#x3000;x</div>
+<div id=test2>x<span> </span>x</div>
+
+<div id=ref3>x&#x3000;<br>x&#x3000;</div>
+<div id=test3>x<span> </span><br>x<span> </span></div>
+<div id=ref4>x&#x3000;<br>x&#x3000;</div>
+<div id=test4>x<span> </span><br>x<span> </span></div>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-101.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-101.xht
new file mode 100644
index 0000000000..e3b2faf66b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-101.xht
@@ -0,0 +1,33 @@
+<?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</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <link rel="help" title="CSS Text Level 3: 3.1. Transforming Text: the ‘text-transform’ property" href="http://www.w3.org/TR/css-text-3/#text-transform" />
+ <link rel="match" href="reference/text-transform-lowercase-101-ref.xht"/>
+ <meta name="assert" content="The UA should put all characters in lowercase when text-transform is set to lowercase." />
+ <style type="text/css">
+ <![CDATA[
+ .test span {
+ text-transform: lowercase;
+ }
+ /* the CSS below is not part of the test */
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div class="test">
+ <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/text-transform-lowercase-102-ref.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102-ref.xht
new file mode 100644
index 0000000000..f6da9069cd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102-ref.xht
@@ -0,0 +1,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>
+ <link rel="author" title="Anthony Ramine" href="mailto:n.oxyde@gmail.com"/>
+ </head><body>
+ <span lang="en" style="font-size:32px">i&#775;i</span>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102.xht
new file mode 100644
index 0000000000..729c1246ce
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-lowercase-102.xht
@@ -0,0 +1,10 @@
+<!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" lang="en">
+ <head>
+ <title>CSS Test: text-transform I with dot above</title>
+ <link rel="author" title="Anthony Ramine" href="mailto:n.oxyde@gmail.com"/>
+ <link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-text-transform-lowercase"/>
+ <link rel="match" href="text-transform-lowercase-102-ref.xht"/>
+ <meta name="assert" content="Tests that U+0130 to lowercase includes U+0307"/>
+ </head><body>
+ <span lang="en" style="font-size:32px;text-transform:lowercase">&#304;I</span>
+</body></html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-multiple-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-multiple-001.html
new file mode 100644
index 0000000000..946aa9c93d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-multiple-001.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="ja">
+<meta charset=utf-8>
+<title>text-transform with multiple values</title>
+<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
+<link rel=match href="reference/text-transform-multiple-001-ref.html">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-transform-property">
+<meta name="assert" content="case transforms can be combined with full-width and/or full-size-kana transforms">
+<body style="font-family:serif">
+<h4>Each pair of lines should look identical:</h4>
+<hr>
+<div style="text-transform:uppercase full-width">HELLO Transformed world</div>
+<div>HELLO TRANSFORMED WORLD</div>
+<hr>
+<div style="text-transform:lowercase full-width">HELLO Transformed world</div>
+<div>hello transformed world</div>
+<hr>
+<div style="text-transform:capitalize full-width">HELLO Transformed world</div>
+<div>HELLO Transformed World</div>
+<hr>
+<div style="text-transform:uppercase full-size-kana">Katakana: ァィゥェォヵㇰヶㇱㇲッㇳㇴ</div>
+<div>KATAKANA: アイウエオカクケシスツトヌ</div>
+<hr>
+<div style="text-transform:full-width full-size-kana lowercase">Hiragana: ぁぃぅぇぉゕゖっゃゅょゎ</div>
+<div>hiragana: あいうえおかけつやゆよわ</div>
+<hr>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-none-001.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-none-001.xht
new file mode 100644
index 0000000000..81214e9a54
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-none-001.xht
@@ -0,0 +1,33 @@
+<?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</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <link rel="help" title="CSS Text Level 3: 3.1. Transforming Text: the ‘text-transform’ property" href="http://www.w3.org/TR/css-text-3/#text-transform" />
+ <link rel="match" href="reference/text-transform-none-001-ref.xht"/>
+ <meta name="assert" content="The UA should do nothing when text-transform is set to none." />
+ <style type="text/css">
+ <![CDATA[
+ .test span {
+ text-transform: none;
+ }
+ /* the CSS below is not part of the test */
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div class="test">
+ <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/text-transform-shaping-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-001.html
new file mode 100644
index 0000000000..fa0a04cd22
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:capitalize and text-shaping</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#boundary-shaping">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="match" href="reference/text-transform-shaping-001-ref.html">
+<meta name="assert" content="Text shaping must not be broken across inline box boundaries when there is no change in formatting. Arabic is not a bicameral script, so text-transform:capitalize has no effect, and should not affect shaping.">
+<style>
+ div { font-size: 4em; }
+ div:last-of-type::first-letter { text-transform: capitalize; }
+ body {
+ /* Optional bit, just to avoid the arabic strings being too far off to the right,
+ which makes them harder to notice if you're going through a lot of tests
+ and not paying all that much attention. */
+ 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/text-transform-shaping-002.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-002.html
new file mode 100644
index 0000000000..6245135e04
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:uppercase and text-shaping</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#boundary-shaping">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="match" href="reference/text-transform-shaping-001-ref.html">
+<meta name="assert" content="Text shaping must not be broken across inline box boundaries when there is no change in formatting. Arabic is not a bicameral script, so text-transform:uppercase has no effect, and should not affect shaping.">
+<style>
+ div { font-size: 4em; }
+ div:last-of-type::first-letter { text-transform: uppercase; }
+ body {
+ /* Optional bit, just to avoid the arabic strings being too far off to the right,
+ which makes them harder to notice if you're going through a lot of tests
+ and not paying all that much attention. */
+ 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/text-transform-shaping-003.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-003.html
new file mode 100644
index 0000000000..54650a9f19
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-shaping-003.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text level 3 Test: text-transform:lowercase and text-shaping</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#boundary-shaping">
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#text-transform-property">
+<link rel="match" href="reference/text-transform-shaping-001-ref.html">
+<meta name="assert" content="Text shaping must not be broken across inline box boundaries when there is no change in formatting. Arabic is not a bicameral script, so text-transform:lowercase has no effect, and should not affect shaping.">
+<style>
+ div { font-size: 4em; }
+ div:last-of-type::first-letter { text-transform: lowercase; }
+ body {
+ /* Optional bit, just to avoid the arabic strings being too far off to the right,
+ which makes them harder to notice if you're going through a lot of tests
+ and not paying all that much attention. */
+ 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/text-transform-tailoring-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-001.html
new file mode 100644
index 0000000000..6cc2cdf345
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Dutch IJ</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: capitalize to put both I and J in titlecase at the start of a word when the language is Dutch.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-001-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize; }
+</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/text-transform-tailoring-002.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002.html
new file mode 100644
index 0000000000..090ed9349c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek tonos</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: uppercase such that Greek words that are all uppercase lose tonos.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-002-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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/text-transform-tailoring-002a.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002a.html
new file mode 100644
index 0000000000..5cdbbfb832
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-002a.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek dialytika</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: uppercase such that Greek words that are all uppercase lose tonos, but not dialytika.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-002a-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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/text-transform-tailoring-003.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-003.html
new file mode 100644
index 0000000000..37409e0a21
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-003.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, more Greek accents</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: uppercase such that Greek words that are all uppercase convert tonos plus dialytika to just dialytika, and convert diphthongs with tonos on the first character to a dialytika on the second character.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-003-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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/text-transform-tailoring-004.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-004.html
new file mode 100644
index 0000000000..2d66c34cbe
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-004.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: capitalize, Greek initial stress</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: capitalize such that a stressed vowel that is the first syllable of a Greek sentence keeps its tonos diacritic.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-004-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: capitalize ; }
+</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/text-transform-tailoring-005.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-005.html
new file mode 100644
index 0000000000..5dea8f9139
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-tailoring-005.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: uppercase, Greek disjunctive eta</title>
+<meta name="assert" content="[Exploratory] the brower tailors text-transform: uppercase such that a disjunctive eta in a Greek sentence keeps its tonos diacritic.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-tailoring-005-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase ; }
+</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/text-transform-uppercase-101.xht b/testing/web-platform/tests/css/css-text/text-transform/text-transform-uppercase-101.xht
new file mode 100644
index 0000000000..ffe3715a5e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-uppercase-101.xht
@@ -0,0 +1,33 @@
+<?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</title>
+ <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
+ <link rel="help" title="CSS Text Level 3: 3.1. Transforming Text: the ‘text-transform’ property" href="http://www.w3.org/TR/css-text-3/#text-transform" />
+ <link rel="match" href="reference/text-transform-uppercase-101-ref.xht"/>
+ <meta name="assert" content="The UA should put all characters in uppercase when text-transform is set to uppercase." />
+ <style type="text/css">
+ <![CDATA[
+ .test span {
+ text-transform: uppercase;
+ }
+ /* the CSS below is not part of the test */
+ span {
+ color: Blue;
+ }
+ ]]>
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if the first sentence matches the second one.
+ </p>
+ <div class="test">
+ <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/text-transform-upperlower-001.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-001.html
new file mode 100644
index 0000000000..0174f0c811
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-001.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Basic and Latin-1 uppercase</title>
+<meta name="assert" content="For the Latin Basic and Latin-1 blocks, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-001-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x00B5; &#x039C;</span> <span title="U+00E0">&#x00E0; &#x00C0;</span> <span title="U+00E1">&#x00E1; &#x00C1;</span> <span title="U+00E2">&#x00E2; &#x00C2;</span> <span title="U+00E3">&#x00E3; &#x00C3;</span> <span title="U+00E4">&#x00E4; &#x00C4;</span> <span title="U+00E5">&#x00E5; &#x00C5;</span> <span title="U+00E6">&#x00E6; &#x00C6;</span> <span title="U+00E7">&#x00E7; &#x00C7;</span> <span title="U+00E8">&#x00E8; &#x00C8;</span> <span title="U+00E9">&#x00E9; &#x00C9;</span> <span title="U+00EA">&#x00EA; &#x00CA;</span> <span title="U+00EB">&#x00EB; &#x00CB;</span> <span title="U+00EC">&#x00EC; &#x00CC;</span> <span title="U+00ED">&#x00ED; &#x00CD;</span> <span title="U+00EE">&#x00EE; &#x00CE;</span> <span title="U+00EF">&#x00EF; &#x00CF;</span> <span title="U+00F0">&#x00F0; &#x00D0;</span> <span title="U+00F1">&#x00F1; &#x00D1;</span> <span title="U+00F2">&#x00F2; &#x00D2;</span> <span title="U+00F3">&#x00F3; &#x00D3;</span> <span title="U+00F4">&#x00F4; &#x00D4;</span> <span title="U+00F5">&#x00F5; &#x00D5;</span> <span title="U+00F6">&#x00F6; &#x00D6;</span> <span title="U+00F8">&#x00F8; &#x00D8;</span> <span title="U+00F9">&#x00F9; &#x00D9;</span> <span title="U+00FA">&#x00FA; &#x00DA;</span> <span title="U+00FB">&#x00FB; &#x00DB;</span> <span title="U+00FC">&#x00FC; &#x00DC;</span> <span title="U+00FD">&#x00FD; &#x00DD;</span> <span title="U+00FE">&#x00FE; &#x00DE;</span> <span title="U+00FF">&#x00FF; &#x0178;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-002.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-002.html
new file mode 100644
index 0000000000..77ec3d4f9f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-002.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Basic and Latin-1 lowercase</title>
+<meta name="assert" content="For the Latin Basic and Latin-1 blocks, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-002-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x00C0; &#x00E0;</span> <span title="U+00C1">&#x00C1; &#x00E1;</span> <span title="U+00C2">&#x00C2; &#x00E2;</span> <span title="U+00C3">&#x00C3; &#x00E3;</span> <span title="U+00C4">&#x00C4; &#x00E4;</span> <span title="U+00C5">&#x00C5; &#x00E5;</span> <span title="U+00C6">&#x00C6; &#x00E6;</span> <span title="U+00C7">&#x00C7; &#x00E7;</span> <span title="U+00C8">&#x00C8; &#x00E8;</span> <span title="U+00C9">&#x00C9; &#x00E9;</span> <span title="U+00CA">&#x00CA; &#x00EA;</span> <span title="U+00CB">&#x00CB; &#x00EB;</span> <span title="U+00CC">&#x00CC; &#x00EC;</span> <span title="U+00CD">&#x00CD; &#x00ED;</span> <span title="U+00CE">&#x00CE; &#x00EE;</span> <span title="U+00CF">&#x00CF; &#x00EF;</span> <span title="U+00D0">&#x00D0; &#x00F0;</span> <span title="U+00D1">&#x00D1; &#x00F1;</span> <span title="U+00D2">&#x00D2; &#x00F2;</span> <span title="U+00D3">&#x00D3; &#x00F3;</span> <span title="U+00D4">&#x00D4; &#x00F4;</span> <span title="U+00D5">&#x00D5; &#x00F5;</span> <span title="U+00D6">&#x00D6; &#x00F6;</span> <span title="U+00D8">&#x00D8; &#x00F8;</span> <span title="U+00D9">&#x00D9; &#x00F9;</span> <span title="U+00DA">&#x00DA; &#x00FA;</span> <span title="U+00DB">&#x00DB; &#x00FB;</span> <span title="U+00DC">&#x00DC; &#x00FC;</span> <span title="U+00DD">&#x00DD; &#x00FD;</span> <span title="U+00DE">&#x00DE; &#x00FE;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-003.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-003.html
new file mode 100644
index 0000000000..a0381452bc
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-003.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended Additional, uppercase</title>
+<meta name="assert" content="For the Latin Extended Additional Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-003-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x1E01; &#x1E00;</span> <span title="U+1E03">&#x1E03; &#x1E02;</span> <span title="U+1E05">&#x1E05; &#x1E04;</span> <span title="U+1E07">&#x1E07; &#x1E06;</span> <span title="U+1E09">&#x1E09; &#x1E08;</span> <span title="U+1E0B">&#x1E0B; &#x1E0A;</span> <span title="U+1E0D">&#x1E0D; &#x1E0C;</span> <span title="U+1E0F">&#x1E0F; &#x1E0E;</span> <span title="U+1E11">&#x1E11; &#x1E10;</span> <span title="U+1E13">&#x1E13; &#x1E12;</span> <span title="U+1E15">&#x1E15; &#x1E14;</span> <span title="U+1E17">&#x1E17; &#x1E16;</span> <span title="U+1E19">&#x1E19; &#x1E18;</span> <span title="U+1E1B">&#x1E1B; &#x1E1A;</span> <span title="U+1E1D">&#x1E1D; &#x1E1C;</span> <span title="U+1E1F">&#x1E1F; &#x1E1E;</span> <span title="U+1E21">&#x1E21; &#x1E20;</span> <span title="U+1E23">&#x1E23; &#x1E22;</span> <span title="U+1E25">&#x1E25; &#x1E24;</span> <span title="U+1E27">&#x1E27; &#x1E26;</span> <span title="U+1E29">&#x1E29; &#x1E28;</span> <span title="U+1E2B">&#x1E2B; &#x1E2A;</span> <span title="U+1E2D">&#x1E2D; &#x1E2C;</span> <span title="U+1E2F">&#x1E2F; &#x1E2E;</span> <span title="U+1E31">&#x1E31; &#x1E30;</span> <span title="U+1E33">&#x1E33; &#x1E32;</span> <span title="U+1E35">&#x1E35; &#x1E34;</span> <span title="U+1E37">&#x1E37; &#x1E36;</span> <span title="U+1E39">&#x1E39; &#x1E38;</span> <span title="U+1E3B">&#x1E3B; &#x1E3A;</span> <span title="U+1E3D">&#x1E3D; &#x1E3C;</span> <span title="U+1E3F">&#x1E3F; &#x1E3E;</span> <span title="U+1E41">&#x1E41; &#x1E40;</span> <span title="U+1E43">&#x1E43; &#x1E42;</span> <span title="U+1E45">&#x1E45; &#x1E44;</span> <span title="U+1E47">&#x1E47; &#x1E46;</span> <span title="U+1E49">&#x1E49; &#x1E48;</span> <span title="U+1E4B">&#x1E4B; &#x1E4A;</span> <span title="U+1E4D">&#x1E4D; &#x1E4C;</span> <span title="U+1E4F">&#x1E4F; &#x1E4E;</span> <span title="U+1E51">&#x1E51; &#x1E50;</span> <span title="U+1E53">&#x1E53; &#x1E52;</span> <span title="U+1E55">&#x1E55; &#x1E54;</span> <span title="U+1E57">&#x1E57; &#x1E56;</span> <span title="U+1E59">&#x1E59; &#x1E58;</span> <span title="U+1E5B">&#x1E5B; &#x1E5A;</span> <span title="U+1E5D">&#x1E5D; &#x1E5C;</span> <span title="U+1E5F">&#x1E5F; &#x1E5E;</span> <span title="U+1E61">&#x1E61; &#x1E60;</span> <span title="U+1E63">&#x1E63; &#x1E62;</span> <span title="U+1E65">&#x1E65; &#x1E64;</span> <span title="U+1E67">&#x1E67; &#x1E66;</span> <span title="U+1E69">&#x1E69; &#x1E68;</span> <span title="U+1E6B">&#x1E6B; &#x1E6A;</span> <span title="U+1E6D">&#x1E6D; &#x1E6C;</span> <span title="U+1E6F">&#x1E6F; &#x1E6E;</span> <span title="U+1E71">&#x1E71; &#x1E70;</span> <span title="U+1E73">&#x1E73; &#x1E72;</span> <span title="U+1E75">&#x1E75; &#x1E74;</span> <span title="U+1E77">&#x1E77; &#x1E76;</span> <span title="U+1E79">&#x1E79; &#x1E78;</span> <span title="U+1E7B">&#x1E7B; &#x1E7A;</span> <span title="U+1E7D">&#x1E7D; &#x1E7C;</span> <span title="U+1E7F">&#x1E7F; &#x1E7E;</span> <span title="U+1E81">&#x1E81; &#x1E80;</span> <span title="U+1E83">&#x1E83; &#x1E82;</span> <span title="U+1E85">&#x1E85; &#x1E84;</span> <span title="U+1E87">&#x1E87; &#x1E86;</span> <span title="U+1E89">&#x1E89; &#x1E88;</span> <span title="U+1E8B">&#x1E8B; &#x1E8A;</span> <span title="U+1E8D">&#x1E8D; &#x1E8C;</span> <span title="U+1E8F">&#x1E8F; &#x1E8E;</span> <span title="U+1E91">&#x1E91; &#x1E90;</span> <span title="U+1E93">&#x1E93; &#x1E92;</span> <span title="U+1E95">&#x1E95; &#x1E94;</span> <span title="U+1E9B">&#x1E9B; &#x1E60;</span> <span title="U+1EA1">&#x1EA1; &#x1EA0;</span> <span title="U+1EA3">&#x1EA3; &#x1EA2;</span> <span title="U+1EA5">&#x1EA5; &#x1EA4;</span> <span title="U+1EA7">&#x1EA7; &#x1EA6;</span> <span title="U+1EA9">&#x1EA9; &#x1EA8;</span> <span title="U+1EAB">&#x1EAB; &#x1EAA;</span> <span title="U+1EAD">&#x1EAD; &#x1EAC;</span> <span title="U+1EAF">&#x1EAF; &#x1EAE;</span> <span title="U+1EB1">&#x1EB1; &#x1EB0;</span> <span title="U+1EB3">&#x1EB3; &#x1EB2;</span> <span title="U+1EB5">&#x1EB5; &#x1EB4;</span> <span title="U+1EB7">&#x1EB7; &#x1EB6;</span> <span title="U+1EB9">&#x1EB9; &#x1EB8;</span> <span title="U+1EBB">&#x1EBB; &#x1EBA;</span> <span title="U+1EBD">&#x1EBD; &#x1EBC;</span> <span title="U+1EBF">&#x1EBF; &#x1EBE;</span> <span title="U+1EC1">&#x1EC1; &#x1EC0;</span> <span title="U+1EC3">&#x1EC3; &#x1EC2;</span> <span title="U+1EC5">&#x1EC5; &#x1EC4;</span> <span title="U+1EC7">&#x1EC7; &#x1EC6;</span> <span title="U+1EC9">&#x1EC9; &#x1EC8;</span> <span title="U+1ECB">&#x1ECB; &#x1ECA;</span> <span title="U+1ECD">&#x1ECD; &#x1ECC;</span> <span title="U+1ECF">&#x1ECF; &#x1ECE;</span> <span title="U+1ED1">&#x1ED1; &#x1ED0;</span> <span title="U+1ED3">&#x1ED3; &#x1ED2;</span> <span title="U+1ED5">&#x1ED5; &#x1ED4;</span> <span title="U+1ED7">&#x1ED7; &#x1ED6;</span> <span title="U+1ED9">&#x1ED9; &#x1ED8;</span> <span title="U+1EDB">&#x1EDB; &#x1EDA;</span> <span title="U+1EDD">&#x1EDD; &#x1EDC;</span> <span title="U+1EDF">&#x1EDF; &#x1EDE;</span> <span title="U+1EE1">&#x1EE1; &#x1EE0;</span> <span title="U+1EE3">&#x1EE3; &#x1EE2;</span> <span title="U+1EE5">&#x1EE5; &#x1EE4;</span> <span title="U+1EE7">&#x1EE7; &#x1EE6;</span> <span title="U+1EE9">&#x1EE9; &#x1EE8;</span> <span title="U+1EEB">&#x1EEB; &#x1EEA;</span> <span title="U+1EED">&#x1EED; &#x1EEC;</span> <span title="U+1EEF">&#x1EEF; &#x1EEE;</span> <span title="U+1EF1">&#x1EF1; &#x1EF0;</span> <span title="U+1EF3">&#x1EF3; &#x1EF2;</span> <span title="U+1EF5">&#x1EF5; &#x1EF4;</span> <span title="U+1EF7">&#x1EF7; &#x1EF6;</span> <span title="U+1EF9">&#x1EF9; &#x1EF8;</span> <span title="U+1EFB">&#x1EFB; &#x1EFA;</span> <span title="U+1EFD">&#x1EFD; &#x1EFC;</span> <span title="U+1EFF">&#x1EFF; &#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/text-transform-upperlower-004.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-004.html
new file mode 100644
index 0000000000..e22775e1b8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-004.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended Additional, lowercase</title>
+<meta name="assert" content="For the Latin Extended Additional Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-004-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x1E00; &#x1E01;</span> <span title="U+1E02">&#x1E02; &#x1E03;</span> <span title="U+1E04">&#x1E04; &#x1E05;</span> <span title="U+1E06">&#x1E06; &#x1E07;</span> <span title="U+1E08">&#x1E08; &#x1E09;</span> <span title="U+1E0A">&#x1E0A; &#x1E0B;</span> <span title="U+1E0C">&#x1E0C; &#x1E0D;</span> <span title="U+1E0E">&#x1E0E; &#x1E0F;</span> <span title="U+1E10">&#x1E10; &#x1E11;</span> <span title="U+1E12">&#x1E12; &#x1E13;</span> <span title="U+1E14">&#x1E14; &#x1E15;</span> <span title="U+1E16">&#x1E16; &#x1E17;</span> <span title="U+1E18">&#x1E18; &#x1E19;</span> <span title="U+1E1A">&#x1E1A; &#x1E1B;</span> <span title="U+1E1C">&#x1E1C; &#x1E1D;</span> <span title="U+1E1E">&#x1E1E; &#x1E1F;</span> <span title="U+1E20">&#x1E20; &#x1E21;</span> <span title="U+1E22">&#x1E22; &#x1E23;</span> <span title="U+1E24">&#x1E24; &#x1E25;</span> <span title="U+1E26">&#x1E26; &#x1E27;</span> <span title="U+1E28">&#x1E28; &#x1E29;</span> <span title="U+1E2A">&#x1E2A; &#x1E2B;</span> <span title="U+1E2C">&#x1E2C; &#x1E2D;</span> <span title="U+1E2E">&#x1E2E; &#x1E2F;</span> <span title="U+1E30">&#x1E30; &#x1E31;</span> <span title="U+1E32">&#x1E32; &#x1E33;</span> <span title="U+1E34">&#x1E34; &#x1E35;</span> <span title="U+1E36">&#x1E36; &#x1E37;</span> <span title="U+1E38">&#x1E38; &#x1E39;</span> <span title="U+1E3A">&#x1E3A; &#x1E3B;</span> <span title="U+1E3C">&#x1E3C; &#x1E3D;</span> <span title="U+1E3E">&#x1E3E; &#x1E3F;</span> <span title="U+1E40">&#x1E40; &#x1E41;</span> <span title="U+1E42">&#x1E42; &#x1E43;</span> <span title="U+1E44">&#x1E44; &#x1E45;</span> <span title="U+1E46">&#x1E46; &#x1E47;</span> <span title="U+1E48">&#x1E48; &#x1E49;</span> <span title="U+1E4A">&#x1E4A; &#x1E4B;</span> <span title="U+1E4C">&#x1E4C; &#x1E4D;</span> <span title="U+1E4E">&#x1E4E; &#x1E4F;</span> <span title="U+1E50">&#x1E50; &#x1E51;</span> <span title="U+1E52">&#x1E52; &#x1E53;</span> <span title="U+1E54">&#x1E54; &#x1E55;</span> <span title="U+1E56">&#x1E56; &#x1E57;</span> <span title="U+1E58">&#x1E58; &#x1E59;</span> <span title="U+1E5A">&#x1E5A; &#x1E5B;</span> <span title="U+1E5C">&#x1E5C; &#x1E5D;</span> <span title="U+1E5E">&#x1E5E; &#x1E5F;</span> <span title="U+1E60">&#x1E60; &#x1E61;</span> <span title="U+1E62">&#x1E62; &#x1E63;</span> <span title="U+1E64">&#x1E64; &#x1E65;</span> <span title="U+1E66">&#x1E66; &#x1E67;</span> <span title="U+1E68">&#x1E68; &#x1E69;</span> <span title="U+1E6A">&#x1E6A; &#x1E6B;</span> <span title="U+1E6C">&#x1E6C; &#x1E6D;</span> <span title="U+1E6E">&#x1E6E; &#x1E6F;</span> <span title="U+1E70">&#x1E70; &#x1E71;</span> <span title="U+1E72">&#x1E72; &#x1E73;</span> <span title="U+1E74">&#x1E74; &#x1E75;</span> <span title="U+1E76">&#x1E76; &#x1E77;</span> <span title="U+1E78">&#x1E78; &#x1E79;</span> <span title="U+1E7A">&#x1E7A; &#x1E7B;</span> <span title="U+1E7C">&#x1E7C; &#x1E7D;</span> <span title="U+1E7E">&#x1E7E; &#x1E7F;</span> <span title="U+1E80">&#x1E80; &#x1E81;</span> <span title="U+1E82">&#x1E82; &#x1E83;</span> <span title="U+1E84">&#x1E84; &#x1E85;</span> <span title="U+1E86">&#x1E86; &#x1E87;</span> <span title="U+1E88">&#x1E88; &#x1E89;</span> <span title="U+1E8A">&#x1E8A; &#x1E8B;</span> <span title="U+1E8C">&#x1E8C; &#x1E8D;</span> <span title="U+1E8E">&#x1E8E; &#x1E8F;</span> <span title="U+1E90">&#x1E90; &#x1E91;</span> <span title="U+1E92">&#x1E92; &#x1E93;</span> <span title="U+1E94">&#x1E94; &#x1E95;</span> <span title="U+1E9E">&#x1E9E; &#x00DF;</span> <span title="U+1EA0">&#x1EA0; &#x1EA1;</span> <span title="U+1EA2">&#x1EA2; &#x1EA3;</span> <span title="U+1EA4">&#x1EA4; &#x1EA5;</span> <span title="U+1EA6">&#x1EA6; &#x1EA7;</span> <span title="U+1EA8">&#x1EA8; &#x1EA9;</span> <span title="U+1EAA">&#x1EAA; &#x1EAB;</span> <span title="U+1EAC">&#x1EAC; &#x1EAD;</span> <span title="U+1EAE">&#x1EAE; &#x1EAF;</span> <span title="U+1EB0">&#x1EB0; &#x1EB1;</span> <span title="U+1EB2">&#x1EB2; &#x1EB3;</span> <span title="U+1EB4">&#x1EB4; &#x1EB5;</span> <span title="U+1EB6">&#x1EB6; &#x1EB7;</span> <span title="U+1EB8">&#x1EB8; &#x1EB9;</span> <span title="U+1EBA">&#x1EBA; &#x1EBB;</span> <span title="U+1EBC">&#x1EBC; &#x1EBD;</span> <span title="U+1EBE">&#x1EBE; &#x1EBF;</span> <span title="U+1EC0">&#x1EC0; &#x1EC1;</span> <span title="U+1EC2">&#x1EC2; &#x1EC3;</span> <span title="U+1EC4">&#x1EC4; &#x1EC5;</span> <span title="U+1EC6">&#x1EC6; &#x1EC7;</span> <span title="U+1EC8">&#x1EC8; &#x1EC9;</span> <span title="U+1ECA">&#x1ECA; &#x1ECB;</span> <span title="U+1ECC">&#x1ECC; &#x1ECD;</span> <span title="U+1ECE">&#x1ECE; &#x1ECF;</span> <span title="U+1ED0">&#x1ED0; &#x1ED1;</span> <span title="U+1ED2">&#x1ED2; &#x1ED3;</span> <span title="U+1ED4">&#x1ED4; &#x1ED5;</span> <span title="U+1ED6">&#x1ED6; &#x1ED7;</span> <span title="U+1ED8">&#x1ED8; &#x1ED9;</span> <span title="U+1EDA">&#x1EDA; &#x1EDB;</span> <span title="U+1EDC">&#x1EDC; &#x1EDD;</span> <span title="U+1EDE">&#x1EDE; &#x1EDF;</span> <span title="U+1EE0">&#x1EE0; &#x1EE1;</span> <span title="U+1EE2">&#x1EE2; &#x1EE3;</span> <span title="U+1EE4">&#x1EE4; &#x1EE5;</span> <span title="U+1EE6">&#x1EE6; &#x1EE7;</span> <span title="U+1EE8">&#x1EE8; &#x1EE9;</span> <span title="U+1EEA">&#x1EEA; &#x1EEB;</span> <span title="U+1EEC">&#x1EEC; &#x1EED;</span> <span title="U+1EEE">&#x1EEE; &#x1EEF;</span> <span title="U+1EF0">&#x1EF0; &#x1EF1;</span> <span title="U+1EF2">&#x1EF2; &#x1EF3;</span> <span title="U+1EF4">&#x1EF4; &#x1EF5;</span> <span title="U+1EF6">&#x1EF6; &#x1EF7;</span> <span title="U+1EF8">&#x1EF8; &#x1EF9;</span> <span title="U+1EFA">&#x1EFA; &#x1EFB;</span> <span title="U+1EFC">&#x1EFC; &#x1EFD;</span> <span title="U+1EFE">&#x1EFE; &#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/text-transform-upperlower-005.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-005.html
new file mode 100644
index 0000000000..cc6a04fa7f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-005.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-A, uppercase</title>
+<meta name="assert" content="For the Latin Extended-A Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-005-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0101; &#x0100;</span> <span title="U+0103">&#x0103; &#x0102;</span> <span title="U+0105">&#x0105; &#x0104;</span> <span title="U+0107">&#x0107; &#x0106;</span> <span title="U+0109">&#x0109; &#x0108;</span> <span title="U+010B">&#x010B; &#x010A;</span> <span title="U+010D">&#x010D; &#x010C;</span> <span title="U+010F">&#x010F; &#x010E;</span> <span title="U+0111">&#x0111; &#x0110;</span> <span title="U+0113">&#x0113; &#x0112;</span> <span title="U+0115">&#x0115; &#x0114;</span> <span title="U+0117">&#x0117; &#x0116;</span> <span title="U+0119">&#x0119; &#x0118;</span> <span title="U+011B">&#x011B; &#x011A;</span> <span title="U+011D">&#x011D; &#x011C;</span> <span title="U+011F">&#x011F; &#x011E;</span> <span title="U+0121">&#x0121; &#x0120;</span> <span title="U+0123">&#x0123; &#x0122;</span> <span title="U+0125">&#x0125; &#x0124;</span> <span title="U+0127">&#x0127; &#x0126;</span> <span title="U+0129">&#x0129; &#x0128;</span> <span title="U+012B">&#x012B; &#x012A;</span> <span title="U+012D">&#x012D; &#x012C;</span> <span title="U+012F">&#x012F; &#x012E;</span> <span title="U+0131">&#x0131; &#x0049;</span> <span title="U+0133">&#x0133; &#x0132;</span> <span title="U+0135">&#x0135; &#x0134;</span> <span title="U+0137">&#x0137; &#x0136;</span> <span title="U+013A">&#x013A; &#x0139;</span> <span title="U+013C">&#x013C; &#x013B;</span> <span title="U+013E">&#x013E; &#x013D;</span> <span title="U+0140">&#x0140; &#x013F;</span> <span title="U+0142">&#x0142; &#x0141;</span> <span title="U+0144">&#x0144; &#x0143;</span> <span title="U+0146">&#x0146; &#x0145;</span> <span title="U+0148">&#x0148; &#x0147;</span> <span title="U+014B">&#x014B; &#x014A;</span> <span title="U+014D">&#x014D; &#x014C;</span> <span title="U+014F">&#x014F; &#x014E;</span> <span title="U+0151">&#x0151; &#x0150;</span> <span title="U+0153">&#x0153; &#x0152;</span> <span title="U+0155">&#x0155; &#x0154;</span> <span title="U+0157">&#x0157; &#x0156;</span> <span title="U+0159">&#x0159; &#x0158;</span> <span title="U+015B">&#x015B; &#x015A;</span> <span title="U+015D">&#x015D; &#x015C;</span> <span title="U+015F">&#x015F; &#x015E;</span> <span title="U+0161">&#x0161; &#x0160;</span> <span title="U+0163">&#x0163; &#x0162;</span> <span title="U+0165">&#x0165; &#x0164;</span> <span title="U+0167">&#x0167; &#x0166;</span> <span title="U+0169">&#x0169; &#x0168;</span> <span title="U+016B">&#x016B; &#x016A;</span> <span title="U+016D">&#x016D; &#x016C;</span> <span title="U+016F">&#x016F; &#x016E;</span> <span title="U+0171">&#x0171; &#x0170;</span> <span title="U+0173">&#x0173; &#x0172;</span> <span title="U+0175">&#x0175; &#x0174;</span> <span title="U+0177">&#x0177; &#x0176;</span> <span title="U+017A">&#x017A; &#x0179;</span> <span title="U+017C">&#x017C; &#x017B;</span> <span title="U+017E">&#x017E; &#x017D;</span> <span title="U+017F">&#x017F; &#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/text-transform-upperlower-006.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-006.html
new file mode 100644
index 0000000000..90388a249f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-006.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-A, lowercase</title>
+<meta name="assert" content="For the Latin Extended-A Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-006-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0100; &#x0101;</span> <span title="U+0102">&#x0102; &#x0103;</span> <span title="U+0104">&#x0104; &#x0105;</span> <span title="U+0106">&#x0106; &#x0107;</span> <span title="U+0108">&#x0108; &#x0109;</span> <span title="U+010A">&#x010A; &#x010B;</span> <span title="U+010C">&#x010C; &#x010D;</span> <span title="U+010E">&#x010E; &#x010F;</span> <span title="U+0110">&#x0110; &#x0111;</span> <span title="U+0112">&#x0112; &#x0113;</span> <span title="U+0114">&#x0114; &#x0115;</span> <span title="U+0116">&#x0116; &#x0117;</span> <span title="U+0118">&#x0118; &#x0119;</span> <span title="U+011A">&#x011A; &#x011B;</span> <span title="U+011C">&#x011C; &#x011D;</span> <span title="U+011E">&#x011E; &#x011F;</span> <span title="U+0120">&#x0120; &#x0121;</span> <span title="U+0122">&#x0122; &#x0123;</span> <span title="U+0124">&#x0124; &#x0125;</span> <span title="U+0126">&#x0126; &#x0127;</span> <span title="U+0128">&#x0128; &#x0129;</span> <span title="U+012A">&#x012A; &#x012B;</span> <span title="U+012C">&#x012C; &#x012D;</span> <span title="U+012E">&#x012E; &#x012F;</span> <span title="U+0130">&#x0130; &#x0069;</span> <span title="U+0132">&#x0132; &#x0133;</span> <span title="U+0134">&#x0134; &#x0135;</span> <span title="U+0136">&#x0136; &#x0137;</span> <span title="U+0139">&#x0139; &#x013A;</span> <span title="U+013B">&#x013B; &#x013C;</span> <span title="U+013D">&#x013D; &#x013E;</span> <span title="U+013F">&#x013F; &#x0140;</span> <span title="U+0141">&#x0141; &#x0142;</span> <span title="U+0143">&#x0143; &#x0144;</span> <span title="U+0145">&#x0145; &#x0146;</span> <span title="U+0147">&#x0147; &#x0148;</span> <span title="U+014A">&#x014A; &#x014B;</span> <span title="U+014C">&#x014C; &#x014D;</span> <span title="U+014E">&#x014E; &#x014F;</span> <span title="U+0150">&#x0150; &#x0151;</span> <span title="U+0152">&#x0152; &#x0153;</span> <span title="U+0154">&#x0154; &#x0155;</span> <span title="U+0156">&#x0156; &#x0157;</span> <span title="U+0158">&#x0158; &#x0159;</span> <span title="U+015A">&#x015A; &#x015B;</span> <span title="U+015C">&#x015C; &#x015D;</span> <span title="U+015E">&#x015E; &#x015F;</span> <span title="U+0160">&#x0160; &#x0161;</span> <span title="U+0162">&#x0162; &#x0163;</span> <span title="U+0164">&#x0164; &#x0165;</span> <span title="U+0166">&#x0166; &#x0167;</span> <span title="U+0168">&#x0168; &#x0169;</span> <span title="U+016A">&#x016A; &#x016B;</span> <span title="U+016C">&#x016C; &#x016D;</span> <span title="U+016E">&#x016E; &#x016F;</span> <span title="U+0170">&#x0170; &#x0171;</span> <span title="U+0172">&#x0172; &#x0173;</span> <span title="U+0174">&#x0174; &#x0175;</span> <span title="U+0176">&#x0176; &#x0177;</span> <span title="U+0178">&#x0178; &#x00FF;</span> <span title="U+0179">&#x0179; &#x017A;</span> <span title="U+017B">&#x017B; &#x017C;</span> <span title="U+017D">&#x017D; &#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/text-transform-upperlower-007.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-007.html
new file mode 100644
index 0000000000..b2014ee971
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-007.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-B, uppercase</title>
+<meta name="assert" content="For the Latin Extended-B Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-007-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0180; &#x0243;</span> <span title="U+0183">&#x0183; &#x0182;</span> <span title="U+0185">&#x0185; &#x0184;</span> <span title="U+0188">&#x0188; &#x0187;</span> <span title="U+018C">&#x018C; &#x018B;</span> <span title="U+0192">&#x0192; &#x0191;</span> <span title="U+0195">&#x0195; &#x01F6;</span> <span title="U+0199">&#x0199; &#x0198;</span> <span title="U+019A">&#x019A; &#x023D;</span> <span title="U+019E">&#x019E; &#x0220;</span> <span title="U+01A1">&#x01A1; &#x01A0;</span> <span title="U+01A3">&#x01A3; &#x01A2;</span> <span title="U+01A5">&#x01A5; &#x01A4;</span> <span title="U+01A8">&#x01A8; &#x01A7;</span> <span title="U+01AD">&#x01AD; &#x01AC;</span> <span title="U+01B0">&#x01B0; &#x01AF;</span> <span title="U+01B4">&#x01B4; &#x01B3;</span> <span title="U+01B6">&#x01B6; &#x01B5;</span> <span title="U+01B9">&#x01B9; &#x01B8;</span> <span title="U+01BD">&#x01BD; &#x01BC;</span> <span title="U+01BF">&#x01BF; &#x01F7;</span> <span title="U+01C5">&#x01C5; &#x01C4;</span> <span title="U+01C6">&#x01C6; &#x01C4;</span> <span title="U+01C8">&#x01C8; &#x01C7;</span> <span title="U+01C9">&#x01C9; &#x01C7;</span> <span title="U+01CB">&#x01CB; &#x01CA;</span> <span title="U+01CC">&#x01CC; &#x01CA;</span> <span title="U+01CE">&#x01CE; &#x01CD;</span> <span title="U+01D0">&#x01D0; &#x01CF;</span> <span title="U+01D2">&#x01D2; &#x01D1;</span> <span title="U+01D4">&#x01D4; &#x01D3;</span> <span title="U+01D6">&#x01D6; &#x01D5;</span> <span title="U+01D8">&#x01D8; &#x01D7;</span> <span title="U+01DA">&#x01DA; &#x01D9;</span> <span title="U+01DC">&#x01DC; &#x01DB;</span> <span title="U+01DD">&#x01DD; &#x018E;</span> <span title="U+01DF">&#x01DF; &#x01DE;</span> <span title="U+01E1">&#x01E1; &#x01E0;</span> <span title="U+01E3">&#x01E3; &#x01E2;</span> <span title="U+01E5">&#x01E5; &#x01E4;</span> <span title="U+01E7">&#x01E7; &#x01E6;</span> <span title="U+01E9">&#x01E9; &#x01E8;</span> <span title="U+01EB">&#x01EB; &#x01EA;</span> <span title="U+01ED">&#x01ED; &#x01EC;</span> <span title="U+01EF">&#x01EF; &#x01EE;</span> <span title="U+01F2">&#x01F2; &#x01F1;</span> <span title="U+01F3">&#x01F3; &#x01F1;</span> <span title="U+01F5">&#x01F5; &#x01F4;</span> <span title="U+01F9">&#x01F9; &#x01F8;</span> <span title="U+01FB">&#x01FB; &#x01FA;</span> <span title="U+01FD">&#x01FD; &#x01FC;</span> <span title="U+01FF">&#x01FF; &#x01FE;</span> <span title="U+0201">&#x0201; &#x0200;</span> <span title="U+0203">&#x0203; &#x0202;</span> <span title="U+0205">&#x0205; &#x0204;</span> <span title="U+0207">&#x0207; &#x0206;</span> <span title="U+0209">&#x0209; &#x0208;</span> <span title="U+020B">&#x020B; &#x020A;</span> <span title="U+020D">&#x020D; &#x020C;</span> <span title="U+020F">&#x020F; &#x020E;</span> <span title="U+0211">&#x0211; &#x0210;</span> <span title="U+0213">&#x0213; &#x0212;</span> <span title="U+0215">&#x0215; &#x0214;</span> <span title="U+0217">&#x0217; &#x0216;</span> <span title="U+0219">&#x0219; &#x0218;</span> <span title="U+021B">&#x021B; &#x021A;</span> <span title="U+021D">&#x021D; &#x021C;</span> <span title="U+021F">&#x021F; &#x021E;</span> <span title="U+0223">&#x0223; &#x0222;</span> <span title="U+0225">&#x0225; &#x0224;</span> <span title="U+0227">&#x0227; &#x0226;</span> <span title="U+0229">&#x0229; &#x0228;</span> <span title="U+022B">&#x022B; &#x022A;</span> <span title="U+022D">&#x022D; &#x022C;</span> <span title="U+022F">&#x022F; &#x022E;</span> <span title="U+0231">&#x0231; &#x0230;</span> <span title="U+0233">&#x0233; &#x0232;</span> <span title="U+023C">&#x023C; &#x023B;</span> <span title="U+023F">&#x023F; &#x2C7E;</span> <span title="U+0240">&#x0240; &#x2C7F;</span> <span title="U+0242">&#x0242; &#x0241;</span> <span title="U+0247">&#x0247; &#x0246;</span> <span title="U+0249">&#x0249; &#x0248;</span> <span title="U+024B">&#x024B; &#x024A;</span> <span title="U+024D">&#x024D; &#x024C;</span> <span title="U+024F">&#x024F; &#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/text-transform-upperlower-008.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-008.html
new file mode 100644
index 0000000000..991e0e0e4c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-008.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-B, lowercase</title>
+<meta name="assert" content="For the Latin Extended-B Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-008-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0181; &#x0253;</span> <span title="U+0182">&#x0182; &#x0183;</span> <span title="U+0184">&#x0184; &#x0185;</span> <span title="U+0186">&#x0186; &#x0254;</span> <span title="U+0187">&#x0187; &#x0188;</span> <span title="U+0189">&#x0189; &#x0256;</span> <span title="U+018A">&#x018A; &#x0257;</span> <span title="U+018B">&#x018B; &#x018C;</span> <span title="U+018E">&#x018E; &#x01DD;</span> <span title="U+018F">&#x018F; &#x0259;</span> <span title="U+0190">&#x0190; &#x025B;</span> <span title="U+0191">&#x0191; &#x0192;</span> <span title="U+0193">&#x0193; &#x0260;</span> <span title="U+0194">&#x0194; &#x0263;</span> <span title="U+0196">&#x0196; &#x0269;</span> <span title="U+0197">&#x0197; &#x0268;</span> <span title="U+0198">&#x0198; &#x0199;</span> <span title="U+019C">&#x019C; &#x026F;</span> <span title="U+019D">&#x019D; &#x0272;</span> <span title="U+019F">&#x019F; &#x0275;</span> <span title="U+01A0">&#x01A0; &#x01A1;</span> <span title="U+01A2">&#x01A2; &#x01A3;</span> <span title="U+01A4">&#x01A4; &#x01A5;</span> <span title="U+01A6">&#x01A6; &#x0280;</span> <span title="U+01A7">&#x01A7; &#x01A8;</span> <span title="U+01A9">&#x01A9; &#x0283;</span> <span title="U+01AC">&#x01AC; &#x01AD;</span> <span title="U+01AE">&#x01AE; &#x0288;</span> <span title="U+01AF">&#x01AF; &#x01B0;</span> <span title="U+01B1">&#x01B1; &#x028A;</span> <span title="U+01B2">&#x01B2; &#x028B;</span> <span title="U+01B3">&#x01B3; &#x01B4;</span> <span title="U+01B5">&#x01B5; &#x01B6;</span> <span title="U+01B7">&#x01B7; &#x0292;</span> <span title="U+01B8">&#x01B8; &#x01B9;</span> <span title="U+01BC">&#x01BC; &#x01BD;</span> <span title="U+01C4">&#x01C4; &#x01C6;</span> <span title="U+01C5">&#x01C5; &#x01C6;</span> <span title="U+01C7">&#x01C7; &#x01C9;</span> <span title="U+01C8">&#x01C8; &#x01C9;</span> <span title="U+01CA">&#x01CA; &#x01CC;</span> <span title="U+01CB">&#x01CB; &#x01CC;</span> <span title="U+01CD">&#x01CD; &#x01CE;</span> <span title="U+01CF">&#x01CF; &#x01D0;</span> <span title="U+01D1">&#x01D1; &#x01D2;</span> <span title="U+01D3">&#x01D3; &#x01D4;</span> <span title="U+01D5">&#x01D5; &#x01D6;</span> <span title="U+01D7">&#x01D7; &#x01D8;</span> <span title="U+01D9">&#x01D9; &#x01DA;</span> <span title="U+01DB">&#x01DB; &#x01DC;</span> <span title="U+01DE">&#x01DE; &#x01DF;</span> <span title="U+01E0">&#x01E0; &#x01E1;</span> <span title="U+01E2">&#x01E2; &#x01E3;</span> <span title="U+01E4">&#x01E4; &#x01E5;</span> <span title="U+01E6">&#x01E6; &#x01E7;</span> <span title="U+01E8">&#x01E8; &#x01E9;</span> <span title="U+01EA">&#x01EA; &#x01EB;</span> <span title="U+01EC">&#x01EC; &#x01ED;</span> <span title="U+01EE">&#x01EE; &#x01EF;</span> <span title="U+01F1">&#x01F1; &#x01F3;</span> <span title="U+01F2">&#x01F2; &#x01F3;</span> <span title="U+01F4">&#x01F4; &#x01F5;</span> <span title="U+01F6">&#x01F6; &#x0195;</span> <span title="U+01F7">&#x01F7; &#x01BF;</span> <span title="U+01F8">&#x01F8; &#x01F9;</span> <span title="U+01FA">&#x01FA; &#x01FB;</span> <span title="U+01FC">&#x01FC; &#x01FD;</span> <span title="U+01FE">&#x01FE; &#x01FF;</span> <span title="U+0200">&#x0200; &#x0201;</span> <span title="U+0202">&#x0202; &#x0203;</span> <span title="U+0204">&#x0204; &#x0205;</span> <span title="U+0206">&#x0206; &#x0207;</span> <span title="U+0208">&#x0208; &#x0209;</span> <span title="U+020A">&#x020A; &#x020B;</span> <span title="U+020C">&#x020C; &#x020D;</span> <span title="U+020E">&#x020E; &#x020F;</span> <span title="U+0210">&#x0210; &#x0211;</span> <span title="U+0212">&#x0212; &#x0213;</span> <span title="U+0214">&#x0214; &#x0215;</span> <span title="U+0216">&#x0216; &#x0217;</span> <span title="U+0218">&#x0218; &#x0219;</span> <span title="U+021A">&#x021A; &#x021B;</span> <span title="U+021C">&#x021C; &#x021D;</span> <span title="U+021E">&#x021E; &#x021F;</span> <span title="U+0220">&#x0220; &#x019E;</span> <span title="U+0222">&#x0222; &#x0223;</span> <span title="U+0224">&#x0224; &#x0225;</span> <span title="U+0226">&#x0226; &#x0227;</span> <span title="U+0228">&#x0228; &#x0229;</span> <span title="U+022A">&#x022A; &#x022B;</span> <span title="U+022C">&#x022C; &#x022D;</span> <span title="U+022E">&#x022E; &#x022F;</span> <span title="U+0230">&#x0230; &#x0231;</span> <span title="U+0232">&#x0232; &#x0233;</span> <span title="U+023A">&#x023A; &#x2C65;</span> <span title="U+023B">&#x023B; &#x023C;</span> <span title="U+023D">&#x023D; &#x019A;</span> <span title="U+023E">&#x023E; &#x2C66;</span> <span title="U+0241">&#x0241; &#x0242;</span> <span title="U+0243">&#x0243; &#x0180;</span> <span title="U+0244">&#x0244; &#x0289;</span> <span title="U+0245">&#x0245; &#x028C;</span> <span title="U+0246">&#x0246; &#x0247;</span> <span title="U+0248">&#x0248; &#x0249;</span> <span title="U+024A">&#x024A; &#x024B;</span> <span title="U+024C">&#x024C; &#x024D;</span> <span title="U+024E">&#x024E; &#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/text-transform-upperlower-009.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-009.html
new file mode 100644
index 0000000000..5e513dcd07
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-009.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-C, uppercase</title>
+<meta name="assert" content="For the Latin Extended-C Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-009-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x2C61; &#x2C60;</span> <span title="U+2C65">&#x2C65; &#x023A;</span> <span title="U+2C66">&#x2C66; &#x023E;</span> <span title="U+2C68">&#x2C68; &#x2C67;</span> <span title="U+2C6A">&#x2C6A; &#x2C69;</span> <span title="U+2C6C">&#x2C6C; &#x2C6B;</span> <span title="U+2C73">&#x2C73; &#x2C72;</span> <span title="U+2C76">&#x2C76; &#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/text-transform-upperlower-010.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-010.html
new file mode 100644
index 0000000000..c214f91487
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-010.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-C, lowercase</title>
+<meta name="assert" content="For the Latin Extended-C Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-010-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x2C60; &#x2C61;</span> <span title="U+2C62">&#x2C62; &#x026B;</span> <span title="U+2C63">&#x2C63; &#x1D7D;</span> <span title="U+2C64">&#x2C64; &#x027D;</span> <span title="U+2C67">&#x2C67; &#x2C68;</span> <span title="U+2C69">&#x2C69; &#x2C6A;</span> <span title="U+2C6B">&#x2C6B; &#x2C6C;</span> <span title="U+2C6D">&#x2C6D; &#x0251;</span> <span title="U+2C6E">&#x2C6E; &#x0271;</span> <span title="U+2C6F">&#x2C6F; &#x0250;</span> <span title="U+2C70">&#x2C70; &#x0252;</span> <span title="U+2C72">&#x2C72; &#x2C73;</span> <span title="U+2C75">&#x2C75; &#x2C76;</span> <span title="U+2C7E">&#x2C7E; &#x023F;</span> <span title="U+2C7F">&#x2C7F; &#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/text-transform-upperlower-011.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-011.html
new file mode 100644
index 0000000000..4d71b28d60
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-011.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Full-width Latin, uppercase</title>
+<meta name="assert" content="For the Latin letters in the Halfwidth and Fullwidth Forms Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-011-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#xFF41; &#xFF21;</span> <span title="U+FF42">&#xFF42; &#xFF22;</span> <span title="U+FF43">&#xFF43; &#xFF23;</span> <span title="U+FF44">&#xFF44; &#xFF24;</span> <span title="U+FF45">&#xFF45; &#xFF25;</span> <span title="U+FF46">&#xFF46; &#xFF26;</span> <span title="U+FF47">&#xFF47; &#xFF27;</span> <span title="U+FF48">&#xFF48; &#xFF28;</span> <span title="U+FF49">&#xFF49; &#xFF29;</span> <span title="U+FF4A">&#xFF4A; &#xFF2A;</span> <span title="U+FF4B">&#xFF4B; &#xFF2B;</span> <span title="U+FF4C">&#xFF4C; &#xFF2C;</span> <span title="U+FF4D">&#xFF4D; &#xFF2D;</span> <span title="U+FF4E">&#xFF4E; &#xFF2E;</span> <span title="U+FF4F">&#xFF4F; &#xFF2F;</span> <span title="U+FF50">&#xFF50; &#xFF30;</span> <span title="U+FF51">&#xFF51; &#xFF31;</span> <span title="U+FF52">&#xFF52; &#xFF32;</span> <span title="U+FF53">&#xFF53; &#xFF33;</span> <span title="U+FF54">&#xFF54; &#xFF34;</span> <span title="U+FF55">&#xFF55; &#xFF35;</span> <span title="U+FF56">&#xFF56; &#xFF36;</span> <span title="U+FF57">&#xFF57; &#xFF37;</span> <span title="U+FF58">&#xFF58; &#xFF38;</span> <span title="U+FF59">&#xFF59; &#xFF39;</span> <span title="U+FF5A">&#xFF5A; &#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/text-transform-upperlower-012.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-012.html
new file mode 100644
index 0000000000..210551a07d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-012.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Full-width Latin, lowercase</title>
+<meta name="assert" content="For the Latin letters in the Halfwidth and Fullwidth Forms block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-012-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#xFF21; &#xFF41;</span> <span title="U+FF22">&#xFF22; &#xFF42;</span> <span title="U+FF23">&#xFF23; &#xFF43;</span> <span title="U+FF24">&#xFF24; &#xFF44;</span> <span title="U+FF25">&#xFF25; &#xFF45;</span> <span title="U+FF26">&#xFF26; &#xFF46;</span> <span title="U+FF27">&#xFF27; &#xFF47;</span> <span title="U+FF28">&#xFF28; &#xFF48;</span> <span title="U+FF29">&#xFF29; &#xFF49;</span> <span title="U+FF2A">&#xFF2A; &#xFF4A;</span> <span title="U+FF2B">&#xFF2B; &#xFF4B;</span> <span title="U+FF2C">&#xFF2C; &#xFF4C;</span> <span title="U+FF2D">&#xFF2D; &#xFF4D;</span> <span title="U+FF2E">&#xFF2E; &#xFF4E;</span> <span title="U+FF2F">&#xFF2F; &#xFF4F;</span> <span title="U+FF30">&#xFF30; &#xFF50;</span> <span title="U+FF31">&#xFF31; &#xFF51;</span> <span title="U+FF32">&#xFF32; &#xFF52;</span> <span title="U+FF33">&#xFF33; &#xFF53;</span> <span title="U+FF34">&#xFF34; &#xFF54;</span> <span title="U+FF35">&#xFF35; &#xFF55;</span> <span title="U+FF36">&#xFF36; &#xFF56;</span> <span title="U+FF37">&#xFF37; &#xFF57;</span> <span title="U+FF38">&#xFF38; &#xFF58;</span> <span title="U+FF39">&#xFF39; &#xFF59;</span> <span title="U+FF3A">&#xFF3A; &#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/text-transform-upperlower-014.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-014.html
new file mode 100644
index 0000000000..0fbe5e97b0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-014.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek and Coptic, uppercase</title>
+<meta name="assert" content="For the Greek and Coptic Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-014-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0371; &#x0370;</span> <span title="U+0373">&#x0373; &#x0372;</span> <span title="U+0377">&#x0377; &#x0376;</span> <span title="U+037B">&#x037B; &#x03FD;</span> <span title="U+037C">&#x037C; &#x03FE;</span> <span title="U+037D">&#x037D; &#x03FF;</span> <span title="U+03AC">&#x03AC; &#x0386;</span> <span title="U+03AD">&#x03AD; &#x0388;</span> <span title="U+03AE">&#x03AE; &#x0389;</span> <span title="U+03AF">&#x03AF; &#x038A;</span> <span title="U+03B1">&#x03B1; &#x0391;</span> <span title="U+03B2">&#x03B2; &#x0392;</span> <span title="U+03B3">&#x03B3; &#x0393;</span> <span title="U+03B4">&#x03B4; &#x0394;</span> <span title="U+03B5">&#x03B5; &#x0395;</span> <span title="U+03B6">&#x03B6; &#x0396;</span> <span title="U+03B7">&#x03B7; &#x0397;</span> <span title="U+03B8">&#x03B8; &#x0398;</span> <span title="U+03B9">&#x03B9; &#x0399;</span> <span title="U+03BA">&#x03BA; &#x039A;</span> <span title="U+03BB">&#x03BB; &#x039B;</span> <span title="U+03BC">&#x03BC; &#x039C;</span> <span title="U+03BD">&#x03BD; &#x039D;</span> <span title="U+03BE">&#x03BE; &#x039E;</span> <span title="U+03BF">&#x03BF; &#x039F;</span> <span title="U+03C0">&#x03C0; &#x03A0;</span> <span title="U+03C1">&#x03C1; &#x03A1;</span> <span title="U+03C2">&#x03C2; &#x03A3;</span> <span title="U+03C3">&#x03C3; &#x03A3;</span> <span title="U+03C4">&#x03C4; &#x03A4;</span> <span title="U+03C5">&#x03C5; &#x03A5;</span> <span title="U+03C6">&#x03C6; &#x03A6;</span> <span title="U+03C7">&#x03C7; &#x03A7;</span> <span title="U+03C8">&#x03C8; &#x03A8;</span> <span title="U+03C9">&#x03C9; &#x03A9;</span> <span title="U+03CA">&#x03CA; &#x03AA;</span> <span title="U+03CB">&#x03CB; &#x03AB;</span> <span title="U+03CC">&#x03CC; &#x038C;</span> <span title="U+03CD">&#x03CD; &#x038E;</span> <span title="U+03CE">&#x03CE; &#x038F;</span> <span title="U+03D0">&#x03D0; &#x0392;</span> <span title="U+03D1">&#x03D1; &#x0398;</span> <span title="U+03D5">&#x03D5; &#x03A6;</span> <span title="U+03D6">&#x03D6; &#x03A0;</span> <span title="U+03D7">&#x03D7; &#x03CF;</span> <span title="U+03D9">&#x03D9; &#x03D8;</span> <span title="U+03DB">&#x03DB; &#x03DA;</span> <span title="U+03DD">&#x03DD; &#x03DC;</span> <span title="U+03DF">&#x03DF; &#x03DE;</span> <span title="U+03E1">&#x03E1; &#x03E0;</span> <span title="U+03E3">&#x03E3; &#x03E2;</span> <span title="U+03E5">&#x03E5; &#x03E4;</span> <span title="U+03E7">&#x03E7; &#x03E6;</span> <span title="U+03E9">&#x03E9; &#x03E8;</span> <span title="U+03EB">&#x03EB; &#x03EA;</span> <span title="U+03ED">&#x03ED; &#x03EC;</span> <span title="U+03EF">&#x03EF; &#x03EE;</span> <span title="U+03F0">&#x03F0; &#x039A;</span> <span title="U+03F1">&#x03F1; &#x03A1;</span> <span title="U+03F2">&#x03F2; &#x03F9;</span> <span title="U+03F3">&#x03F3; &#x037F;</span> <span title="U+03F5">&#x03F5; &#x0395;</span> <span title="U+03F8">&#x03F8; &#x03F7;</span> <span title="U+03FB">&#x03FB; &#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/text-transform-upperlower-015.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-015.html
new file mode 100644
index 0000000000..65071771df
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-015.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek and Coptic, lowercase</title>
+<meta name="assert" content="For the Greek and Coptic Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-015-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0370; &#x0371;</span> <span title="U+0372">&#x0372; &#x0373;</span> <span title="U+0376">&#x0376; &#x0377;</span> <span title="U+037F">&#x037F; &#x03F3;</span> <span title="U+0386">&#x0386; &#x03AC;</span> <span title="U+0388">&#x0388; &#x03AD;</span> <span title="U+0389">&#x0389; &#x03AE;</span> <span title="U+038A">&#x038A; &#x03AF;</span> <span title="U+038C">&#x038C; &#x03CC;</span> <span title="U+038E">&#x038E; &#x03CD;</span> <span title="U+038F">&#x038F; &#x03CE;</span> <span title="U+0391">&#x0391; &#x03B1;</span> <span title="U+0392">&#x0392; &#x03B2;</span> <span title="U+0393">&#x0393; &#x03B3;</span> <span title="U+0394">&#x0394; &#x03B4;</span> <span title="U+0395">&#x0395; &#x03B5;</span> <span title="U+0396">&#x0396; &#x03B6;</span> <span title="U+0397">&#x0397; &#x03B7;</span> <span title="U+0398">&#x0398; &#x03B8;</span> <span title="U+0399">&#x0399; &#x03B9;</span> <span title="U+039A">&#x039A; &#x03BA;</span> <span title="U+039B">&#x039B; &#x03BB;</span> <span title="U+039C">&#x039C; &#x03BC;</span> <span title="U+039D">&#x039D; &#x03BD;</span> <span title="U+039E">&#x039E; &#x03BE;</span> <span title="U+039F">&#x039F; &#x03BF;</span> <span title="U+03A0">&#x03A0; &#x03C0;</span> <span title="U+03A1">&#x03A1; &#x03C1;</span> <span title="U+03A3">&#x03A3; &#x03C3;</span> <span title="U+03A4">&#x03A4; &#x03C4;</span> <span title="U+03A5">&#x03A5; &#x03C5;</span> <span title="U+03A6">&#x03A6; &#x03C6;</span> <span title="U+03A7">&#x03A7; &#x03C7;</span> <span title="U+03A8">&#x03A8; &#x03C8;</span> <span title="U+03A9">&#x03A9; &#x03C9;</span> <span title="U+03AA">&#x03AA; &#x03CA;</span> <span title="U+03AB">&#x03AB; &#x03CB;</span> <span title="U+03CF">&#x03CF; &#x03D7;</span> <span title="U+03D8">&#x03D8; &#x03D9;</span> <span title="U+03DA">&#x03DA; &#x03DB;</span> <span title="U+03DC">&#x03DC; &#x03DD;</span> <span title="U+03DE">&#x03DE; &#x03DF;</span> <span title="U+03E0">&#x03E0; &#x03E1;</span> <span title="U+03E2">&#x03E2; &#x03E3;</span> <span title="U+03E4">&#x03E4; &#x03E5;</span> <span title="U+03E6">&#x03E6; &#x03E7;</span> <span title="U+03E8">&#x03E8; &#x03E9;</span> <span title="U+03EA">&#x03EA; &#x03EB;</span> <span title="U+03EC">&#x03EC; &#x03ED;</span> <span title="U+03EE">&#x03EE; &#x03EF;</span> <span title="U+03F4">&#x03F4; &#x03B8;</span> <span title="U+03F7">&#x03F7; &#x03F8;</span> <span title="U+03F9">&#x03F9; &#x03F2;</span> <span title="U+03FA">&#x03FA; &#x03FB;</span> <span title="U+03FD">&#x03FD; &#x037B;</span> <span title="U+03FE">&#x03FE; &#x037C;</span> <span title="U+03FF">&#x03FF; &#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/text-transform-upperlower-016.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-016.html
new file mode 100644
index 0000000000..d28f177f32
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-016.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek Extended, uppercase</title>
+<meta name="assert" content="For the Greek Extended Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-016-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x1F00; &#x1F08;</span> <span title="U+1F01">&#x1F01; &#x1F09;</span> <span title="U+1F02">&#x1F02; &#x1F0A;</span> <span title="U+1F03">&#x1F03; &#x1F0B;</span> <span title="U+1F04">&#x1F04; &#x1F0C;</span> <span title="U+1F05">&#x1F05; &#x1F0D;</span> <span title="U+1F06">&#x1F06; &#x1F0E;</span> <span title="U+1F07">&#x1F07; &#x1F0F;</span> <span title="U+1F10">&#x1F10; &#x1F18;</span> <span title="U+1F11">&#x1F11; &#x1F19;</span> <span title="U+1F12">&#x1F12; &#x1F1A;</span> <span title="U+1F13">&#x1F13; &#x1F1B;</span> <span title="U+1F14">&#x1F14; &#x1F1C;</span> <span title="U+1F15">&#x1F15; &#x1F1D;</span> <span title="U+1F20">&#x1F20; &#x1F28;</span> <span title="U+1F21">&#x1F21; &#x1F29;</span> <span title="U+1F22">&#x1F22; &#x1F2A;</span> <span title="U+1F23">&#x1F23; &#x1F2B;</span> <span title="U+1F24">&#x1F24; &#x1F2C;</span> <span title="U+1F25">&#x1F25; &#x1F2D;</span> <span title="U+1F26">&#x1F26; &#x1F2E;</span> <span title="U+1F27">&#x1F27; &#x1F2F;</span> <span title="U+1F30">&#x1F30; &#x1F38;</span> <span title="U+1F31">&#x1F31; &#x1F39;</span> <span title="U+1F32">&#x1F32; &#x1F3A;</span> <span title="U+1F33">&#x1F33; &#x1F3B;</span> <span title="U+1F34">&#x1F34; &#x1F3C;</span> <span title="U+1F35">&#x1F35; &#x1F3D;</span> <span title="U+1F36">&#x1F36; &#x1F3E;</span> <span title="U+1F37">&#x1F37; &#x1F3F;</span> <span title="U+1F40">&#x1F40; &#x1F48;</span> <span title="U+1F41">&#x1F41; &#x1F49;</span> <span title="U+1F42">&#x1F42; &#x1F4A;</span> <span title="U+1F43">&#x1F43; &#x1F4B;</span> <span title="U+1F44">&#x1F44; &#x1F4C;</span> <span title="U+1F45">&#x1F45; &#x1F4D;</span> <span title="U+1F51">&#x1F51; &#x1F59;</span> <span title="U+1F53">&#x1F53; &#x1F5B;</span> <span title="U+1F55">&#x1F55; &#x1F5D;</span> <span title="U+1F57">&#x1F57; &#x1F5F;</span> <span title="U+1F60">&#x1F60; &#x1F68;</span> <span title="U+1F61">&#x1F61; &#x1F69;</span> <span title="U+1F62">&#x1F62; &#x1F6A;</span> <span title="U+1F63">&#x1F63; &#x1F6B;</span> <span title="U+1F64">&#x1F64; &#x1F6C;</span> <span title="U+1F65">&#x1F65; &#x1F6D;</span> <span title="U+1F66">&#x1F66; &#x1F6E;</span> <span title="U+1F67">&#x1F67; &#x1F6F;</span> <span title="U+1F70">&#x1F70; &#x1FBA;</span> <span title="U+1F71">&#x1F71; &#x1FBB;</span> <span title="U+1F72">&#x1F72; &#x1FC8;</span> <span title="U+1F73">&#x1F73; &#x1FC9;</span> <span title="U+1F74">&#x1F74; &#x1FCA;</span> <span title="U+1F75">&#x1F75; &#x1FCB;</span> <span title="U+1F76">&#x1F76; &#x1FDA;</span> <span title="U+1F77">&#x1F77; &#x1FDB;</span> <span title="U+1F78">&#x1F78; &#x1FF8;</span> <span title="U+1F79">&#x1F79; &#x1FF9;</span> <span title="U+1F7A">&#x1F7A; &#x1FEA;</span> <span title="U+1F7B">&#x1F7B; &#x1FEB;</span> <span title="U+1F7C">&#x1F7C; &#x1FFA;</span> <span title="U+1F7D">&#x1F7D; &#x1FFB;</span> <span title="U+1F80">&#x1F80; &#x1F88;</span> <span title="U+1F81">&#x1F81; &#x1F89;</span> <span title="U+1F82">&#x1F82; &#x1F8A;</span> <span title="U+1F83">&#x1F83; &#x1F8B;</span> <span title="U+1F84">&#x1F84; &#x1F8C;</span> <span title="U+1F85">&#x1F85; &#x1F8D;</span> <span title="U+1F86">&#x1F86; &#x1F8E;</span> <span title="U+1F87">&#x1F87; &#x1F8F;</span> <span title="U+1F90">&#x1F90; &#x1F98;</span> <span title="U+1F91">&#x1F91; &#x1F99;</span> <span title="U+1F92">&#x1F92; &#x1F9A;</span> <span title="U+1F93">&#x1F93; &#x1F9B;</span> <span title="U+1F94">&#x1F94; &#x1F9C;</span> <span title="U+1F95">&#x1F95; &#x1F9D;</span> <span title="U+1F96">&#x1F96; &#x1F9E;</span> <span title="U+1F97">&#x1F97; &#x1F9F;</span> <span title="U+1FA0">&#x1FA0; &#x1FA8;</span> <span title="U+1FA1">&#x1FA1; &#x1FA9;</span> <span title="U+1FA2">&#x1FA2; &#x1FAA;</span> <span title="U+1FA3">&#x1FA3; &#x1FAB;</span> <span title="U+1FA4">&#x1FA4; &#x1FAC;</span> <span title="U+1FA5">&#x1FA5; &#x1FAD;</span> <span title="U+1FA6">&#x1FA6; &#x1FAE;</span> <span title="U+1FA7">&#x1FA7; &#x1FAF;</span> <span title="U+1FB0">&#x1FB0; &#x1FB8;</span> <span title="U+1FB1">&#x1FB1; &#x1FB9;</span> <span title="U+1FB3">&#x1FB3; &#x1FBC;</span> <span title="U+1FBE">&#x1FBE; &#x0399;</span> <span title="U+1FC3">&#x1FC3; &#x1FCC;</span> <span title="U+1FD0">&#x1FD0; &#x1FD8;</span> <span title="U+1FD1">&#x1FD1; &#x1FD9;</span> <span title="U+1FE0">&#x1FE0; &#x1FE8;</span> <span title="U+1FE1">&#x1FE1; &#x1FE9;</span> <span title="U+1FE5">&#x1FE5; &#x1FEC;</span> <span title="U+1FF3">&#x1FF3; &#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/text-transform-upperlower-017.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-017.html
new file mode 100644
index 0000000000..e35cb4c359
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-017.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek Extended, lowercase</title>
+<meta name="assert" content="For the Greek Extended Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-017-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x1F08; &#x1F00;</span> <span title="U+1F09">&#x1F09; &#x1F01;</span> <span title="U+1F0A">&#x1F0A; &#x1F02;</span> <span title="U+1F0B">&#x1F0B; &#x1F03;</span> <span title="U+1F0C">&#x1F0C; &#x1F04;</span> <span title="U+1F0D">&#x1F0D; &#x1F05;</span> <span title="U+1F0E">&#x1F0E; &#x1F06;</span> <span title="U+1F0F">&#x1F0F; &#x1F07;</span> <span title="U+1F18">&#x1F18; &#x1F10;</span> <span title="U+1F19">&#x1F19; &#x1F11;</span> <span title="U+1F1A">&#x1F1A; &#x1F12;</span> <span title="U+1F1B">&#x1F1B; &#x1F13;</span> <span title="U+1F1C">&#x1F1C; &#x1F14;</span> <span title="U+1F1D">&#x1F1D; &#x1F15;</span> <span title="U+1F28">&#x1F28; &#x1F20;</span> <span title="U+1F29">&#x1F29; &#x1F21;</span> <span title="U+1F2A">&#x1F2A; &#x1F22;</span> <span title="U+1F2B">&#x1F2B; &#x1F23;</span> <span title="U+1F2C">&#x1F2C; &#x1F24;</span> <span title="U+1F2D">&#x1F2D; &#x1F25;</span> <span title="U+1F2E">&#x1F2E; &#x1F26;</span> <span title="U+1F2F">&#x1F2F; &#x1F27;</span> <span title="U+1F38">&#x1F38; &#x1F30;</span> <span title="U+1F39">&#x1F39; &#x1F31;</span> <span title="U+1F3A">&#x1F3A; &#x1F32;</span> <span title="U+1F3B">&#x1F3B; &#x1F33;</span> <span title="U+1F3C">&#x1F3C; &#x1F34;</span> <span title="U+1F3D">&#x1F3D; &#x1F35;</span> <span title="U+1F3E">&#x1F3E; &#x1F36;</span> <span title="U+1F3F">&#x1F3F; &#x1F37;</span> <span title="U+1F48">&#x1F48; &#x1F40;</span> <span title="U+1F49">&#x1F49; &#x1F41;</span> <span title="U+1F4A">&#x1F4A; &#x1F42;</span> <span title="U+1F4B">&#x1F4B; &#x1F43;</span> <span title="U+1F4C">&#x1F4C; &#x1F44;</span> <span title="U+1F4D">&#x1F4D; &#x1F45;</span> <span title="U+1F59">&#x1F59; &#x1F51;</span> <span title="U+1F5B">&#x1F5B; &#x1F53;</span> <span title="U+1F5D">&#x1F5D; &#x1F55;</span> <span title="U+1F5F">&#x1F5F; &#x1F57;</span> <span title="U+1F68">&#x1F68; &#x1F60;</span> <span title="U+1F69">&#x1F69; &#x1F61;</span> <span title="U+1F6A">&#x1F6A; &#x1F62;</span> <span title="U+1F6B">&#x1F6B; &#x1F63;</span> <span title="U+1F6C">&#x1F6C; &#x1F64;</span> <span title="U+1F6D">&#x1F6D; &#x1F65;</span> <span title="U+1F6E">&#x1F6E; &#x1F66;</span> <span title="U+1F6F">&#x1F6F; &#x1F67;</span> <span title="U+1F88">&#x1F88; &#x1F80;</span> <span title="U+1F89">&#x1F89; &#x1F81;</span> <span title="U+1F8A">&#x1F8A; &#x1F82;</span> <span title="U+1F8B">&#x1F8B; &#x1F83;</span> <span title="U+1F8C">&#x1F8C; &#x1F84;</span> <span title="U+1F8D">&#x1F8D; &#x1F85;</span> <span title="U+1F8E">&#x1F8E; &#x1F86;</span> <span title="U+1F8F">&#x1F8F; &#x1F87;</span> <span title="U+1F98">&#x1F98; &#x1F90;</span> <span title="U+1F99">&#x1F99; &#x1F91;</span> <span title="U+1F9A">&#x1F9A; &#x1F92;</span> <span title="U+1F9B">&#x1F9B; &#x1F93;</span> <span title="U+1F9C">&#x1F9C; &#x1F94;</span> <span title="U+1F9D">&#x1F9D; &#x1F95;</span> <span title="U+1F9E">&#x1F9E; &#x1F96;</span> <span title="U+1F9F">&#x1F9F; &#x1F97;</span> <span title="U+1FA8">&#x1FA8; &#x1FA0;</span> <span title="U+1FA9">&#x1FA9; &#x1FA1;</span> <span title="U+1FAA">&#x1FAA; &#x1FA2;</span> <span title="U+1FAB">&#x1FAB; &#x1FA3;</span> <span title="U+1FAC">&#x1FAC; &#x1FA4;</span> <span title="U+1FAD">&#x1FAD; &#x1FA5;</span> <span title="U+1FAE">&#x1FAE; &#x1FA6;</span> <span title="U+1FAF">&#x1FAF; &#x1FA7;</span> <span title="U+1FB8">&#x1FB8; &#x1FB0;</span> <span title="U+1FB9">&#x1FB9; &#x1FB1;</span> <span title="U+1FBA">&#x1FBA; &#x1F70;</span> <span title="U+1FBB">&#x1FBB; &#x1F71;</span> <span title="U+1FBC">&#x1FBC; &#x1FB3;</span> <span title="U+1FC8">&#x1FC8; &#x1F72;</span> <span title="U+1FC9">&#x1FC9; &#x1F73;</span> <span title="U+1FCA">&#x1FCA; &#x1F74;</span> <span title="U+1FCB">&#x1FCB; &#x1F75;</span> <span title="U+1FCC">&#x1FCC; &#x1FC3;</span> <span title="U+1FD8">&#x1FD8; &#x1FD0;</span> <span title="U+1FD9">&#x1FD9; &#x1FD1;</span> <span title="U+1FDA">&#x1FDA; &#x1F76;</span> <span title="U+1FDB">&#x1FDB; &#x1F77;</span> <span title="U+1FE8">&#x1FE8; &#x1FE0;</span> <span title="U+1FE9">&#x1FE9; &#x1FE1;</span> <span title="U+1FEA">&#x1FEA; &#x1F7A;</span> <span title="U+1FEB">&#x1FEB; &#x1F7B;</span> <span title="U+1FEC">&#x1FEC; &#x1FE5;</span> <span title="U+1FF8">&#x1FF8; &#x1F78;</span> <span title="U+1FF9">&#x1FF9; &#x1F79;</span> <span title="U+1FFA">&#x1FFA; &#x1F7C;</span> <span title="U+1FFB">&#x1FFB; &#x1F7D;</span> <span title="U+1FFC">&#x1FFC; &#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/text-transform-upperlower-018.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-018.html
new file mode 100644
index 0000000000..ea636e2eda
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-018.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic, uppercase</title>
+<meta name="assert" content="For the Cyrillic Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-018-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0430; &#x0410;</span> <span title="U+0431">&#x0431; &#x0411;</span> <span title="U+0432">&#x0432; &#x0412;</span> <span title="U+0433">&#x0433; &#x0413;</span> <span title="U+0434">&#x0434; &#x0414;</span> <span title="U+0435">&#x0435; &#x0415;</span> <span title="U+0436">&#x0436; &#x0416;</span> <span title="U+0437">&#x0437; &#x0417;</span> <span title="U+0438">&#x0438; &#x0418;</span> <span title="U+0439">&#x0439; &#x0419;</span> <span title="U+043A">&#x043A; &#x041A;</span> <span title="U+043B">&#x043B; &#x041B;</span> <span title="U+043C">&#x043C; &#x041C;</span> <span title="U+043D">&#x043D; &#x041D;</span> <span title="U+043E">&#x043E; &#x041E;</span> <span title="U+043F">&#x043F; &#x041F;</span> <span title="U+0440">&#x0440; &#x0420;</span> <span title="U+0441">&#x0441; &#x0421;</span> <span title="U+0442">&#x0442; &#x0422;</span> <span title="U+0443">&#x0443; &#x0423;</span> <span title="U+0444">&#x0444; &#x0424;</span> <span title="U+0445">&#x0445; &#x0425;</span> <span title="U+0446">&#x0446; &#x0426;</span> <span title="U+0447">&#x0447; &#x0427;</span> <span title="U+0448">&#x0448; &#x0428;</span> <span title="U+0449">&#x0449; &#x0429;</span> <span title="U+044A">&#x044A; &#x042A;</span> <span title="U+044B">&#x044B; &#x042B;</span> <span title="U+044C">&#x044C; &#x042C;</span> <span title="U+044D">&#x044D; &#x042D;</span> <span title="U+044E">&#x044E; &#x042E;</span> <span title="U+044F">&#x044F; &#x042F;</span> <span title="U+0450">&#x0450; &#x0400;</span> <span title="U+0451">&#x0451; &#x0401;</span> <span title="U+0452">&#x0452; &#x0402;</span> <span title="U+0453">&#x0453; &#x0403;</span> <span title="U+0454">&#x0454; &#x0404;</span> <span title="U+0455">&#x0455; &#x0405;</span> <span title="U+0456">&#x0456; &#x0406;</span> <span title="U+0457">&#x0457; &#x0407;</span> <span title="U+0458">&#x0458; &#x0408;</span> <span title="U+0459">&#x0459; &#x0409;</span> <span title="U+045A">&#x045A; &#x040A;</span> <span title="U+045B">&#x045B; &#x040B;</span> <span title="U+045C">&#x045C; &#x040C;</span> <span title="U+045D">&#x045D; &#x040D;</span> <span title="U+045E">&#x045E; &#x040E;</span> <span title="U+045F">&#x045F; &#x040F;</span> <span title="U+0461">&#x0461; &#x0460;</span> <span title="U+0463">&#x0463; &#x0462;</span> <span title="U+0465">&#x0465; &#x0464;</span> <span title="U+0467">&#x0467; &#x0466;</span> <span title="U+0469">&#x0469; &#x0468;</span> <span title="U+046B">&#x046B; &#x046A;</span> <span title="U+046D">&#x046D; &#x046C;</span> <span title="U+046F">&#x046F; &#x046E;</span> <span title="U+0471">&#x0471; &#x0470;</span> <span title="U+0473">&#x0473; &#x0472;</span> <span title="U+0475">&#x0475; &#x0474;</span> <span title="U+0477">&#x0477; &#x0476;</span> <span title="U+0479">&#x0479; &#x0478;</span> <span title="U+047B">&#x047B; &#x047A;</span> <span title="U+047D">&#x047D; &#x047C;</span> <span title="U+047F">&#x047F; &#x047E;</span> <span title="U+0481">&#x0481; &#x0480;</span> <span title="U+048B">&#x048B; &#x048A;</span> <span title="U+048D">&#x048D; &#x048C;</span> <span title="U+048F">&#x048F; &#x048E;</span> <span title="U+0491">&#x0491; &#x0490;</span> <span title="U+0493">&#x0493; &#x0492;</span> <span title="U+0495">&#x0495; &#x0494;</span> <span title="U+0497">&#x0497; &#x0496;</span> <span title="U+0499">&#x0499; &#x0498;</span> <span title="U+049B">&#x049B; &#x049A;</span> <span title="U+049D">&#x049D; &#x049C;</span> <span title="U+049F">&#x049F; &#x049E;</span> <span title="U+04A1">&#x04A1; &#x04A0;</span> <span title="U+04A3">&#x04A3; &#x04A2;</span> <span title="U+04A5">&#x04A5; &#x04A4;</span> <span title="U+04A7">&#x04A7; &#x04A6;</span> <span title="U+04A9">&#x04A9; &#x04A8;</span> <span title="U+04AB">&#x04AB; &#x04AA;</span> <span title="U+04AD">&#x04AD; &#x04AC;</span> <span title="U+04AF">&#x04AF; &#x04AE;</span> <span title="U+04B1">&#x04B1; &#x04B0;</span> <span title="U+04B3">&#x04B3; &#x04B2;</span> <span title="U+04B5">&#x04B5; &#x04B4;</span> <span title="U+04B7">&#x04B7; &#x04B6;</span> <span title="U+04B9">&#x04B9; &#x04B8;</span> <span title="U+04BB">&#x04BB; &#x04BA;</span> <span title="U+04BD">&#x04BD; &#x04BC;</span> <span title="U+04BF">&#x04BF; &#x04BE;</span> <span title="U+04C2">&#x04C2; &#x04C1;</span> <span title="U+04C4">&#x04C4; &#x04C3;</span> <span title="U+04C6">&#x04C6; &#x04C5;</span> <span title="U+04C8">&#x04C8; &#x04C7;</span> <span title="U+04CA">&#x04CA; &#x04C9;</span> <span title="U+04CC">&#x04CC; &#x04CB;</span> <span title="U+04CE">&#x04CE; &#x04CD;</span> <span title="U+04CF">&#x04CF; &#x04C0;</span> <span title="U+04D1">&#x04D1; &#x04D0;</span> <span title="U+04D3">&#x04D3; &#x04D2;</span> <span title="U+04D5">&#x04D5; &#x04D4;</span> <span title="U+04D7">&#x04D7; &#x04D6;</span> <span title="U+04D9">&#x04D9; &#x04D8;</span> <span title="U+04DB">&#x04DB; &#x04DA;</span> <span title="U+04DD">&#x04DD; &#x04DC;</span> <span title="U+04DF">&#x04DF; &#x04DE;</span> <span title="U+04E1">&#x04E1; &#x04E0;</span> <span title="U+04E3">&#x04E3; &#x04E2;</span> <span title="U+04E5">&#x04E5; &#x04E4;</span> <span title="U+04E7">&#x04E7; &#x04E6;</span> <span title="U+04E9">&#x04E9; &#x04E8;</span> <span title="U+04EB">&#x04EB; &#x04EA;</span> <span title="U+04ED">&#x04ED; &#x04EC;</span> <span title="U+04EF">&#x04EF; &#x04EE;</span> <span title="U+04F1">&#x04F1; &#x04F0;</span> <span title="U+04F3">&#x04F3; &#x04F2;</span> <span title="U+04F5">&#x04F5; &#x04F4;</span> <span title="U+04F7">&#x04F7; &#x04F6;</span> <span title="U+04F9">&#x04F9; &#x04F8;</span> <span title="U+04FB">&#x04FB; &#x04FA;</span> <span title="U+04FD">&#x04FD; &#x04FC;</span> <span title="U+04FF">&#x04FF; &#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/text-transform-upperlower-019.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-019.html
new file mode 100644
index 0000000000..ceac92f14e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-019.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic, lowercase</title>
+<meta name="assert" content="For the Cyrillic Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-019-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0400; &#x0450;</span> <span title="U+0401">&#x0401; &#x0451;</span> <span title="U+0402">&#x0402; &#x0452;</span> <span title="U+0403">&#x0403; &#x0453;</span> <span title="U+0404">&#x0404; &#x0454;</span> <span title="U+0405">&#x0405; &#x0455;</span> <span title="U+0406">&#x0406; &#x0456;</span> <span title="U+0407">&#x0407; &#x0457;</span> <span title="U+0408">&#x0408; &#x0458;</span> <span title="U+0409">&#x0409; &#x0459;</span> <span title="U+040A">&#x040A; &#x045A;</span> <span title="U+040B">&#x040B; &#x045B;</span> <span title="U+040C">&#x040C; &#x045C;</span> <span title="U+040D">&#x040D; &#x045D;</span> <span title="U+040E">&#x040E; &#x045E;</span> <span title="U+040F">&#x040F; &#x045F;</span> <span title="U+0410">&#x0410; &#x0430;</span> <span title="U+0411">&#x0411; &#x0431;</span> <span title="U+0412">&#x0412; &#x0432;</span> <span title="U+0413">&#x0413; &#x0433;</span> <span title="U+0414">&#x0414; &#x0434;</span> <span title="U+0415">&#x0415; &#x0435;</span> <span title="U+0416">&#x0416; &#x0436;</span> <span title="U+0417">&#x0417; &#x0437;</span> <span title="U+0418">&#x0418; &#x0438;</span> <span title="U+0419">&#x0419; &#x0439;</span> <span title="U+041A">&#x041A; &#x043A;</span> <span title="U+041B">&#x041B; &#x043B;</span> <span title="U+041C">&#x041C; &#x043C;</span> <span title="U+041D">&#x041D; &#x043D;</span> <span title="U+041E">&#x041E; &#x043E;</span> <span title="U+041F">&#x041F; &#x043F;</span> <span title="U+0420">&#x0420; &#x0440;</span> <span title="U+0421">&#x0421; &#x0441;</span> <span title="U+0422">&#x0422; &#x0442;</span> <span title="U+0423">&#x0423; &#x0443;</span> <span title="U+0424">&#x0424; &#x0444;</span> <span title="U+0425">&#x0425; &#x0445;</span> <span title="U+0426">&#x0426; &#x0446;</span> <span title="U+0427">&#x0427; &#x0447;</span> <span title="U+0428">&#x0428; &#x0448;</span> <span title="U+0429">&#x0429; &#x0449;</span> <span title="U+042A">&#x042A; &#x044A;</span> <span title="U+042B">&#x042B; &#x044B;</span> <span title="U+042C">&#x042C; &#x044C;</span> <span title="U+042D">&#x042D; &#x044D;</span> <span title="U+042E">&#x042E; &#x044E;</span> <span title="U+042F">&#x042F; &#x044F;</span> <span title="U+0460">&#x0460; &#x0461;</span> <span title="U+0462">&#x0462; &#x0463;</span> <span title="U+0464">&#x0464; &#x0465;</span> <span title="U+0466">&#x0466; &#x0467;</span> <span title="U+0468">&#x0468; &#x0469;</span> <span title="U+046A">&#x046A; &#x046B;</span> <span title="U+046C">&#x046C; &#x046D;</span> <span title="U+046E">&#x046E; &#x046F;</span> <span title="U+0470">&#x0470; &#x0471;</span> <span title="U+0472">&#x0472; &#x0473;</span> <span title="U+0474">&#x0474; &#x0475;</span> <span title="U+0476">&#x0476; &#x0477;</span> <span title="U+0478">&#x0478; &#x0479;</span> <span title="U+047A">&#x047A; &#x047B;</span> <span title="U+047C">&#x047C; &#x047D;</span> <span title="U+047E">&#x047E; &#x047F;</span> <span title="U+0480">&#x0480; &#x0481;</span> <span title="U+048A">&#x048A; &#x048B;</span> <span title="U+048C">&#x048C; &#x048D;</span> <span title="U+048E">&#x048E; &#x048F;</span> <span title="U+0490">&#x0490; &#x0491;</span> <span title="U+0492">&#x0492; &#x0493;</span> <span title="U+0494">&#x0494; &#x0495;</span> <span title="U+0496">&#x0496; &#x0497;</span> <span title="U+0498">&#x0498; &#x0499;</span> <span title="U+049A">&#x049A; &#x049B;</span> <span title="U+049C">&#x049C; &#x049D;</span> <span title="U+049E">&#x049E; &#x049F;</span> <span title="U+04A0">&#x04A0; &#x04A1;</span> <span title="U+04A2">&#x04A2; &#x04A3;</span> <span title="U+04A4">&#x04A4; &#x04A5;</span> <span title="U+04A6">&#x04A6; &#x04A7;</span> <span title="U+04A8">&#x04A8; &#x04A9;</span> <span title="U+04AA">&#x04AA; &#x04AB;</span> <span title="U+04AC">&#x04AC; &#x04AD;</span> <span title="U+04AE">&#x04AE; &#x04AF;</span> <span title="U+04B0">&#x04B0; &#x04B1;</span> <span title="U+04B2">&#x04B2; &#x04B3;</span> <span title="U+04B4">&#x04B4; &#x04B5;</span> <span title="U+04B6">&#x04B6; &#x04B7;</span> <span title="U+04B8">&#x04B8; &#x04B9;</span> <span title="U+04BA">&#x04BA; &#x04BB;</span> <span title="U+04BC">&#x04BC; &#x04BD;</span> <span title="U+04BE">&#x04BE; &#x04BF;</span> <span title="U+04C0">&#x04C0; &#x04CF;</span> <span title="U+04C1">&#x04C1; &#x04C2;</span> <span title="U+04C3">&#x04C3; &#x04C4;</span> <span title="U+04C5">&#x04C5; &#x04C6;</span> <span title="U+04C7">&#x04C7; &#x04C8;</span> <span title="U+04C9">&#x04C9; &#x04CA;</span> <span title="U+04CB">&#x04CB; &#x04CC;</span> <span title="U+04CD">&#x04CD; &#x04CE;</span> <span title="U+04D0">&#x04D0; &#x04D1;</span> <span title="U+04D2">&#x04D2; &#x04D3;</span> <span title="U+04D4">&#x04D4; &#x04D5;</span> <span title="U+04D6">&#x04D6; &#x04D7;</span> <span title="U+04D8">&#x04D8; &#x04D9;</span> <span title="U+04DA">&#x04DA; &#x04DB;</span> <span title="U+04DC">&#x04DC; &#x04DD;</span> <span title="U+04DE">&#x04DE; &#x04DF;</span> <span title="U+04E0">&#x04E0; &#x04E1;</span> <span title="U+04E2">&#x04E2; &#x04E3;</span> <span title="U+04E4">&#x04E4; &#x04E5;</span> <span title="U+04E6">&#x04E6; &#x04E7;</span> <span title="U+04E8">&#x04E8; &#x04E9;</span> <span title="U+04EA">&#x04EA; &#x04EB;</span> <span title="U+04EC">&#x04EC; &#x04ED;</span> <span title="U+04EE">&#x04EE; &#x04EF;</span> <span title="U+04F0">&#x04F0; &#x04F1;</span> <span title="U+04F2">&#x04F2; &#x04F3;</span> <span title="U+04F4">&#x04F4; &#x04F5;</span> <span title="U+04F6">&#x04F6; &#x04F7;</span> <span title="U+04F8">&#x04F8; &#x04F9;</span> <span title="U+04FA">&#x04FA; &#x04FB;</span> <span title="U+04FC">&#x04FC; &#x04FD;</span> <span title="U+04FE">&#x04FE; &#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/text-transform-upperlower-020.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-020.html
new file mode 100644
index 0000000000..8487e688b8
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-020.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Supplement, uppercase</title>
+<meta name="assert" content="For the Cyrillic Supplement Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-020-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0501; &#x0500;</span> <span title="U+0503">&#x0503; &#x0502;</span> <span title="U+0505">&#x0505; &#x0504;</span> <span title="U+0507">&#x0507; &#x0506;</span> <span title="U+0509">&#x0509; &#x0508;</span> <span title="U+050B">&#x050B; &#x050A;</span> <span title="U+050D">&#x050D; &#x050C;</span> <span title="U+050F">&#x050F; &#x050E;</span> <span title="U+0511">&#x0511; &#x0510;</span> <span title="U+0513">&#x0513; &#x0512;</span> <span title="U+0515">&#x0515; &#x0514;</span> <span title="U+0517">&#x0517; &#x0516;</span> <span title="U+0519">&#x0519; &#x0518;</span> <span title="U+051B">&#x051B; &#x051A;</span> <span title="U+051D">&#x051D; &#x051C;</span> <span title="U+051F">&#x051F; &#x051E;</span> <span title="U+0521">&#x0521; &#x0520;</span> <span title="U+0523">&#x0523; &#x0522;</span> <span title="U+0525">&#x0525; &#x0524;</span> <span title="U+0527">&#x0527; &#x0526;</span> <span title="U+0529">&#x0529; &#x0528;</span> <span title="U+052B">&#x052B; &#x052A;</span> <span title="U+052D">&#x052D; &#x052C;</span> <span title="U+052F">&#x052F; &#x052E;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-021.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-021.html
new file mode 100644
index 0000000000..ce5125540c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-021.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended, lowercase</title>
+<meta name="assert" content="For the Cyrillic Extended Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-021-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0500; &#x0501;</span> <span title="U+0502">&#x0502; &#x0503;</span> <span title="U+0504">&#x0504; &#x0505;</span> <span title="U+0506">&#x0506; &#x0507;</span> <span title="U+0508">&#x0508; &#x0509;</span> <span title="U+050A">&#x050A; &#x050B;</span> <span title="U+050C">&#x050C; &#x050D;</span> <span title="U+050E">&#x050E; &#x050F;</span> <span title="U+0510">&#x0510; &#x0511;</span> <span title="U+0512">&#x0512; &#x0513;</span> <span title="U+0514">&#x0514; &#x0515;</span> <span title="U+0516">&#x0516; &#x0517;</span> <span title="U+0518">&#x0518; &#x0519;</span> <span title="U+051A">&#x051A; &#x051B;</span> <span title="U+051C">&#x051C; &#x051D;</span> <span title="U+051E">&#x051E; &#x051F;</span> <span title="U+0520">&#x0520; &#x0521;</span> <span title="U+0522">&#x0522; &#x0523;</span> <span title="U+0524">&#x0524; &#x0525;</span> <span title="U+0526">&#x0526; &#x0527;</span> <span title="U+0528">&#x0528; &#x0529;</span> <span title="U+052A">&#x052A; &#x052B;</span> <span title="U+052C">&#x052C; &#x052D;</span> <span title="U+052E">&#x052E; &#x052F;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-022.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-022.html
new file mode 100644
index 0000000000..cdfd7068a3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-022.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Armenian, uppercase</title>
+<meta name="assert" content="For the ArmenianUnicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-022-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x0561; &#x0531;</span> <span title="U+0562">&#x0562; &#x0532;</span> <span title="U+0563">&#x0563; &#x0533;</span> <span title="U+0564">&#x0564; &#x0534;</span> <span title="U+0565">&#x0565; &#x0535;</span> <span title="U+0566">&#x0566; &#x0536;</span> <span title="U+0567">&#x0567; &#x0537;</span> <span title="U+0568">&#x0568; &#x0538;</span> <span title="U+0569">&#x0569; &#x0539;</span> <span title="U+056A">&#x056A; &#x053A;</span> <span title="U+056B">&#x056B; &#x053B;</span> <span title="U+056C">&#x056C; &#x053C;</span> <span title="U+056D">&#x056D; &#x053D;</span> <span title="U+056E">&#x056E; &#x053E;</span> <span title="U+056F">&#x056F; &#x053F;</span> <span title="U+0570">&#x0570; &#x0540;</span> <span title="U+0571">&#x0571; &#x0541;</span> <span title="U+0572">&#x0572; &#x0542;</span> <span title="U+0573">&#x0573; &#x0543;</span> <span title="U+0574">&#x0574; &#x0544;</span> <span title="U+0575">&#x0575; &#x0545;</span> <span title="U+0576">&#x0576; &#x0546;</span> <span title="U+0577">&#x0577; &#x0547;</span> <span title="U+0578">&#x0578; &#x0548;</span> <span title="U+0579">&#x0579; &#x0549;</span> <span title="U+057A">&#x057A; &#x054A;</span> <span title="U+057B">&#x057B; &#x054B;</span> <span title="U+057C">&#x057C; &#x054C;</span> <span title="U+057D">&#x057D; &#x054D;</span> <span title="U+057E">&#x057E; &#x054E;</span> <span title="U+057F">&#x057F; &#x054F;</span> <span title="U+0580">&#x0580; &#x0550;</span> <span title="U+0581">&#x0581; &#x0551;</span> <span title="U+0582">&#x0582; &#x0552;</span> <span title="U+0583">&#x0583; &#x0553;</span> <span title="U+0584">&#x0584; &#x0554;</span> <span title="U+0585">&#x0585; &#x0555;</span> <span title="U+0586">&#x0586; &#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/text-transform-upperlower-023.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-023.html
new file mode 100644
index 0000000000..f79980f39b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-023.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, lowercase</title>
+<meta name="assert" content="For the Latin Extended-D Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-023-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x0531; &#x0561;</span> <span title="U+0532">&#x0532; &#x0562;</span> <span title="U+0533">&#x0533; &#x0563;</span> <span title="U+0534">&#x0534; &#x0564;</span> <span title="U+0535">&#x0535; &#x0565;</span> <span title="U+0536">&#x0536; &#x0566;</span> <span title="U+0537">&#x0537; &#x0567;</span> <span title="U+0538">&#x0538; &#x0568;</span> <span title="U+0539">&#x0539; &#x0569;</span> <span title="U+053A">&#x053A; &#x056A;</span> <span title="U+053B">&#x053B; &#x056B;</span> <span title="U+053C">&#x053C; &#x056C;</span> <span title="U+053D">&#x053D; &#x056D;</span> <span title="U+053E">&#x053E; &#x056E;</span> <span title="U+053F">&#x053F; &#x056F;</span> <span title="U+0540">&#x0540; &#x0570;</span> <span title="U+0541">&#x0541; &#x0571;</span> <span title="U+0542">&#x0542; &#x0572;</span> <span title="U+0543">&#x0543; &#x0573;</span> <span title="U+0544">&#x0544; &#x0574;</span> <span title="U+0545">&#x0545; &#x0575;</span> <span title="U+0546">&#x0546; &#x0576;</span> <span title="U+0547">&#x0547; &#x0577;</span> <span title="U+0548">&#x0548; &#x0578;</span> <span title="U+0549">&#x0549; &#x0579;</span> <span title="U+054A">&#x054A; &#x057A;</span> <span title="U+054B">&#x054B; &#x057B;</span> <span title="U+054C">&#x054C; &#x057C;</span> <span title="U+054D">&#x054D; &#x057D;</span> <span title="U+054E">&#x054E; &#x057E;</span> <span title="U+054F">&#x054F; &#x057F;</span> <span title="U+0550">&#x0550; &#x0580;</span> <span title="U+0551">&#x0551; &#x0581;</span> <span title="U+0552">&#x0552; &#x0582;</span> <span title="U+0553">&#x0553; &#x0583;</span> <span title="U+0554">&#x0554; &#x0584;</span> <span title="U+0555">&#x0555; &#x0585;</span> <span title="U+0556">&#x0556; &#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/text-transform-upperlower-024.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-024.html
new file mode 100644
index 0000000000..0511872c7e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-024.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Number Forms, uppercase</title>
+<meta name="assert" content="For the Number Forms Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-024-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x2170; &#x2160;</span> <span title="U+2171">&#x2171; &#x2161;</span> <span title="U+2172">&#x2172; &#x2162;</span> <span title="U+2173">&#x2173; &#x2163;</span> <span title="U+2174">&#x2174; &#x2164;</span> <span title="U+2175">&#x2175; &#x2165;</span> <span title="U+2176">&#x2176; &#x2166;</span> <span title="U+2177">&#x2177; &#x2167;</span> <span title="U+2178">&#x2178; &#x2168;</span> <span title="U+2179">&#x2179; &#x2169;</span> <span title="U+217A">&#x217A; &#x216A;</span> <span title="U+217B">&#x217B; &#x216B;</span> <span title="U+217C">&#x217C; &#x216C;</span> <span title="U+217D">&#x217D; &#x216D;</span> <span title="U+217E">&#x217E; &#x216E;</span> <span title="U+217F">&#x217F; &#x216F;</span> <span title="U+2184">&#x2184; &#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/text-transform-upperlower-025.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-025.html
new file mode 100644
index 0000000000..ce906c08fd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-025.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Number Forms, lowercase</title>
+<meta name="assert" content="For the Number Forms Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-025-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x2160; &#x2170;</span> <span title="U+2161">&#x2161; &#x2171;</span> <span title="U+2162">&#x2162; &#x2172;</span> <span title="U+2163">&#x2163; &#x2173;</span> <span title="U+2164">&#x2164; &#x2174;</span> <span title="U+2165">&#x2165; &#x2175;</span> <span title="U+2166">&#x2166; &#x2176;</span> <span title="U+2167">&#x2167; &#x2177;</span> <span title="U+2168">&#x2168; &#x2178;</span> <span title="U+2169">&#x2169; &#x2179;</span> <span title="U+216A">&#x216A; &#x217A;</span> <span title="U+216B">&#x216B; &#x217B;</span> <span title="U+216C">&#x216C; &#x217C;</span> <span title="U+216D">&#x216D; &#x217D;</span> <span title="U+216E">&#x216E; &#x217E;</span> <span title="U+216F">&#x216F; &#x217F;</span> <span title="U+2183">&#x2183; &#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/text-transform-upperlower-026.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-026.html
new file mode 100644
index 0000000000..7694acb7a6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-026.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Enclosed Alphanumerics, uppercase</title>
+<meta name="assert" content="For the Enclosed Alphanumerics Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-026-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x24D0; &#x24B6;</span> <span title="U+24D1">&#x24D1; &#x24B7;</span> <span title="U+24D2">&#x24D2; &#x24B8;</span> <span title="U+24D3">&#x24D3; &#x24B9;</span> <span title="U+24D4">&#x24D4; &#x24BA;</span> <span title="U+24D5">&#x24D5; &#x24BB;</span> <span title="U+24D6">&#x24D6; &#x24BC;</span> <span title="U+24D7">&#x24D7; &#x24BD;</span> <span title="U+24D8">&#x24D8; &#x24BE;</span> <span title="U+24D9">&#x24D9; &#x24BF;</span> <span title="U+24DA">&#x24DA; &#x24C0;</span> <span title="U+24DB">&#x24DB; &#x24C1;</span> <span title="U+24DC">&#x24DC; &#x24C2;</span> <span title="U+24DD">&#x24DD; &#x24C3;</span> <span title="U+24DE">&#x24DE; &#x24C4;</span> <span title="U+24DF">&#x24DF; &#x24C5;</span> <span title="U+24E0">&#x24E0; &#x24C6;</span> <span title="U+24E1">&#x24E1; &#x24C7;</span> <span title="U+24E2">&#x24E2; &#x24C8;</span> <span title="U+24E3">&#x24E3; &#x24C9;</span> <span title="U+24E4">&#x24E4; &#x24CA;</span> <span title="U+24E5">&#x24E5; &#x24CB;</span> <span title="U+24E6">&#x24E6; &#x24CC;</span> <span title="U+24E7">&#x24E7; &#x24CD;</span> <span title="U+24E8">&#x24E8; &#x24CE;</span> <span title="U+24E9">&#x24E9; &#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/text-transform-upperlower-027.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-027.html
new file mode 100644
index 0000000000..3f892c502b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-027.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Enclosed Alphanumerics, lowercase</title>
+<meta name="assert" content="For the Enclosed Alphanumerics Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-027-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x24B6; &#x24D0;</span> <span title="U+24B7">&#x24B7; &#x24D1;</span> <span title="U+24B8">&#x24B8; &#x24D2;</span> <span title="U+24B9">&#x24B9; &#x24D3;</span> <span title="U+24BA">&#x24BA; &#x24D4;</span> <span title="U+24BB">&#x24BB; &#x24D5;</span> <span title="U+24BC">&#x24BC; &#x24D6;</span> <span title="U+24BD">&#x24BD; &#x24D7;</span> <span title="U+24BE">&#x24BE; &#x24D8;</span> <span title="U+24BF">&#x24BF; &#x24D9;</span> <span title="U+24C0">&#x24C0; &#x24DA;</span> <span title="U+24C1">&#x24C1; &#x24DB;</span> <span title="U+24C2">&#x24C2; &#x24DC;</span> <span title="U+24C3">&#x24C3; &#x24DD;</span> <span title="U+24C4">&#x24C4; &#x24DE;</span> <span title="U+24C5">&#x24C5; &#x24DF;</span> <span title="U+24C6">&#x24C6; &#x24E0;</span> <span title="U+24C7">&#x24C7; &#x24E1;</span> <span title="U+24C8">&#x24C8; &#x24E2;</span> <span title="U+24C9">&#x24C9; &#x24E3;</span> <span title="U+24CA">&#x24CA; &#x24E4;</span> <span title="U+24CB">&#x24CB; &#x24E5;</span> <span title="U+24CC">&#x24CC; &#x24E6;</span> <span title="U+24CD">&#x24CD; &#x24E7;</span> <span title="U+24CE">&#x24CE; &#x24E8;</span> <span title="U+24CF">&#x24CF; &#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/text-transform-upperlower-028.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-028.html
new file mode 100644
index 0000000000..41b7711b26
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-028.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Deseret, uppercase</title>
+<meta name="assert" content="For the Deseret Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-028-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x10428; &#x10400;</span> <span title="U+10429">&#x10429; &#x10401;</span> <span title="U+1042A">&#x1042A; &#x10402;</span> <span title="U+1042B">&#x1042B; &#x10403;</span> <span title="U+1042C">&#x1042C; &#x10404;</span> <span title="U+1042D">&#x1042D; &#x10405;</span> <span title="U+1042E">&#x1042E; &#x10406;</span> <span title="U+1042F">&#x1042F; &#x10407;</span> <span title="U+10430">&#x10430; &#x10408;</span> <span title="U+10431">&#x10431; &#x10409;</span> <span title="U+10432">&#x10432; &#x1040A;</span> <span title="U+10433">&#x10433; &#x1040B;</span> <span title="U+10434">&#x10434; &#x1040C;</span> <span title="U+10435">&#x10435; &#x1040D;</span> <span title="U+10436">&#x10436; &#x1040E;</span> <span title="U+10437">&#x10437; &#x1040F;</span> <span title="U+10438">&#x10438; &#x10410;</span> <span title="U+10439">&#x10439; &#x10411;</span> <span title="U+1043A">&#x1043A; &#x10412;</span> <span title="U+1043B">&#x1043B; &#x10413;</span> <span title="U+1043C">&#x1043C; &#x10414;</span> <span title="U+1043D">&#x1043D; &#x10415;</span> <span title="U+1043E">&#x1043E; &#x10416;</span> <span title="U+1043F">&#x1043F; &#x10417;</span> <span title="U+10440">&#x10440; &#x10418;</span> <span title="U+10441">&#x10441; &#x10419;</span> <span title="U+10442">&#x10442; &#x1041A;</span> <span title="U+10443">&#x10443; &#x1041B;</span> <span title="U+10444">&#x10444; &#x1041C;</span> <span title="U+10445">&#x10445; &#x1041D;</span> <span title="U+10446">&#x10446; &#x1041E;</span> <span title="U+10447">&#x10447; &#x1041F;</span> <span title="U+10448">&#x10448; &#x10420;</span> <span title="U+10449">&#x10449; &#x10421;</span> <span title="U+1044A">&#x1044A; &#x10422;</span> <span title="U+1044B">&#x1044B; &#x10423;</span> <span title="U+1044C">&#x1044C; &#x10424;</span> <span title="U+1044D">&#x1044D; &#x10425;</span> <span title="U+1044E">&#x1044E; &#x10426;</span> <span title="U+1044F">&#x1044F; &#x10427;</span> </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-029.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-029.html
new file mode 100644
index 0000000000..a18a0c651c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-029.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Deseret, lowercase</title>
+<meta name="assert" content="For the Deseret Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-029-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x10400; &#x10428;</span> <span title="U+10401">&#x10401; &#x10429;</span> <span title="U+10402">&#x10402; &#x1042A;</span> <span title="U+10403">&#x10403; &#x1042B;</span> <span title="U+10404">&#x10404; &#x1042C;</span> <span title="U+10405">&#x10405; &#x1042D;</span> <span title="U+10406">&#x10406; &#x1042E;</span> <span title="U+10407">&#x10407; &#x1042F;</span> <span title="U+10408">&#x10408; &#x10430;</span> <span title="U+10409">&#x10409; &#x10431;</span> <span title="U+1040A">&#x1040A; &#x10432;</span> <span title="U+1040B">&#x1040B; &#x10433;</span> <span title="U+1040C">&#x1040C; &#x10434;</span> <span title="U+1040D">&#x1040D; &#x10435;</span> <span title="U+1040E">&#x1040E; &#x10436;</span> <span title="U+1040F">&#x1040F; &#x10437;</span> <span title="U+10410">&#x10410; &#x10438;</span> <span title="U+10411">&#x10411; &#x10439;</span> <span title="U+10412">&#x10412; &#x1043A;</span> <span title="U+10413">&#x10413; &#x1043B;</span> <span title="U+10414">&#x10414; &#x1043C;</span> <span title="U+10415">&#x10415; &#x1043D;</span> <span title="U+10416">&#x10416; &#x1043E;</span> <span title="U+10417">&#x10417; &#x1043F;</span> <span title="U+10418">&#x10418; &#x10440;</span> <span title="U+10419">&#x10419; &#x10441;</span> <span title="U+1041A">&#x1041A; &#x10442;</span> <span title="U+1041B">&#x1041B; &#x10443;</span> <span title="U+1041C">&#x1041C; &#x10444;</span> <span title="U+1041D">&#x1041D; &#x10445;</span> <span title="U+1041E">&#x1041E; &#x10446;</span> <span title="U+1041F">&#x1041F; &#x10447;</span> <span title="U+10420">&#x10420; &#x10448;</span> <span title="U+10421">&#x10421; &#x10449;</span> <span title="U+10422">&#x10422; &#x1044A;</span> <span title="U+10423">&#x10423; &#x1044B;</span> <span title="U+10424">&#x10424; &#x1044C;</span> <span title="U+10425">&#x10425; &#x1044D;</span> <span title="U+10426">&#x10426; &#x1044E;</span> <span title="U+10427">&#x10427; &#x1044F;</span> </div>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-030.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-030.html
new file mode 100644
index 0000000000..635ad68294
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-030.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Georgian Supplement, uppercase</title>
+<meta name="assert" content="For the Georgian Supplement Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-030-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#x2D00; &#x10A0;</span> <span title="U+2D01">&#x2D01; &#x10A1;</span> <span title="U+2D02">&#x2D02; &#x10A2;</span> <span title="U+2D03">&#x2D03; &#x10A3;</span> <span title="U+2D04">&#x2D04; &#x10A4;</span> <span title="U+2D05">&#x2D05; &#x10A5;</span> <span title="U+2D06">&#x2D06; &#x10A6;</span> <span title="U+2D07">&#x2D07; &#x10A7;</span> <span title="U+2D08">&#x2D08; &#x10A8;</span> <span title="U+2D09">&#x2D09; &#x10A9;</span> <span title="U+2D0A">&#x2D0A; &#x10AA;</span> <span title="U+2D0B">&#x2D0B; &#x10AB;</span> <span title="U+2D0C">&#x2D0C; &#x10AC;</span> <span title="U+2D0D">&#x2D0D; &#x10AD;</span> <span title="U+2D0E">&#x2D0E; &#x10AE;</span> <span title="U+2D0F">&#x2D0F; &#x10AF;</span> <span title="U+2D10">&#x2D10; &#x10B0;</span> <span title="U+2D11">&#x2D11; &#x10B1;</span> <span title="U+2D12">&#x2D12; &#x10B2;</span> <span title="U+2D13">&#x2D13; &#x10B3;</span> <span title="U+2D14">&#x2D14; &#x10B4;</span> <span title="U+2D15">&#x2D15; &#x10B5;</span> <span title="U+2D16">&#x2D16; &#x10B6;</span> <span title="U+2D17">&#x2D17; &#x10B7;</span> <span title="U+2D18">&#x2D18; &#x10B8;</span> <span title="U+2D19">&#x2D19; &#x10B9;</span> <span title="U+2D1A">&#x2D1A; &#x10BA;</span> <span title="U+2D1B">&#x2D1B; &#x10BB;</span> <span title="U+2D1C">&#x2D1C; &#x10BC;</span> <span title="U+2D1D">&#x2D1D; &#x10BD;</span> <span title="U+2D1E">&#x2D1E; &#x10BE;</span> <span title="U+2D1F">&#x2D1F; &#x10BF;</span> <span title="U+2D20">&#x2D20; &#x10C0;</span> <span title="U+2D21">&#x2D21; &#x10C1;</span> <span title="U+2D22">&#x2D22; &#x10C2;</span> <span title="U+2D23">&#x2D23; &#x10C3;</span> <span title="U+2D24">&#x2D24; &#x10C4;</span> <span title="U+2D25">&#x2D25; &#x10C5;</span> <span title="U+2D27">&#x2D27; &#x10C7;</span> <span title="U+2D2D">&#x2D2D; &#x10CD;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-031.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-031.html
new file mode 100644
index 0000000000..916e978bc2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-031.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Georgian, lowercase</title>
+<meta name="assert" content="For the Georgian Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-031-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#x10A0; &#x2D00;</span> <span title="U+10A1">&#x10A1; &#x2D01;</span> <span title="U+10A2">&#x10A2; &#x2D02;</span> <span title="U+10A3">&#x10A3; &#x2D03;</span> <span title="U+10A4">&#x10A4; &#x2D04;</span> <span title="U+10A5">&#x10A5; &#x2D05;</span> <span title="U+10A6">&#x10A6; &#x2D06;</span> <span title="U+10A7">&#x10A7; &#x2D07;</span> <span title="U+10A8">&#x10A8; &#x2D08;</span> <span title="U+10A9">&#x10A9; &#x2D09;</span> <span title="U+10AA">&#x10AA; &#x2D0A;</span> <span title="U+10AB">&#x10AB; &#x2D0B;</span> <span title="U+10AC">&#x10AC; &#x2D0C;</span> <span title="U+10AD">&#x10AD; &#x2D0D;</span> <span title="U+10AE">&#x10AE; &#x2D0E;</span> <span title="U+10AF">&#x10AF; &#x2D0F;</span> <span title="U+10B0">&#x10B0; &#x2D10;</span> <span title="U+10B1">&#x10B1; &#x2D11;</span> <span title="U+10B2">&#x10B2; &#x2D12;</span> <span title="U+10B3">&#x10B3; &#x2D13;</span> <span title="U+10B4">&#x10B4; &#x2D14;</span> <span title="U+10B5">&#x10B5; &#x2D15;</span> <span title="U+10B6">&#x10B6; &#x2D16;</span> <span title="U+10B7">&#x10B7; &#x2D17;</span> <span title="U+10B8">&#x10B8; &#x2D18;</span> <span title="U+10B9">&#x10B9; &#x2D19;</span> <span title="U+10BA">&#x10BA; &#x2D1A;</span> <span title="U+10BB">&#x10BB; &#x2D1B;</span> <span title="U+10BC">&#x10BC; &#x2D1C;</span> <span title="U+10BD">&#x10BD; &#x2D1D;</span> <span title="U+10BE">&#x10BE; &#x2D1E;</span> <span title="U+10BF">&#x10BF; &#x2D1F;</span> <span title="U+10C0">&#x10C0; &#x2D20;</span> <span title="U+10C1">&#x10C1; &#x2D21;</span> <span title="U+10C2">&#x10C2; &#x2D22;</span> <span title="U+10C3">&#x10C3; &#x2D23;</span> <span title="U+10C4">&#x10C4; &#x2D24;</span> <span title="U+10C5">&#x10C5; &#x2D25;</span> <span title="U+10C7">&#x10C7; &#x2D27;</span> <span title="U+10CD">&#x10CD; &#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/text-transform-upperlower-032.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-032.html
new file mode 100644
index 0000000000..df784b0655
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-032.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: German sharp S, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase the German sharp S as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-032-ref.html">
+<style type='text/css'>
+.test, .ref { font-size: 125%; line-height: 1.5em; }
+.test span, .ref span { margin-right: 1em; white-space: nowrap; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if both characters below match.</p>
+<div class="test" lang="de"><span>&#x00DF; SS</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-033.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-033.html
new file mode 100644
index 0000000000..a952866b1e
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-033.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin ligatures, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Latin ligatures as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-033-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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>&#xFB00; FF</span> <span>&#xFB01; FI</span> <span>&#xFB02; FL</span> <span>&#xFB03; FFI</span> <span>&#xFB04; FFL</span> <span>&#xFB05; ST</span> <span>&#xFB06; ST</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-034.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-034.html
new file mode 100644
index 0000000000..dc32f3b4c9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-034.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Armenian ligatures, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Armenian ligatures as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-034-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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>&#x0587; &#x0535;&#x0552;</span> <span>&#xFB13; &#x0544;&#x0546;</span> <span>&#xFB14; &#x0544;&#x0535;</span> <span>&#xFB15; &#x0544;&#x053B;</span> <span>&#xFB16; &#x054E;&#x0546;</span> <span>&#xFB17; &#x0544;&#x053D;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-035.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-035.html
new file mode 100644
index 0000000000..f436582d1d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-035.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek specials, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Greek specials as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-035-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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>&#x0149; &#x02BC;N</span> <span>&#x0390; &#x03AA;&#x0301;</span> <span>&#x03B0; &#x03AB;&#x0301;</span> <span>&#x01F0; J&#x030C;</span> <span>&#x1E96; H&#x0331;</span> <span>&#x1E97; T&#x0308;</span> <span>&#x1E98; W&#x030A;</span> <span>&#x1E99; Y&#x030A;</span> <span>&#x1E9A; A&#x02BE;</span> <span>&#x1F50; &#x03A5;&#x0313;</span> <span>&#x1F52; &#x03A5;&#x0313;&#x0300;</span> <span>&#x1F54; &#x03A5;&#x0313;&#x0301;</span> <span>&#x1F56; &#x03A5;&#x0313;&#x0342;</span> <span>&#x1FB6; &#x0391;&#x0342;</span> <span>&#x1FC6; &#x0397;&#x0342;</span> <span>&#x1FD2; &#x03AA;&#x0300;</span> <span>&#x1FD3; &#x03AA;&#x0301;</span> <span>&#x1FD6; &#x0399;&#x0342;</span> <span>&#x1FD7; &#x03AA;&#x0342;</span> <span>&#x1FE2; &#x03AB;&#x0300;</span> <span>&#x1FE3; &#x03AB;&#x0301;</span> <span>&#x1FE4; &#x03A1;&#x0313;</span> <span>&#x1FE6; &#x03A5;&#x0342;</span> <span>&#x1FE7; &#x03AB;&#x0342;</span> <span>&#x1FF6; &#x03A9;&#x0342;</span></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-038.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-038.html
new file mode 100644
index 0000000000..1da4fa3a0c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-038.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Greek final sigma, lowercase</title>
+<meta name="assert" content="text-transform: lowercase will lowercase Greek final sigma at the end of a word as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-038-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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/text-transform-upperlower-039.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-039.html
new file mode 100644
index 0000000000..005d5cb314
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-039.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Lithuanian, lowercase</title>
+<meta name="assert" content="text-transform: lowercase will lowercase Lithuanian as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-039-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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>&#xCC; &#x69;&#x307;&#x300;</span> <span>&#xCD; &#x69;&#x307;&#x301;</span> <span>&#x128; &#x69;&#x307;&#x303;</span>
+ <span>&#x49;&#x300; &#x69;&#x307;&#x300;</span> <span>&#x4A;&#x301; &#x6A;&#x307;&#x301;</span> <span>&#x12E;&#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/text-transform-upperlower-040.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-040.html
new file mode 100644
index 0000000000..c458b53eb3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-040.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Turkish, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Turkish as described in Unicode's SpecialCasing.txt when the language is specified as Turkish.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-040-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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; &#x130;</span> <span>&#x131; &#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/text-transform-upperlower-041.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-041.html
new file mode 100644
index 0000000000..b6e3047724
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-041.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Turkish, lowercase</title>
+<meta name="assert" content="text-transform: lowercase will lowercase Turkish as described in Unicode's SpecialCasing.txt when the language is specified as Turkish.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-041-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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; &#x69;</span> <span>&#x49;&#x307; &#x69;</span> <span>&#x49; &#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/text-transform-upperlower-042.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-042.html
new file mode 100644
index 0000000000..15a777d78d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-042.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Azeri, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Azeri as described in Unicode's SpecialCasing.txt when the language is specified as Azeri.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-042-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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; &#x130;</span> <span>&#x131; &#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/text-transform-upperlower-043.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-043.html
new file mode 100644
index 0000000000..cc943e5669
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-043.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Azeri, lowercase</title>
+<meta name="assert" content="text-transform: lowercase will lowercase Azeri as described in Unicode's SpecialCasing.txt when the language is specified as Azeri.">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-043-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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; &#x69;</span> <span>&#x49;&#x307; &#x69;</span> <span>&#x49; &#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/text-transform-upperlower-044.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-044.html
new file mode 100644
index 0000000000..43e678c24b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-044.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Lithuanian, uppercase</title>
+<meta name="assert" content="text-transform: uppercase will uppercase Lithuanian as described in Unicode's SpecialCasing.txt .">
+<link rel='author' title='Jonathan Kew' href='mailto:jkew@mozilla.com'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-044-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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; &#x49;&#x300;</span>
+ <span>&#x69;&#x307;&#x301; &#x49;&#x301;</span>
+ <span>&#x69;&#x307;&#x303; &#x49;&#x303;</span>
+ <span>&#x69;&#x307; &#x49;</span>
+ <span>&#x6A;&#x307; &#x4A;</span>
+ <span>&#x12F;&#x307; &#x12E;</span>
+ <span>x&#x307; X&#x307;</span> <!-- check that dot isn't deleted in other contexts -->
+</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/text-transform-upperlower-101.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-101.html
new file mode 100644
index 0000000000..1b527467a3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-101.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, uppercase</title>
+<meta name="assert" content="For the Latin Extended-D Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-101-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#xA723; &#xA722;</span> <span title="U+A725">&#xA725; &#xA724;</span> <span title="U+A727">&#xA727; &#xA726;</span> <span title="U+A729">&#xA729; &#xA728;</span> <span title="U+A72B">&#xA72B; &#xA72A;</span> <span title="U+A72D">&#xA72D; &#xA72C;</span> <span title="U+A72F">&#xA72F; &#xA72E;</span> <span title="U+A733">&#xA733; &#xA732;</span> <span title="U+A735">&#xA735; &#xA734;</span> <span title="U+A737">&#xA737; &#xA736;</span> <span title="U+A739">&#xA739; &#xA738;</span> <span title="U+A73B">&#xA73B; &#xA73A;</span> <span title="U+A73D">&#xA73D; &#xA73C;</span> <span title="U+A73F">&#xA73F; &#xA73E;</span> <span title="U+A741">&#xA741; &#xA740;</span> <span title="U+A743">&#xA743; &#xA742;</span> <span title="U+A745">&#xA745; &#xA744;</span> <span title="U+A747">&#xA747; &#xA746;</span> <span title="U+A749">&#xA749; &#xA748;</span> <span title="U+A74B">&#xA74B; &#xA74A;</span> <span title="U+A74D">&#xA74D; &#xA74C;</span> <span title="U+A74F">&#xA74F; &#xA74E;</span> <span title="U+A751">&#xA751; &#xA750;</span> <span title="U+A753">&#xA753; &#xA752;</span> <span title="U+A755">&#xA755; &#xA754;</span> <span title="U+A757">&#xA757; &#xA756;</span> <span title="U+A759">&#xA759; &#xA758;</span> <span title="U+A75B">&#xA75B; &#xA75A;</span> <span title="U+A75D">&#xA75D; &#xA75C;</span> <span title="U+A75F">&#xA75F; &#xA75E;</span> <span title="U+A761">&#xA761; &#xA760;</span> <span title="U+A763">&#xA763; &#xA762;</span> <span title="U+A765">&#xA765; &#xA764;</span> <span title="U+A767">&#xA767; &#xA766;</span> <span title="U+A769">&#xA769; &#xA768;</span> <span title="U+A76B">&#xA76B; &#xA76A;</span> <span title="U+A76D">&#xA76D; &#xA76C;</span> <span title="U+A76F">&#xA76F; &#xA76E;</span> <span title="U+A77A">&#xA77A; &#xA779;</span> <span title="U+A77C">&#xA77C; &#xA77B;</span> <span title="U+A77F">&#xA77F; &#xA77E;</span> <span title="U+A781">&#xA781; &#xA780;</span> <span title="U+A783">&#xA783; &#xA782;</span> <span title="U+A785">&#xA785; &#xA784;</span> <span title="U+A787">&#xA787; &#xA786;</span> <span title="U+A78C">&#xA78C; &#xA78B;</span> <span title="U+A791">&#xA791; &#xA790;</span> <span title="U+A793">&#xA793; &#xA792;</span> <span title="U+A797">&#xA797; &#xA796;</span> <span title="U+A799">&#xA799; &#xA798;</span> <span title="U+A79B">&#xA79B; &#xA79A;</span> <span title="U+A79D">&#xA79D; &#xA79C;</span> <span title="U+A79F">&#xA79F; &#xA79E;</span> <span title="U+A7A1">&#xA7A1; &#xA7A0;</span> <span title="U+A7A3">&#xA7A3; &#xA7A2;</span> <span title="U+A7A5">&#xA7A5; &#xA7A4;</span> <span title="U+A7A7">&#xA7A7; &#xA7A6;</span> <span title="U+A7A9">&#xA7A9; &#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/text-transform-upperlower-102.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-102.html
new file mode 100644
index 0000000000..8c790bcf65
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-102.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Latin Extended-D, lowercase</title>
+<meta name="assert" content="For the Latin Extended-D Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-102-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#xA722; &#xA723;</span> <span title="U+A724">&#xA724; &#xA725;</span> <span title="U+A726">&#xA726; &#xA727;</span> <span title="U+A728">&#xA728; &#xA729;</span> <span title="U+A72A">&#xA72A; &#xA72B;</span> <span title="U+A72C">&#xA72C; &#xA72D;</span> <span title="U+A72E">&#xA72E; &#xA72F;</span> <span title="U+A732">&#xA732; &#xA733;</span> <span title="U+A734">&#xA734; &#xA735;</span> <span title="U+A736">&#xA736; &#xA737;</span> <span title="U+A738">&#xA738; &#xA739;</span> <span title="U+A73A">&#xA73A; &#xA73B;</span> <span title="U+A73C">&#xA73C; &#xA73D;</span> <span title="U+A73E">&#xA73E; &#xA73F;</span> <span title="U+A740">&#xA740; &#xA741;</span> <span title="U+A742">&#xA742; &#xA743;</span> <span title="U+A744">&#xA744; &#xA745;</span> <span title="U+A746">&#xA746; &#xA747;</span> <span title="U+A748">&#xA748; &#xA749;</span> <span title="U+A74A">&#xA74A; &#xA74B;</span> <span title="U+A74C">&#xA74C; &#xA74D;</span> <span title="U+A74E">&#xA74E; &#xA74F;</span> <span title="U+A750">&#xA750; &#xA751;</span> <span title="U+A752">&#xA752; &#xA753;</span> <span title="U+A754">&#xA754; &#xA755;</span> <span title="U+A756">&#xA756; &#xA757;</span> <span title="U+A758">&#xA758; &#xA759;</span> <span title="U+A75A">&#xA75A; &#xA75B;</span> <span title="U+A75C">&#xA75C; &#xA75D;</span> <span title="U+A75E">&#xA75E; &#xA75F;</span> <span title="U+A760">&#xA760; &#xA761;</span> <span title="U+A762">&#xA762; &#xA763;</span> <span title="U+A764">&#xA764; &#xA765;</span> <span title="U+A766">&#xA766; &#xA767;</span> <span title="U+A768">&#xA768; &#xA769;</span> <span title="U+A76A">&#xA76A; &#xA76B;</span> <span title="U+A76C">&#xA76C; &#xA76D;</span> <span title="U+A76E">&#xA76E; &#xA76F;</span> <span title="U+A779">&#xA779; &#xA77A;</span> <span title="U+A77B">&#xA77B; &#xA77C;</span> <span title="U+A77D">&#xA77D; &#x1D79;</span> <span title="U+A77E">&#xA77E; &#xA77F;</span> <span title="U+A780">&#xA780; &#xA781;</span> <span title="U+A782">&#xA782; &#xA783;</span> <span title="U+A784">&#xA784; &#xA785;</span> <span title="U+A786">&#xA786; &#xA787;</span> <span title="U+A78B">&#xA78B; &#xA78C;</span> <span title="U+A78D">&#xA78D; &#x0265;</span> <span title="U+A790">&#xA790; &#xA791;</span> <span title="U+A792">&#xA792; &#xA793;</span> <span title="U+A796">&#xA796; &#xA797;</span> <span title="U+A798">&#xA798; &#xA799;</span> <span title="U+A79A">&#xA79A; &#xA79B;</span> <span title="U+A79C">&#xA79C; &#xA79D;</span> <span title="U+A79E">&#xA79E; &#xA79F;</span> <span title="U+A7A0">&#xA7A0; &#xA7A1;</span> <span title="U+A7A2">&#xA7A2; &#xA7A3;</span> <span title="U+A7A4">&#xA7A4; &#xA7A5;</span> <span title="U+A7A6">&#xA7A6; &#xA7A7;</span> <span title="U+A7A8">&#xA7A8; &#xA7A9;</span> <span title="U+A7AA">&#xA7AA; &#x0266;</span> <span title="U+A7AB">&#xA7AB; &#x025C;</span> <span title="U+A7AC">&#xA7AC; &#x0261;</span> <span title="U+A7AD">&#xA7AD; &#x026C;</span> <span title="U+A7B0">&#xA7B0; &#x029E;</span> <span title="U+A7B1">&#xA7B1; &#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/text-transform-upperlower-103.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-103.html
new file mode 100644
index 0000000000..500c877f27
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-103.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended-B, uppercase</title>
+<meta name="assert" content="For the Cyrillic Extended-B Unicode block, text-transform: uppercase puts all letters in uppercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-103-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: uppercase; }
+</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">&#xA641; &#xA640;</span> <span title="U+A643">&#xA643; &#xA642;</span> <span title="U+A645">&#xA645; &#xA644;</span> <span title="U+A647">&#xA647; &#xA646;</span> <span title="U+A649">&#xA649; &#xA648;</span> <span title="U+A64B">&#xA64B; &#xA64A;</span> <span title="U+A64D">&#xA64D; &#xA64C;</span> <span title="U+A64F">&#xA64F; &#xA64E;</span> <span title="U+A651">&#xA651; &#xA650;</span> <span title="U+A653">&#xA653; &#xA652;</span> <span title="U+A655">&#xA655; &#xA654;</span> <span title="U+A657">&#xA657; &#xA656;</span> <span title="U+A659">&#xA659; &#xA658;</span> <span title="U+A65B">&#xA65B; &#xA65A;</span> <span title="U+A65D">&#xA65D; &#xA65C;</span> <span title="U+A65F">&#xA65F; &#xA65E;</span> <span title="U+A661">&#xA661; &#xA660;</span> <span title="U+A663">&#xA663; &#xA662;</span> <span title="U+A665">&#xA665; &#xA664;</span> <span title="U+A667">&#xA667; &#xA666;</span> <span title="U+A669">&#xA669; &#xA668;</span> <span title="U+A66B">&#xA66B; &#xA66A;</span> <span title="U+A66D">&#xA66D; &#xA66C;</span> <span title="U+A681">&#xA681; &#xA680;</span> <span title="U+A683">&#xA683; &#xA682;</span> <span title="U+A685">&#xA685; &#xA684;</span> <span title="U+A687">&#xA687; &#xA686;</span> <span title="U+A689">&#xA689; &#xA688;</span> <span title="U+A68B">&#xA68B; &#xA68A;</span> <span title="U+A68D">&#xA68D; &#xA68C;</span> <span title="U+A68F">&#xA68F; &#xA68E;</span> <span title="U+A691">&#xA691; &#xA690;</span> <span title="U+A693">&#xA693; &#xA692;</span> <span title="U+A695">&#xA695; &#xA694;</span> <span title="U+A697">&#xA697; &#xA696;</span> <span title="U+A699">&#xA699; &#xA698;</span> <span title="U+A69B">&#xA69B; &#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/text-transform-upperlower-104.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-104.html
new file mode 100644
index 0000000000..57a7460058
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-104.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, text transform: Cyrillic Extended-B, lowercase</title>
+<meta name="assert" content="For the Cyrillic Extended-B Unicode block, text-transform: lowercase puts all letters in lowercase .">
+<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
+<link rel='help' href='https://drafts.csswg.org/css-text-3/#text-transform'>
+<link rel="match" href="reference/text-transform-upperlower-104-ref.html">
+<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; }
+/* the CSS above is not part of the test */
+.test { text-transform: lowercase; }
+</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">&#xA640; &#xA641;</span> <span title="U+A642">&#xA642; &#xA643;</span> <span title="U+A644">&#xA644; &#xA645;</span> <span title="U+A646">&#xA646; &#xA647;</span> <span title="U+A648">&#xA648; &#xA649;</span> <span title="U+A64A">&#xA64A; &#xA64B;</span> <span title="U+A64C">&#xA64C; &#xA64D;</span> <span title="U+A64E">&#xA64E; &#xA64F;</span> <span title="U+A650">&#xA650; &#xA651;</span> <span title="U+A652">&#xA652; &#xA653;</span> <span title="U+A654">&#xA654; &#xA655;</span> <span title="U+A656">&#xA656; &#xA657;</span> <span title="U+A658">&#xA658; &#xA659;</span> <span title="U+A65A">&#xA65A; &#xA65B;</span> <span title="U+A65C">&#xA65C; &#xA65D;</span> <span title="U+A65E">&#xA65E; &#xA65F;</span> <span title="U+A660">&#xA660; &#xA661;</span> <span title="U+A662">&#xA662; &#xA663;</span> <span title="U+A664">&#xA664; &#xA665;</span> <span title="U+A666">&#xA666; &#xA667;</span> <span title="U+A668">&#xA668; &#xA669;</span> <span title="U+A66A">&#xA66A; &#xA66B;</span> <span title="U+A66C">&#xA66C; &#xA66D;</span> <span title="U+A680">&#xA680; &#xA681;</span> <span title="U+A682">&#xA682; &#xA683;</span> <span title="U+A684">&#xA684; &#xA685;</span> <span title="U+A686">&#xA686; &#xA687;</span> <span title="U+A688">&#xA688; &#xA689;</span> <span title="U+A68A">&#xA68A; &#xA68B;</span> <span title="U+A68C">&#xA68C; &#xA68D;</span> <span title="U+A68E">&#xA68E; &#xA68F;</span> <span title="U+A690">&#xA690; &#xA691;</span> <span title="U+A692">&#xA692; &#xA693;</span> <span title="U+A694">&#xA694; &#xA695;</span> <span title="U+A696">&#xA696; &#xA697;</span> <span title="U+A698">&#xA698; &#xA699;</span> <span title="U+A69A">&#xA69A; &#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/text-transform-upperlower-105.html b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-105.html
new file mode 100644
index 0000000000..8b41ae4e33
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/text-transform/text-transform-upperlower-105.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: text-transform uppercase German sharp S and selection</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-text/#propdef-text-transform">
+<link rel="match" href="reference/text-transform-upperlower-105-ref.html">
+<meta name="assert" content="text-transform: uppercase will uppercase the German sharp S as SS, and the whole 2 characters width is selectable.">
+<style>
+#target {
+ text-transform: uppercase;
+ 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">&#x00DF;</span>
+
+<script>
+ window.getSelection().setBaseAndExtent(target, 0, target, 1);
+</script>