Merge pull request #11072 from gsnedders/merge-w3ctestlib

Merge w3ctestlib and apiclient into web-platform-tests as subtrees
diff --git a/.taskcluster.yml b/.taskcluster.yml
index 76f14e2..a021364 100644
--- a/.taskcluster.yml
+++ b/.taskcluster.yml
@@ -15,10 +15,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 1 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -32,10 +32,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 2 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -49,10 +49,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 3 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -66,10 +66,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 4 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -83,10 +83,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 5 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -100,10 +100,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 6 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -117,10 +117,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 7 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -134,10 +134,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 8 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -151,10 +151,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 9 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -168,10 +168,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome reftest 10 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -185,10 +185,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome wdspec 1 1"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -202,10 +202,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 1 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -219,10 +219,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 2 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -236,10 +236,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 3 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -253,10 +253,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 4 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -270,10 +270,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 5 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -287,10 +287,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 6 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -304,10 +304,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 7 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -321,10 +321,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 8 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -338,10 +338,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 9 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -355,10 +355,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 10 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -372,10 +372,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 11 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -389,10 +389,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 12 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -406,10 +406,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 13 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -423,10 +423,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 14 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -440,10 +440,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} chrome-dev &&\n        \
         \    cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ chrome testharness 15 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -457,10 +457,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 1 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -474,10 +474,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 2 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -491,10 +491,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 3 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -508,10 +508,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 4 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -525,10 +525,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 5 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -542,10 +542,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 6 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -559,10 +559,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 7 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -576,10 +576,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 8 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -593,10 +593,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 9 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -610,10 +610,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox reftest 10 10"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -627,10 +627,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox wdspec 1 1"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -644,10 +644,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 1 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -661,10 +661,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 2 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -678,10 +678,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 3 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -695,10 +695,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 4 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -712,10 +712,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 5 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -729,10 +729,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 6 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -746,10 +746,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 7 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -763,10 +763,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 8 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -780,10 +780,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 9 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -797,10 +797,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 10 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -814,10 +814,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 11 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -831,10 +831,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 12 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -848,10 +848,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 13 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -865,10 +865,10 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 14 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 - extra:
     github:
       branches: [master]
@@ -882,8 +882,8 @@
         \ {{ event.head.repo.branch }} {{event.head.sha}} firefox-nightly &&\n   \
         \         cd ~/web-platform-tests &&\n            ./tools/ci/ci_taskcluster.sh\
         \ firefox testharness 15 15"]
-    image: harjgam/web-platform-tests:0.11
+    image: gsnedders/web-platform-tests:0.13
     maxRunTime: 7200
-  provisionerId: '{{ taskcluster.docker.provisionerId }}'
-  workerType: '{{ taskcluster.docker.workerType }}'
+  provisionerId: aws-provisioner-v1
+  workerType: wpt-docker-worker
 version: 0
diff --git a/.travis.yml b/.travis.yml
index c5f4d64..6f06b67 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -93,4 +93,3 @@
   email:
     on_success: never
     on_failure: always
-  webhooks: https://pulls.web-platform-tests.org/api/build
diff --git a/.well-known/idp-proxy/OWNERS b/.well-known/idp-proxy/OWNERS
new file mode 100644
index 0000000..79ac31d
--- /dev/null
+++ b/.well-known/idp-proxy/OWNERS
@@ -0,0 +1 @@
+@nils-ohlmeier
diff --git a/2dcontext/tools/gentestutils.py b/2dcontext/tools/gentestutils.py
index 9e7f7ad..767d13e 100644
--- a/2dcontext/tools/gentestutils.py
+++ b/2dcontext/tools/gentestutils.py
@@ -7,7 +7,7 @@
 # http://philip.html5.org/tests/canvas/suite/tests/
 #
 # It has been adapted for use with the Web Platform Test Suite suite at
-# https://github.com/w3c/web-platform-tests/
+# https://github.com/web-platform-tests/wpt/
 #
 # The original version had a number of now-removed features (multiple versions of
 # each test case of varying verbosity, Mozilla mochitests, semi-automated test
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..e35f923
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,2 @@
+# Prevent accidentially touching CSS submodules
+/css/tools/ @plinss @kojiishi @jgraham @gsnedders
diff --git a/FileAPI/url/url-in-tags-revoke.window.js b/FileAPI/url/url-in-tags-revoke.window.js
index a564730..f624f18 100644
--- a/FileAPI/url/url-in-tags-revoke.window.js
+++ b/FileAPI/url/url-in-tags-revoke.window.js
@@ -38,6 +38,51 @@
 }, 'Fetching a blob URL immediately before revoking it works in an iframe navigation.');
 
 async_test(t => {
+  const run_result = 'test_frame_OK';
+  const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' +
+    '<script>window.test_result = "' + run_result + '";</script>';
+  const blob = new Blob([blob_contents], {type: 'text/html'});
+  const url = URL.createObjectURL(blob);
+  const win = window.open(url);
+  URL.revokeObjectURL(url);
+  add_completion_callback(() => { win.close(); });
+
+  win.onload = t.step_func_done(() => {
+    assert_equals(win.test_result, run_result);
+  });
+}, 'Opening a blob URL in a new window immediately before revoking it works.');
+
+function receive_message_on_channel(t, channel_name) {
+  const channel = new BroadcastChannel(channel_name);
+  return new Promise(resolve => {
+    channel.addEventListener('message', t.step_func(e => {
+      resolve(e.data);
+    }));
+  });
+}
+
+function window_contents_for_channel(channel_name) {
+  return '<!doctype html>\n' +
+    '<script>\n' +
+    'new BroadcastChannel("' + channel_name + '").postMessage("foobar");\n' +
+    'self.close();\n' +
+    '</script>';
+}
+
+async_test(t => {
+  const channel_name = 'noopener-window-test';
+  const blob = new Blob([window_contents_for_channel(channel_name)], {type: 'text/html'});
+  receive_message_on_channel(t, channel_name).then(t.step_func_done(t => {
+    assert_equals(t, 'foobar');
+  }));
+  const url = URL.createObjectURL(blob);
+  const win = window.open();
+  win.opener = null;
+  win.location = url;
+  URL.revokeObjectURL(url);
+}, 'Opening a blob URL in a noopener about:blank window immediately before revoking it works.');
+
+async_test(t => {
   const run_result = 'test_script_OK';
   const blob_contents = 'window.script_test_result = "' + run_result + '";';
   const blob = new Blob([blob_contents]);
diff --git a/FileAPI/url/url-reload.window.js b/FileAPI/url/url-reload.window.js
new file mode 100644
index 0000000..d333b3a
--- /dev/null
+++ b/FileAPI/url/url-reload.window.js
@@ -0,0 +1,36 @@
+function blob_url_reload_test(t, revoke_before_reload) {
+  const run_result = 'test_frame_OK';
+  const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' +
+    '<script>window.test_result = "' + run_result + '";</script>';
+  const blob = new Blob([blob_contents], {type: 'text/html'});
+  const url = URL.createObjectURL(blob);
+
+  const frame = document.createElement('iframe');
+  frame.setAttribute('src', url);
+  frame.setAttribute('style', 'display:none;');
+  document.body.appendChild(frame);
+
+  frame.onload = t.step_func(() => {
+    if (revoke_before_reload)
+      URL.revokeObjectURL(url);
+    assert_equals(frame.contentWindow.test_result, run_result);
+    frame.contentWindow.test_result = null;
+    frame.onload = t.step_func_done(() => {
+      assert_equals(frame.contentWindow.test_result, run_result);
+    });
+    // Slight delay before reloading to ensure revoke actually has had a chance
+    // to be processed.
+    t.step_timeout(() => {
+      frame.contentWindow.location.reload();
+    }, 250);
+  });
+}
+
+async_test(t => {
+  blob_url_reload_test(t, false);
+}, 'Reloading a blob URL succeeds.');
+
+
+async_test(t => {
+  blob_url_reload_test(t, true);
+}, 'Reloading a blob URL succeeds even if the URL was revoked.');
diff --git a/IndexedDB/bigint_value.htm b/IndexedDB/bigint_value.htm
new file mode 100644
index 0000000..589eeab
--- /dev/null
+++ b/IndexedDB/bigint_value.htm
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>IndexedDB: BigInt keys and values</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+// BigInt and BigInt objects are supported in serialization, per
+// https://github.com/whatwg/html/pull/3480
+// This support allows them to be used as IndexedDB values.
+
+function value_test(value, predicate, name) {
+    async_test(t => {
+        t.step(function() {
+            assert_true(predicate(value),
+                        "Predicate should return true for the initial value.");
+        });
+
+        createdb(t).onupgradeneeded = t.step_func(e => {
+            e.target.result
+                    .createObjectStore("store")
+                    .add(value, 1);
+
+            e.target.onsuccess = t.step_func(e => {
+                e.target.result
+                        .transaction("store")
+                        .objectStore("store")
+                        .get(1)
+                        .onsuccess = t.step_func(e =>
+                {
+                    assert_true(predicate(e.target.result),
+                                "Predicate should return true for the deserialized result.");
+                    t.done();
+                });
+            });
+        });
+    }, "BigInts as values in IndexedDB - " + name);
+}
+
+value_test(1n,
+           x => x === 1n,
+           "primitive BigInt");
+value_test(Object(1n),
+           x => typeof x === 'object' &&
+                x instanceof BigInt &&
+                x.valueOf() === 1n,
+           "BigInt object");
+value_test({val: 1n},
+           x => x.val === 1n,
+           "primitive BigInt inside object");
+value_test({val: Object(1n)},
+           x => x.val.valueOf() === 1n &&
+                x.val instanceof BigInt &&
+                x.val.valueOf() === 1n,
+           "BigInt object inside object");
+
+// However, BigInt is not supported as an IndexedDB key; support
+// has been proposed in the following PR, but that change has not
+// landed at the time this patch was written
+// https://github.com/w3c/IndexedDB/pull/231
+
+function invalidKey(key, name) {
+    test(t => {
+        assert_throws("DataError", () => indexedDB.cmp(0, key));
+    }, "BigInts as keys in IndexedDB - " + name);
+}
+
+invalidKey(1n, "primitive BigInt");
+// Still an error even if the IndexedDB patch lands
+invalidKey(Object(1n), "BigInt object");
+</script>
diff --git a/README.md b/README.md
index db5612e..84cd627 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
 Setting Up the Repo
 ===================
 
-Clone or otherwise get https://github.com/w3c/web-platform-tests.
+Clone or otherwise get https://github.com/web-platform-tests/wpt.
 
 Note: because of the frequent creation and deletion of branches in this
 repo, it is recommended to "prune" stale branches when fetching updates,
@@ -35,7 +35,7 @@
 [`hosts` file](http://en.wikipedia.org/wiki/Hosts_%28file%29%23Location_in_the_file_system).
 
 The necessary content can be generated with `./wpt make-hosts-file`; on
-Windows, you will need to preceed the prior command with `python` or
+Windows, you will need to precede the prior command with `python` or
 the path to the Python binary (`python wpt make-hosts-file`).
 
 For example, on most UNIX-like systems, you can setup the hosts file with:
@@ -62,7 +62,7 @@
 ./wpt serve
 ```
 
-**On Windows**: You will need to preceed the prior command with
+**On Windows**: You will need to precede the prior command with
 `python` or the path to the python binary.
 ```bash
 python wpt serve
@@ -104,7 +104,7 @@
 ./wpt run product [tests]
 ```
 
-**On Windows**: You will need to preceed the prior command with
+**On Windows**: You will need to precede the prior command with
 `python` or the path to the python binary.
 ```bash
 python wpt run product [tests]
@@ -169,7 +169,7 @@
 ```
 
 Prior to commit `39d07eb01fab607ab1ffd092051cded1bdd64d78` submodules
-were requried for basic functionality. If you are working with an
+were required for basic functionality. If you are working with an
 older checkout, the above command is required in all cases.
 
 When moving between a commit prior to `39d07eb` and one after it git
@@ -181,7 +181,7 @@
 […]
 ```
 
-followed by a long list of files. To avoid this error remove
+...followed by a long list of files. To avoid this error, remove
 the `resources` and `tools` directories before switching branches:
 
 ```
@@ -203,7 +203,7 @@
 Failed to recurse into submodule path 'tools'
 ```
 
-then remove the `tools` and `resources` directories, as above.
+...then remove the `tools` and `resources` directories, as above.
 
 <span id="windows-notes">Windows Notes</span>
 =============================================
@@ -227,7 +227,7 @@
 Certificates
 ============
 
-By default pregenerated certificates for the web-platform.test domain
+By default pre-generated certificates for the web-platform.test domain
 are provided in [`tools/certs`](tools/certs). If you wish to generate new
 certificates for any reason it's possible to use OpenSSL when starting
 the server, or starting a test run, by providing the
@@ -286,6 +286,14 @@
 web-platform-tests Root CA file `cacert.pem` in [tools/certs](tools/certs)
 must be added as a trusted certificate in your OS/browser.
 
+**NOTE**: The CA should not be installed in any browser profile used
+outside of tests, since it may be used to generate fake
+certificates. For browsers that use the OS certificate store, tests
+should therefore not be run manually outside a dedicated OS instance
+(e.g. a VM). To avoid this problem when running tests in Chrome or
+Firefox use `wpt run`, which disables certificate checks and therefore
+doesn't require the root CA to be trusted.
+
 Publication
 ===========
 
@@ -348,7 +356,7 @@
 
 If you spot an issue with a test and are not comfortable providing a
 pull request per above to fix it, please
-[file a new issue](https://github.com/w3c/web-platform-tests/issues/new).
+[file a new issue](https://github.com/web-platform-tests/wpt/issues/new).
 Thank you!
 
 Lint tool
@@ -424,11 +432,11 @@
 
 Search filters to find things to review:
 
-* [Open PRs (excluding vendor exports)](https://github.com/w3c/web-platform-tests/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
-* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/w3c/web-platform-tests/pulls?q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved) (Merge? Something left to fix? Ping other reviewer?)
-* [Open PRs without owners](https://github.com/w3c/web-platform-tests/pulls?q=is%3Apr+is%3Aopen+label%3Astatus%3Aneeds-owners)
-* [Open PRs with label `infra` (excluding vendor exports)](https://github.com/w3c/web-platform-tests/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Ainfra+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
-* [Open PRs with label `docs` (excluding vendor exports)](https://github.com/w3c/web-platform-tests/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
+* [Open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
+* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved) (Merge? Something left to fix? Ping other reviewer?)
+* [Open PRs without owners](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+label%3Astatus%3Aneeds-owners)
+* [Open PRs with label `infra` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Ainfra+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
+* [Open PRs with label `docs` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
 
 Getting Involved
 ================
@@ -441,7 +449,7 @@
 Join us on irc #testing ([irc.w3.org][ircw3org], port 6665). The channel
 is [archived][ircarchive].
 
-[contributing]: https://github.com/w3c/web-platform-tests/blob/master/CONTRIBUTING.md
+[contributing]: https://github.com/web-platform-tests/wpt/blob/master/CONTRIBUTING.md
 [ircw3org]: https://www.w3.org/wiki/IRC
 [ircarchive]: https://w3.logbot.info/testing
 [mailarchive]: https://lists.w3.org/Archives/Public/public-test-infra/
diff --git a/annotation-model/CONTRIBUTING.md b/annotation-model/CONTRIBUTING.md
index f591d2a..45a338f 100644
--- a/annotation-model/CONTRIBUTING.md
+++ b/annotation-model/CONTRIBUTING.md
@@ -52,7 +52,7 @@
 |name           | string          | The name of this test for display purposes
 |description    | string          | A long self-describing paragraph that explains the purpose of the test and the expected input
 |ref            | URI             | An optional reference to the portion of the specification to which the test relates
-|testType       | `automated`, `manual`, `ref` | The type of test - this informs [WPT](https://github.com/w3c/web-platform-tests) how the test should be controlled and presented
+|testType       | `automated`, `manual`, `ref` | The type of test - this informs [WPT](https://github.com/web-platform-tests/wpt) how the test should be controlled and presented
 |skipFailures   | list of strings | An optional list of assertionType values that, if present, should have their test skipped if the result would be "unexpected".  Defaults to the empty list.
 |assertions     | list of URI, List @@@ATRISK@@@, or AssertionObject | The ordered collection of tests the input should be run against. See [JSON Schema Usage](#jsonSchema) for the structure of the objects.  URI is relative to the top level folder of the test collection if it has a slash; relative to the current directory if it does not. @@@@ATRISK@@@@ Lists can be nested to define groups of sub-tests.  Assertions / groups can be conditionally skipped.  See [Assertion Lists](#assertionLists) for more details.
 |content        | URI or object   | An object containing content to be checked against the referenced assertions, or a URI from which to retrieve that content
diff --git a/async-local-storage/OWNERS b/async-local-storage/OWNERS
new file mode 100644
index 0000000..7231f62
--- /dev/null
+++ b/async-local-storage/OWNERS
@@ -0,0 +1 @@
+@domenic
diff --git a/battery-status/battery-interface-idlharness.https.html b/battery-status/battery-interface-idlharness.https.html
index 3c58719..1a6ad54 100644
--- a/battery-status/battery-interface-idlharness.https.html
+++ b/battery-status/battery-interface-idlharness.https.html
@@ -7,71 +7,26 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="/resources/WebIDLParser.js"></script>
 <script src="/resources/idlharness.js"></script>
-<script type="text/plain" class="untested">
-interface Navigator { };
-
-interface EventTarget {
-  void addEventListener(DOMString type, EventListener? callback, optional boolean capture);
-  void removeEventListener(DOMString type, EventListener? callback, optional boolean capture);
-  boolean dispatchEvent(Event event);
-};
-
-[Callback]
-interface EventListener {
-  void handleEvent(Event event);
-};
-[TreatNonObjectAsNull]
-callback EventHandlerNonNull = any (Event event);
-typedef EventHandlerNonNull? EventHandler;
-</script>
-<script type="text/plain">
-partial interface Navigator {
-    Promise<BatteryManager> getBattery ();
-};
-
-[Exposed=Window]
-interface BatteryManager : EventTarget {
-    readonly attribute boolean             charging;
-    readonly attribute unrestricted double chargingTime;
-    readonly attribute unrestricted double dischargingTime;
-    readonly attribute double              level;
-             attribute EventHandler        onchargingchange;
-             attribute EventHandler        onchargingtimechange;
-             attribute EventHandler        ondischargingtimechange;
-             attribute EventHandler        onlevelchange;
-};
-</script>
 <script>
 "use strict";
-var t = async_test();
-var idl_array = new IdlArray();
-var idls;
-var manager;
-[].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) {
-  idls = node.textContent;
-  idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls);
-});
-t.step(function() {
-  assert_idl_attribute(navigator, 'getBattery', 'navigator must have getBattery attribute');
-  navigator.getBattery().then(function(bm) {
-    manager = bm;
-    idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['manager']});
-    idl_array.test();
-    t.done();
-  }).catch(function(err) {
-    t.assert_unreached("navigator.getBattery failed");
+
+promise_test(async () => {
+  const idl_array = new IdlArray();
+  const dom_idl = await fetch("/interfaces/dom.idl").then(r => r.text());
+  const battery_idl = await fetch("/interfaces/battery.idl").then(r => r.text());
+  const manager = await navigator.getBattery();
+
+  idl_array.add_untested_idls(dom_idl, {only: ['EventTarget']});
+  idl_array.add_untested_idls('interface EventHandler {};');
+  idl_array.add_untested_idls('interface Navigator {};');
+  idl_array.add_idls(battery_idl);
+
+  window.manager = manager;
+
+  idl_array.add_objects({
+    Navigator: ['navigator'],
+    BatteryManager: ['manager'],
   });
-});
+  idl_array.test();
+}, "Test IDL implementation of Battery Status API");
 </script>
-
-<h2>Description</h2>
-<p>
-  This test validates the BatteryManager interface IDL.
-</p>
-<p>
-  This test uses <a href="/resources/idlharness.js">idlharness.js</a>, and
-  is complementary to the <a href="battery-interface.html">battery-interface.html</a>
-  test.
-</p>
-
-<div id="log"></div>
diff --git a/check_stability.ini b/check_stability.ini
index 51a79e6..b939328 100644
--- a/check_stability.ini
+++ b/check_stability.ini
@@ -7,4 +7,3 @@
 # (particularly in terms of execution time), making it impractical in most
 # cases.
 ignore_changes: resources/**
-results_url: https://pulls.web-platform-tests.org/api/stability
diff --git a/clear-site-data/support/test_utils.sub.js b/clear-site-data/support/test_utils.sub.js
index a108537..235273b 100644
--- a/clear-site-data/support/test_utils.sub.js
+++ b/clear-site-data/support/test_utils.sub.js
@@ -267,7 +267,7 @@
         throw "Unsupported scheme: " + page_scheme;
       if (resource_scheme != "https" && resource_scheme != "http")
         throw "Unsupported scheme: " + resource_scheme;
-      return page_scheme + "://web-platform.test:" +
+      return page_scheme + "://{{domains[]}}:" +
           (page_scheme == "https" ? {{ports[https][0]}} : {{ports[http][0]}}) +
           "/clear-site-data/support/page_with_resource.sub.html?scheme=" +
           resource_scheme;
diff --git a/conformance-checkers/tools/url.py b/conformance-checkers/tools/url.py
index df31eab..af89c80 100644
--- a/conformance-checkers/tools/url.py
+++ b/conformance-checkers/tools/url.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 import os
 ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-# based on https://github.com/w3c/web-platform-tests/blob/275544eab54a0d0c7f74ccc2baae9711293d8908/url/urltestdata.txt
+# based on https://github.com/web-platform-tests/wpt/blob/275544eab54a0d0c7f74ccc2baae9711293d8908/url/urltestdata.txt
 invalid = {
     "scheme-trailing-space": "a: foo.com",
     "scheme-trailing-tab": "a:\tfoo.com",
diff --git a/content-security-policy/README.html b/content-security-policy/README.html
index e2c3e38..becc48b 100644
--- a/content-security-policy/README.html
+++ b/content-security-policy/README.html
@@ -14,7 +14,7 @@
 <body>
     <h1>Introduction to Writing Content Security Policy Tests</h1>
     <p>The CSP test suite uses the standard W3C testharness.js framework, but there are a few additional things you'll need to do because of the unique way CSP works, even if you're already an expert at writing W3C tests. These tests require the use of the
-    <a href="https://github.com/w3c/wptserve">wptserve</a> server (included in the <a href="https://github.com/w3c/web-platform-tests">web-platform-tests repository</a>) to operate correctly.</p>
+    <a href="https://github.com/w3c/wptserve">wptserve</a> server (included in the <a href="https://github.com/web-platform-tests/wpt">web-platform-tests repository</a>) to operate correctly.</p>
 
     <h2>What's different about writing CSP tests?</h2>
 
diff --git a/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html b/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html
index 6a0f0a1..408c011 100644
--- a/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html
+++ b/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html
@@ -5,7 +5,7 @@
   <script src='/resources/testharness.js'></script>
   <script src='/resources/testharnessreport.js'></script>
   <!-- if base is used for resolving the URL to report to then we will not get a report -->
-  <base href="http://nonexistent.web-platform.test">
+  <base href="http://nonexistent.{{domains[]}}">
 </head>
 <body>
   <script>
diff --git a/content-security-policy/embedded-enforcement/required_csp-header-crlf.html b/content-security-policy/embedded-enforcement/required_csp-header-crlf.html
new file mode 100644
index 0000000..87bda1b
--- /dev/null
+++ b/content-security-policy/embedded-enforcement/required_csp-header-crlf.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Embedded Enforcement: Sec-Required-CSP header.</title>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script src="support/testharness-helper.sub.js"></script>
+</head>
+<body>
+  <script>
+    var tests = [
+      // CRLF characters
+      { "name": "\\r\\n character after directive name",
+        "csp": "script-src\r\n'unsafe-inline'",
+        "expected": null },
+      { "name": "\\r\\n character in directive value",
+        "csp": "script-src 'unsafe-inline'\r\n'unsafe-eval'",
+        "expected": null },
+      { "name": "\\n character after directive name",
+        "csp": "script-src\n'unsafe-inline'",
+        "expected": null },
+      { "name": "\\n character in directive value",
+        "csp": "script-src 'unsafe-inline'\n'unsafe-eval'",
+        "expected": null },
+      { "name": "\\r character after directive name",
+        "csp": "script-src\r'unsafe-inline'",
+        "expected": null },
+      { "name": "\\r character in directive value",
+        "csp": "script-src 'unsafe-inline'\r'unsafe-eval'",
+        "expected": null },
+        
+      // HTML encoded CRLF characters
+      { "name": "%0D%0A character after directive name",
+        "csp": "script-src%0D%0A'unsafe-inline'",
+        "expected": null },
+      { "name": "%0D%0A character in directive value",
+        "csp": "script-src 'unsafe-inline'%0D%0A'unsafe-eval'",
+        "expected": null },
+      { "name": "%0A character after directive name",
+        "csp": "script-src%0A'unsafe-inline'",
+        "expected": null },
+      { "name": "%0A character in directive value",
+        "csp": "script-src 'unsafe-inline'%0A'unsafe-eval'",
+        "expected": null },
+      { "name": "%0D character after directive name",
+        "csp": "script-src%0D'unsafe-inline'",
+        "expected": null },
+      { "name": "%0D character in directive value",
+        "csp": "script-src 'unsafe-inline'%0D'unsafe-eval'",
+        "expected": null },
+
+      // Attempt HTTP Header injection
+      { "name": "Attempt injecting after directive name using \\r\\n",
+        "csp": "script-src\r\nTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive name using \\r",
+        "csp": "script-src\rTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive name using \\n",
+        "csp": "script-src\nTest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after directive value using \\r\\n",
+        "csp": "script-src example.com\r\nTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive value using \\r",
+        "csp": "script-src example.com\rTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive value using \\n",
+        "csp": "script-src example.com\nTest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after semicolon using \\r\\n",
+        "csp": "script-src example.com;\r\nTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after semicolon using \\r",
+        "csp": "script-src example.com;\rTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after semicolon using \\n",
+        "csp": "script-src example.com;\nTest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after space between name and value using \\r\\n",
+        "csp": "script-src \r\nTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after space between name and value using \\r",
+        "csp": "script-src \rTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after space between name and value using \\n",
+        "csp": "script-src \nTest-Header-Injection: dummy",
+        "expected": null },
+
+      // Attempt HTTP Header injection using URL encoded characters
+      { "name": "Attempt injecting after directive name using %0D%0A",
+        "csp": "script-src%0D%0ATest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive name using %0D",
+        "csp": "script-src%0DTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive name using %0A",
+        "csp": "script-src%0ATest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after directive value using %0D%0A",
+        "csp": "script-src example.com%0D%0ATest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive value using %0D",
+        "csp": "script-src example.com%0DTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after directive value using %0A",
+        "csp": "script-src example.com%0ATest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after semicolon using %0D%0A",
+        "csp": "script-src example.com;%0D%0ATest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after semicolon using %0D",
+        "csp": "script-src example.com;%0DTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after semicolon using %0A",
+        "csp": "script-src example.com;%0ATest-Header-Injection: dummy",
+        "expected": null },
+
+      { "name": "Attempt injecting after space between name and value using %0D%0A",
+        "csp": "script-src %0D%0ATest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after space between name and value using %0D",
+        "csp": "script-src %0DTest-Header-Injection: dummy",
+        "expected": null },
+      { "name": "Attempt injecting after space between name and value using %0A",
+        "csp": "script-src %0ATest-Header-Injection: dummy",
+        "expected": null },
+
+    ];
+
+    tests.forEach(test => {
+      async_test(t =>  {
+        var url = generateURLString(Host.SAME_ORIGIN, PolicyHeader.REQUIRED_CSP);
+        assert_required_csp(t, url, test.csp, [test.expected]);
+      }, "Test CRLF: " + test.name);
+    });
+  </script>
+</body>
+</html>
diff --git a/content-security-policy/embedded-enforcement/support/echo-required-csp.py b/content-security-policy/embedded-enforcement/support/echo-required-csp.py
index 930a1f6..6063cc0 100644
--- a/content-security-policy/embedded-enforcement/support/echo-required-csp.py
+++ b/content-security-policy/embedded-enforcement/support/echo-required-csp.py
@@ -1,8 +1,13 @@
 import json
 def main(request, response):
-    header = request.headers.get("Sec-Required-CSP");
     message = {}
+
+    header = request.headers.get("Test-Header-Injection");
+    message['test_header_injection'] = header if header else None
+
+    header = request.headers.get("Sec-Required-CSP");
     message['required_csp'] = header if header else None
+
     second_level_iframe_code = ""
     if "include_second_level_iframe" in request.GET:
        if "second_level_iframe_csp" in request.GET and request.GET["second_level_iframe_csp"] <> "":
diff --git a/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js b/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
index 127a94b..6d2e64f 100644
--- a/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
+++ b/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
@@ -91,6 +91,10 @@
       assert_unreached('Child iframes have unexpected csp:"' + e.data['required_csp'] + '"');
 
     expected.splice(expected.indexOf(e.data['required_csp']), 1);
+
+    if (e.data['test_header_injection'] != null)
+      assert_unreached('HTTP header injection was successful');
+
     if (expected.length == 0)
       t.done();
   }));
diff --git a/content-security-policy/generic/generic-0_8.sub.html b/content-security-policy/generic/generic-0_8.sub.html
index 78f7aa0..79edff2 100644
--- a/content-security-policy/generic/generic-0_8.sub.html
+++ b/content-security-policy/generic/generic-0_8.sub.html
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html>
 <head>
-    <title>test wildcard host name matching (*.web-platform.test is good)</title>
+    <title>test wildcard host name matching (asterisk as a subdomain of the current domain)</title>
     <meta http-equiv="Content-Security-Policy" content="script-src 'self' *.{{host}}:{{ports[http][0]}} 'unsafe-inline';">
     <script src='/resources/testharness.js'></script>
     <script src='/resources/testharnessreport.js'></script>
@@ -22,7 +22,7 @@
     </script>    
 </head>
 <body>
-    <h1>test wildcard host name matching (*.web-platform.test is good)</h1>
+    <h1>test wildcard host name matching (asterisk as a subdomain of the current domain)</h1>
     <div id='log'></div>
 </body>
 </html>
diff --git a/content-security-policy/generic/generic-0_8_1.sub.html b/content-security-policy/generic/generic-0_8_1.sub.html
index 1a2096f..c2d968b 100644
--- a/content-security-policy/generic/generic-0_8_1.sub.html
+++ b/content-security-policy/generic/generic-0_8_1.sub.html
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html>
 <head>
-    <title>test wildcard host name matching (www*.web-platform.test is bad, *www.web-platform.test is bad)</title>
+    <title>test wildcard host name matching (asterisk as part of a subdomain is not accepted)</title>
     <meta http-equiv="Content-Security-Policy" content="script-src 'self' *w.{{host}}:{{ports[http][0]}} w*.{{host}}:{{ports[http][0]}} 'unsafe-inline';">
     <script src='/resources/testharness.js'></script>
     <script src='/resources/testharnessreport.js'></script>
@@ -20,7 +20,7 @@
     </script>
 </head>
 <body>
-    <h1>test wildcard host name matching (www*.web-platform.test is bad, *www.web-platform.test is bad)</h1>
+    <h1>test wildcard host name matching (asterisk as part of a subdomain is not accepted)</h1>
     <div id='log'></div>
 </body>
 </html>
diff --git a/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.html b/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.html
deleted file mode 100644
index 7209ea7..0000000
--- a/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<meta http-equiv="content-security-policy" content="script-src 'nonce-abc'; img-src 'none'">
-
-<body>
-<!-- Basics -->
-<script nonce="abc" id="testScript">
-  document.currentScript.setAttribute('executed', 'yay');
-</script>
-
-<script nonce="abc">
-    var script = document.querySelector('#testScript');
-
-    test(t => {
-      // Query Selector
-      assert_equals(document.querySelector('body [nonce]'), script);
-      assert_equals(document.querySelector('body [nonce=""]'), null);
-      assert_equals(document.querySelector('body [nonce=abc]'), script);
-
-      assert_equals(script.getAttribute('nonce'), 'abc');
-      assert_equals(script.nonce, 'abc');
-    }, "Reading 'nonce' content attribute and IDL attribute.");
-
-    // Clone node.
-    test(t => {
-      script.setAttribute('executed', 'boo');
-      var s2 = script.cloneNode();
-      assert_equals(s2.nonce, 'abc', 'IDL attribute');
-      assert_equals(s2.getAttribute('nonce'), 'abc');
-    }, "Cloned node retains nonce.");
-
-    async_test(t => {
-      var s2 = script.cloneNode();
-      document.head.appendChild(s2);
-      assert_equals(s2.nonce, 'abc');
-      assert_equals(s2.getAttribute('nonce'), 'abc');
-      window.addEventListener('load', t.step_func_done(_ => {
-        // The cloned script won't execute, as its 'already started' flag is set.
-        assert_equals(s2.getAttribute('executed'), 'boo');
-      }));
-    }, "Cloned node retains nonce when inserted.");
-
-    // Set the content attribute to 'foo'
-    test(t => {
-      script.setAttribute('nonce', 'foo');
-      assert_equals(script.getAttribute('nonce'), 'foo');
-      assert_equals(script.nonce, 'foo');
-    }, "Writing 'nonce' content attribute.");
-
-    // Set the IDL attribute to 'bar'
-    test(t => {
-      script.nonce = 'bar';
-      assert_equals(script.nonce, 'bar');
-      assert_equals(script.getAttribute('nonce'), 'foo');
-    }, "Writing 'nonce' IDL attribute.");
-
-    // Fragment parser.
-    var documentWriteTest = async_test("Document-written script executes.");
-    document.write(`<script nonce='abc'>
-      documentWriteTest.done();
-      test(t => {
-        var script = document.currentScript;
-        assert_equals(script.getAttribute('nonce'), 'abc');
-        assert_equals(script.nonce, 'abc');
-      }, "Document-written script's nonce value.");
-    </scr` + `ipt>`);
-
-    // Create node.
-    async_test(t => {
-      var s = document.createElement('script');
-      s.innerText = script.innerText;
-      s.nonce = 'abc';
-      document.head.appendChild(s);
-      assert_equals(s.nonce, 'abc');
-      assert_equals(s.getAttribute('nonce'), null);
-
-      window.addEventListener('load', t.step_func_done(_ => {
-        assert_equals(s.getAttribute('executed'), 'yay');
-      }));
-    }, "createElement.nonce.");
-
-    async_test(t => {
-      var s = document.createElement('script');
-      s.innerText = script.innerText;
-      s.nonce = 'zyx';
-      s.setAttribute('nonce', 'abc');
-      assert_equals(s.nonce, 'abc');
-      document.head.appendChild(s);
-      assert_equals(s.nonce, 'abc');
-      assert_equals(s.getAttribute('nonce'), 'abc');
-
-      window.addEventListener('load', t.step_func_done(_ => {
-        assert_equals(s.getAttribute('executed'), 'yay');
-      }));
-    }, "setAttribute('nonce') overwrites '.nonce' upon insertion.");
-
-    // Create node.
-    async_test(t => {
-      var s = document.createElement('script');
-      s.innerText = script.innerText;
-      s.setAttribute('nonce', 'abc');
-      assert_equals(s.getAttribute('nonce'), 'abc', "Pre-insertion content");
-      assert_equals(s.nonce, 'abc', "Pre-insertion IDL");
-      document.head.appendChild(s);
-      assert_equals(s.nonce, 'abc', "Post-insertion IDL");
-      assert_equals(s.getAttribute('nonce'), 'abc', "Post-insertion content");
-
-      window.addEventListener('load', t.step_func_done(_ => {
-        assert_equals(s.getAttribute('executed'), 'yay');
-      }));
-    }, "createElement.setAttribute.");
-</script>
-
-<!-- CSS Leakage -->
-<style>
-    #cssTest { display: block; }
-    #cssTest[nonce=abc] { background: url(/security/resources/abe.png); }
-</style>
-<script nonce="abc" id="cssTest">
-    async_test(t => {
-      requestAnimationFrame(t.step_func_done(_ => {
-        var script = document.querySelector('#cssTest');
-        var style = getComputedStyle(script);
-        assert_equals(style['display'], 'block');
-        assert_equals(style['background-image'], "url(\"http://web-platform.test:8001/security/resources/abe.png\")");
-      }));
-    }, "Nonces leak via CSS side-channels.");
-</script>
diff --git a/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.sub.html b/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.sub.html
new file mode 100644
index 0000000..b15fcfa
--- /dev/null
+++ b/content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.sub.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<meta http-equiv="content-security-policy" content="script-src 'nonce-abc'; img-src 'none'">
+
+<body>
+<!-- Basics -->
+<script nonce="abc" id="testScript">
+  document.currentScript.setAttribute('executed', 'yay');
+</script>
+
+<script nonce="abc">
+    var script = document.querySelector('#testScript');
+
+    test(t => {
+      // Query Selector
+      assert_equals(document.querySelector('body [nonce]'), script);
+      assert_equals(document.querySelector('body [nonce=""]'), null);
+      assert_equals(document.querySelector('body [nonce=abc]'), script);
+
+      assert_equals(script.getAttribute('nonce'), 'abc');
+      assert_equals(script.nonce, 'abc');
+    }, "Reading 'nonce' content attribute and IDL attribute.");
+
+    // Clone node.
+    test(t => {
+      script.setAttribute('executed', 'boo');
+      var s2 = script.cloneNode();
+      assert_equals(s2.nonce, 'abc', 'IDL attribute');
+      assert_equals(s2.getAttribute('nonce'), 'abc');
+    }, "Cloned node retains nonce.");
+
+    async_test(t => {
+      var s2 = script.cloneNode();
+      document.head.appendChild(s2);
+      assert_equals(s2.nonce, 'abc');
+      assert_equals(s2.getAttribute('nonce'), 'abc');
+      window.addEventListener('load', t.step_func_done(_ => {
+        // The cloned script won't execute, as its 'already started' flag is set.
+        assert_equals(s2.getAttribute('executed'), 'boo');
+      }));
+    }, "Cloned node retains nonce when inserted.");
+
+    // Set the content attribute to 'foo'
+    test(t => {
+      script.setAttribute('nonce', 'foo');
+      assert_equals(script.getAttribute('nonce'), 'foo');
+      assert_equals(script.nonce, 'foo');
+    }, "Writing 'nonce' content attribute.");
+
+    // Set the IDL attribute to 'bar'
+    test(t => {
+      script.nonce = 'bar';
+      assert_equals(script.nonce, 'bar');
+      assert_equals(script.getAttribute('nonce'), 'foo');
+    }, "Writing 'nonce' IDL attribute.");
+
+    // Fragment parser.
+    var documentWriteTest = async_test("Document-written script executes.");
+    document.write(`<script nonce='abc'>
+      documentWriteTest.done();
+      test(t => {
+        var script = document.currentScript;
+        assert_equals(script.getAttribute('nonce'), 'abc');
+        assert_equals(script.nonce, 'abc');
+      }, "Document-written script's nonce value.");
+    </scr` + `ipt>`);
+
+    // Create node.
+    async_test(t => {
+      var s = document.createElement('script');
+      s.innerText = script.innerText;
+      s.nonce = 'abc';
+      document.head.appendChild(s);
+      assert_equals(s.nonce, 'abc');
+      assert_equals(s.getAttribute('nonce'), null);
+
+      window.addEventListener('load', t.step_func_done(_ => {
+        assert_equals(s.getAttribute('executed'), 'yay');
+      }));
+    }, "createElement.nonce.");
+
+    async_test(t => {
+      var s = document.createElement('script');
+      s.innerText = script.innerText;
+      s.nonce = 'zyx';
+      s.setAttribute('nonce', 'abc');
+      assert_equals(s.nonce, 'abc');
+      document.head.appendChild(s);
+      assert_equals(s.nonce, 'abc');
+      assert_equals(s.getAttribute('nonce'), 'abc');
+
+      window.addEventListener('load', t.step_func_done(_ => {
+        assert_equals(s.getAttribute('executed'), 'yay');
+      }));
+    }, "setAttribute('nonce') overwrites '.nonce' upon insertion.");
+
+    // Create node.
+    async_test(t => {
+      var s = document.createElement('script');
+      s.innerText = script.innerText;
+      s.setAttribute('nonce', 'abc');
+      assert_equals(s.getAttribute('nonce'), 'abc', "Pre-insertion content");
+      assert_equals(s.nonce, 'abc', "Pre-insertion IDL");
+      document.head.appendChild(s);
+      assert_equals(s.nonce, 'abc', "Post-insertion IDL");
+      assert_equals(s.getAttribute('nonce'), 'abc', "Post-insertion content");
+
+      window.addEventListener('load', t.step_func_done(_ => {
+        assert_equals(s.getAttribute('executed'), 'yay');
+      }));
+    }, "createElement.setAttribute.");
+</script>
+
+<!-- CSS Leakage -->
+<style>
+    #cssTest { display: block; }
+    #cssTest[nonce=abc] { background: url(/security/resources/abe.png); }
+</style>
+<script nonce="abc" id="cssTest">
+    async_test(t => {
+      requestAnimationFrame(t.step_func_done(_ => {
+        var script = document.querySelector('#cssTest');
+        var style = getComputedStyle(script);
+        assert_equals(style['display'], 'block');
+        assert_equals(style['background-image'], "url(\"http://{{domains[]}}:{{ports[http][0]}}/security/resources/abe.png\")");
+      }));
+    }, "Nonces leak via CSS side-channels.");
+</script>
diff --git a/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.html b/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.html
deleted file mode 100644
index a283869..0000000
--- a/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<meta http-equiv="content-security-policy" content="script-src 'nonce-abc'; img-src 'none'">
-
-<body>
-<!-- Basics -->
-<svg xmlns="http://www.w3.org/2000/svg">
-  <script nonce="abc" id="testScript">
-    document.currentScript.setAttribute('executed', 'yay');
-  </script>
-</svg>
-
-<script nonce="abc">
-    var script = document.querySelector('#testScript');
-
-    test(t => {
-      // Query Selector
-      assert_equals(document.querySelector('[nonce]'), script);
-      assert_equals(document.querySelector('[nonce=""]'), null);
-      assert_equals(document.querySelector('[nonce=abc]'), script);
-
-      assert_equals(script.getAttribute('nonce'), 'abc');
-      assert_equals(script.nonce, 'abc');
-    }, "Reading 'nonce' content attribute and IDL attribute.");
-
-    // Clone node.
-    test(t => {
-      script.setAttribute('executed', 'boo');
-      var s2 = script.cloneNode();
-      assert_equals(s2.nonce, 'abc', 'IDL attribute');
-      assert_equals(s2.getAttribute('nonce'), 'abc');
-    }, "Cloned node retains nonce.");
-
-    async_test(t => {
-      var s2 = script.cloneNode();
-      document.head.appendChild(s2);
-      assert_equals(s2.nonce, 'abc');
-      assert_equals(s2.getAttribute('nonce'), 'abc');
-
-      window.addEventListener('load', t.step_func_done(_ => {
-        // The cloned script won't execute, as its 'already started' flag is set.
-        assert_equals(s2.getAttribute('executed'), 'boo');
-      }));
-    }, "Cloned node retains nonce when inserted.");
-
-    // Set the content attribute to 'foo'
-    test(t => {
-      script.setAttribute('nonce', 'foo');
-      assert_equals(script.getAttribute('nonce'), 'foo');
-      assert_equals(script.nonce, 'abc');
-    }, "Writing 'nonce' content attribute.");
-
-    // Set the IDL attribute to 'bar'
-    test(t => {
-      script.nonce = 'bar';
-      assert_equals(script.nonce, 'bar');
-      assert_equals(script.getAttribute('nonce'), 'foo');
-    }, "Writing 'nonce' IDL attribute.");
-
-    // Fragment parser.
-    var documentWriteTest = async_test("Document-written script executes.");
-    document.write(`<svg xmlns="http://www.w3.org/2000/svg"><script nonce='abc'>
-      documentWriteTest.done();
-      test(t => {
-        var script = document.currentScript;
-        assert_equals(script.getAttribute('nonce'), 'abc');
-        assert_equals(script.nonce, 'abc');
-      }, "Document-written script's nonce value.");
-    </scr` + `ipt></svg>`);
-
-    // Create node.
-    test(t => {
-      var s = document.createElement('svg');
-      var innerScript = document.createElement('innerScript');
-      innerScript.innerText = script.innerText;
-      innerScript.nonce = 'abc';
-      s.appendChild(innerScript);
-      document.body.appendChild(s);
-      assert_equals(innerScript.nonce, 'abc');
-      assert_equals(innerScript.getAttribute('nonce'), null, 'innerScript.getAttribute nonce');
-    }, "createElement.nonce.");
-
-    // Create node.
-    test(t => {
-      var s = document.createElement('svg');
-      var innerScript = document.createElement('script');
-      innerScript.innerText = script.innerText;
-      innerScript.setAttribute('nonce', 'abc');
-      assert_equals(innerScript.getAttribute('nonce'), 'abc', "Pre-insertion content");
-      assert_equals(innerScript.nonce, 'abc', "Pre-insertion IDL");
-      s.appendChild(innerScript);
-      document.body.appendChild(s);
-      assert_equals(innerScript.nonce, 'abc', "Post-insertion IDL");
-      assert_equals(innerScript.getAttribute('nonce'), 'abc', "Post-insertion content");
-    }, "createElement.setAttribute.");
-</script>
-
-<!-- CSS Leakage -->
-<style>
-    #cssTest { display: block; }
-    #cssTest[nonce=abc] { background: url(/security/resources/abe.png); }
-</style>
-<svg xmlns="http://www.w3.org/2000/svg">
-  <script nonce="abc" id="cssTest">
-      async_test(t => {
-        requestAnimationFrame(t.step_func_done(_ => {
-          var script = document.querySelector('#cssTest');
-          var style = getComputedStyle(script);
-          assert_equals(style['display'], 'block');
-          assert_equals(style['background-image'], "url(\"http://web-platform.test:8001/security/resources/abe.png\")");
-        }));
-      }, "Nonces don't leak via CSS side-channels.");
-  </script>
-</svg>
diff --git a/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub.html b/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub.html
new file mode 100644
index 0000000..bd1c337
--- /dev/null
+++ b/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<meta http-equiv="content-security-policy" content="script-src 'nonce-abc'; img-src 'none'">
+
+<body>
+<!-- Basics -->
+<svg xmlns="http://www.w3.org/2000/svg">
+  <script nonce="abc" id="testScript">
+    document.currentScript.setAttribute('executed', 'yay');
+  </script>
+</svg>
+
+<script nonce="abc">
+    var script = document.querySelector('#testScript');
+
+    test(t => {
+      // Query Selector
+      assert_equals(document.querySelector('[nonce]'), script);
+      assert_equals(document.querySelector('[nonce=""]'), null);
+      assert_equals(document.querySelector('[nonce=abc]'), script);
+
+      assert_equals(script.getAttribute('nonce'), 'abc');
+      assert_equals(script.nonce, 'abc');
+    }, "Reading 'nonce' content attribute and IDL attribute.");
+
+    // Clone node.
+    test(t => {
+      script.setAttribute('executed', 'boo');
+      var s2 = script.cloneNode();
+      assert_equals(s2.nonce, 'abc', 'IDL attribute');
+      assert_equals(s2.getAttribute('nonce'), 'abc');
+    }, "Cloned node retains nonce.");
+
+    async_test(t => {
+      var s2 = script.cloneNode();
+      document.head.appendChild(s2);
+      assert_equals(s2.nonce, 'abc');
+      assert_equals(s2.getAttribute('nonce'), 'abc');
+
+      window.addEventListener('load', t.step_func_done(_ => {
+        // The cloned script won't execute, as its 'already started' flag is set.
+        assert_equals(s2.getAttribute('executed'), 'boo');
+      }));
+    }, "Cloned node retains nonce when inserted.");
+
+    // Set the content attribute to 'foo'
+    test(t => {
+      script.setAttribute('nonce', 'foo');
+      assert_equals(script.getAttribute('nonce'), 'foo');
+      assert_equals(script.nonce, 'abc');
+    }, "Writing 'nonce' content attribute.");
+
+    // Set the IDL attribute to 'bar'
+    test(t => {
+      script.nonce = 'bar';
+      assert_equals(script.nonce, 'bar');
+      assert_equals(script.getAttribute('nonce'), 'foo');
+    }, "Writing 'nonce' IDL attribute.");
+
+    // Fragment parser.
+    var documentWriteTest = async_test("Document-written script executes.");
+    document.write(`<svg xmlns="http://www.w3.org/2000/svg"><script nonce='abc'>
+      documentWriteTest.done();
+      test(t => {
+        var script = document.currentScript;
+        assert_equals(script.getAttribute('nonce'), 'abc');
+        assert_equals(script.nonce, 'abc');
+      }, "Document-written script's nonce value.");
+    </scr` + `ipt></svg>`);
+
+    // Create node.
+    test(t => {
+      var s = document.createElement('svg');
+      var innerScript = document.createElement('innerScript');
+      innerScript.innerText = script.innerText;
+      innerScript.nonce = 'abc';
+      s.appendChild(innerScript);
+      document.body.appendChild(s);
+      assert_equals(innerScript.nonce, 'abc');
+      assert_equals(innerScript.getAttribute('nonce'), null, 'innerScript.getAttribute nonce');
+    }, "createElement.nonce.");
+
+    // Create node.
+    test(t => {
+      var s = document.createElement('svg');
+      var innerScript = document.createElement('script');
+      innerScript.innerText = script.innerText;
+      innerScript.setAttribute('nonce', 'abc');
+      assert_equals(innerScript.getAttribute('nonce'), 'abc', "Pre-insertion content");
+      assert_equals(innerScript.nonce, 'abc', "Pre-insertion IDL");
+      s.appendChild(innerScript);
+      document.body.appendChild(s);
+      assert_equals(innerScript.nonce, 'abc', "Post-insertion IDL");
+      assert_equals(innerScript.getAttribute('nonce'), 'abc', "Post-insertion content");
+    }, "createElement.setAttribute.");
+</script>
+
+<!-- CSS Leakage -->
+<style>
+    #cssTest { display: block; }
+    #cssTest[nonce=abc] { background: url(/security/resources/abe.png); }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+  <script nonce="abc" id="cssTest">
+      async_test(t => {
+        requestAnimationFrame(t.step_func_done(_ => {
+          var script = document.querySelector('#cssTest');
+          var style = getComputedStyle(script);
+          assert_equals(style['display'], 'block');
+          assert_equals(style['background-image'], "url(\"http://{{domains[]}}:{{ports[http][0]}}/security/resources/abe.png\")");
+        }));
+      }, "Nonces don't leak via CSS side-channels.");
+  </script>
+</svg>
diff --git a/cookie-store/cookieStore_delete_arguments.tentative.window.js b/cookie-store/cookieStore_delete_arguments.tentative.window.js
index 8f3f6f5..974d16b 100644
--- a/cookie-store/cookieStore_delete_arguments.tentative.window.js
+++ b/cookie-store/cookieStore_delete_arguments.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_event_basic.tentative.window.js b/cookie-store/cookieStore_event_basic.tentative.window.js
index 306fc1e..7f6d2d9 100644
--- a/cookie-store/cookieStore_event_basic.tentative.window.js
+++ b/cookie-store/cookieStore_event_basic.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_event_delete.tenative.window.js b/cookie-store/cookieStore_event_delete.tenative.window.js
index de54449..f84b2e0 100644
--- a/cookie-store/cookieStore_event_delete.tenative.window.js
+++ b/cookie-store/cookieStore_event_delete.tenative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_event_overwrite.tentative.window.js b/cookie-store/cookieStore_event_overwrite.tentative.window.js
index 8e8c9c1..2a5cb5d 100644
--- a/cookie-store/cookieStore_event_overwrite.tentative.window.js
+++ b/cookie-store/cookieStore_event_overwrite.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_getAll_arguments.tentative.window.js b/cookie-store/cookieStore_getAll_arguments.tentative.window.js
index 650d6eb..4519a1e 100644
--- a/cookie-store/cookieStore_getAll_arguments.tentative.window.js
+++ b/cookie-store/cookieStore_getAll_arguments.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_getAll_set_basic.tentative.window.js b/cookie-store/cookieStore_getAll_set_basic.tentative.window.js
index a70c119..aa0a4ea 100644
--- a/cookie-store/cookieStore_getAll_set_basic.tentative.window.js
+++ b/cookie-store/cookieStore_getAll_set_basic.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_get_arguments.tentative.window.js b/cookie-store/cookieStore_get_arguments.tentative.window.js
index f50bb51..66d815f 100644
--- a/cookie-store/cookieStore_get_arguments.tentative.window.js
+++ b/cookie-store/cookieStore_get_arguments.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_get_delete_basic.tentative.window.js b/cookie-store/cookieStore_get_delete_basic.tentative.window.js
index e039d81..fc9645d 100644
--- a/cookie-store/cookieStore_get_delete_basic.tentative.window.js
+++ b/cookie-store/cookieStore_get_delete_basic.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_get_set_basic.tentative.window.js b/cookie-store/cookieStore_get_set_basic.tentative.window.js
index 1fa834a..2a082de 100644
--- a/cookie-store/cookieStore_get_set_basic.tentative.window.js
+++ b/cookie-store/cookieStore_get_set_basic.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_has_arguments.tentative.window.js b/cookie-store/cookieStore_has_arguments.tentative.window.js
index 443341e..c013b72 100644
--- a/cookie-store/cookieStore_has_arguments.tentative.window.js
+++ b/cookie-store/cookieStore_has_arguments.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_has_basic.tentative.window.js b/cookie-store/cookieStore_has_basic.tentative.window.js
index 0774a71..0bef0b1 100644
--- a/cookie-store/cookieStore_has_basic.tentative.window.js
+++ b/cookie-store/cookieStore_has_basic.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_set_arguments.tentative.window.js b/cookie-store/cookieStore_set_arguments.tentative.window.js
index c256430..9656acf 100644
--- a/cookie-store/cookieStore_set_arguments.tentative.window.js
+++ b/cookie-store/cookieStore_set_arguments.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/cookieStore_set_expires_option.tentative.window.js b/cookie-store/cookieStore_set_expires_option.tentative.window.js
index fdbe2d9..6f3e6f4 100644
--- a/cookie-store/cookieStore_set_expires_option.tentative.window.js
+++ b/cookie-store/cookieStore_set_expires_option.tentative.window.js
@@ -1,7 +1,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/document_getAll_multiple.tentative.html b/cookie-store/document_getAll_multiple.tentative.html
index 57202da..82fd2e6 100644
--- a/cookie-store/document_getAll_multiple.tentative.html
+++ b/cookie-store/document_getAll_multiple.tentative.html
@@ -9,7 +9,7 @@
 'use strict';
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/serviceworker_cookieStore_subscriptions.js b/cookie-store/serviceworker_cookieStore_subscriptions.js
index 3f1b0ff..a2affed 100644
--- a/cookie-store/serviceworker_cookieStore_subscriptions.js
+++ b/cookie-store/serviceworker_cookieStore_subscriptions.js
@@ -19,7 +19,7 @@
 });
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cookie-store/serviceworker_cookieStore_subscriptions_basic.js b/cookie-store/serviceworker_cookieStore_subscriptions_basic.js
index 68edc0e..2b602f4 100644
--- a/cookie-store/serviceworker_cookieStore_subscriptions_basic.js
+++ b/cookie-store/serviceworker_cookieStore_subscriptions_basic.js
@@ -12,7 +12,7 @@
 });
 
 // Workaround because add_cleanup doesn't support async functions yet.
-// See https://github.com/w3c/web-platform-tests/issues/6075
+// See https://github.com/web-platform-tests/wpt/issues/6075
 async function async_cleanup(cleanup_function) {
   try {
     await cleanup_function();
diff --git a/cors/resources/cors-cookie.py b/cors/resources/cors-cookie.py
index 76fa6c1..061563e 100644
--- a/cors/resources/cors-cookie.py
+++ b/cors/resources/cors-cookie.py
@@ -15,7 +15,7 @@
         body = request.cookies[ident].value
         response.delete_cookie(ident)
     else:
-        response.set_cookie(ident, "COOKIE");
+        response.set_cookie(ident, "COOKIE")
         body = "NO_COOKIE"
 
     return headers, body
diff --git a/cors/resources/status.py b/cors/resources/status.py
index d223783..96950da 100644
--- a/cors/resources/status.py
+++ b/cors/resources/status.py
@@ -1,5 +1,5 @@
 def main(request, response):
-    response.headers.set("Access-Control-Allow-Origin", request.headers.get("origin") )
+    response.headers.set("Access-Control-Allow-Origin", request.headers.get("origin"))
     response.headers.set("Access-Control-Expose-Headers", "X-Request-Method")
 
     if request.method == 'OPTIONS':
@@ -10,7 +10,7 @@
 
     response.headers.set("X-Request-Method", request.method)
 
-    response.headers.set("X-A-C-Request-Method", request.headers.get("Access-Control-Request-Method", ""));
+    response.headers.set("X-A-C-Request-Method", request.headers.get("Access-Control-Request-Method", ""))
 
 
     #This should reasonably work for most response codes.
diff --git a/css/CSS2/floats-clear/adjoining-float-before-clearance.html b/css/CSS2/floats-clear/adjoining-float-before-clearance.html
new file mode 100644
index 0000000..13041a2
--- /dev/null
+++ b/css/CSS2/floats-clear/adjoining-float-before-clearance.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Float that would be adjoining if there were no clearance</title>
+<meta name="assert" content="If the clearance candidate would pull a float down with it (due to margin collapsing) if there were no clearance, clearance needs to be inserted to separate the two, so that the block can go past the float. No matter how large the margin is, it should still be just below the float.">
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; background:red;">
+  <div>
+    <div style="float:left; width:100px; height:50px; background:green;"></div>
+  </div>
+  <div style="margin-top:400px; clear:left; height:50px; background:green;"></div>
+</div>
diff --git a/css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html b/css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html
new file mode 100644
index 0000000..5d0fba7
--- /dev/null
+++ b/css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>Clearance on empty block followed by block with large margin and 'clear'</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
+<link rel="help" href="https://www.w3.org/TR/CSS22/box.html#collapsing-margins" title="8.3.1 Collapsing margins">
+<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
+<p>Test passes if there is a filled green square.</p>
+<div style="position:relative; width:100px; border-top:1px solid white; top:-21px; z-index:-1; background:green;">
+  <div style="float:left; width:100px; height:20px; background:white;"></div>
+  <div style="clear:both;"></div>
+  <div style="clear:both; margin-top:100px; height:20px; background:white;"></div>
+</div>
diff --git a/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html b/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html
new file mode 100644
index 0000000..698f380
--- /dev/null
+++ b/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<title>Negative clearance between adjoining float and child with top margin</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; background:red;">
+  <div style="float:left; width:100px; height:50px; background:green;"></div>
+  <div style="clear:left; margin-top:200px;"></div>
+</div>
+<div style="width:100px; height:50px; background:green;"></div>
diff --git a/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html b/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html
new file mode 100644
index 0000000..fb06639
--- /dev/null
+++ b/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<title>Negative clearance between bottom margin and cleared child with top margin</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
+<p>Test passes if there is a filled green square.</p>
+<div style="position:relative; top:-50px; z-index:-1;">
+  <div style="float:left; width:50px; height:50px; border-top:50px solid white; background:green;"></div>
+  <div style="padding-top:1px;">
+    <div style="width:100px; background:green;">
+      <div style="margin-bottom:49px;"></div>
+      <div style="clear:left; margin-top:98px;"></div>
+    </div>
+    <div style="width:100px; height:50px; background:green;"></div>
+  </div>
+</div>
diff --git a/css/WOFF2/available-001.xht b/css/WOFF2/available-001.xht
index 5b3cd16..cba1477 100644
--- a/css/WOFF2/available-001.xht
+++ b/css/WOFF2/available-001.xht
@@ -6,7 +6,6 @@
 		<link rel="author" title="Chris Lilley" href="http://www.w3.org/People" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#General" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-css3font-available" />
-		<meta name="flags" content="font" />
 		<meta name="assert" content="Linked fonts are only available to the documents that reference them" />
 		<style type="text/css"><![CDATA[
 			body {
@@ -23,7 +22,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears <em>twice</em> below.</p>
 		<iframe src="support/available-001a.xht" />
 		<iframe src="support/available-001b.xht" />
diff --git a/css/WOFF2/blocks-extraneous-data-001-ref.xht b/css/WOFF2/blocks-extraneous-data-001-ref.xht
index a60fc60..df7edfe 100644
--- a/css/WOFF2/blocks-extraneous-data-001-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes between the header and the table directory." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-001.xht b/css/WOFF2/blocks-extraneous-data-001.xht
index b8aa7e5..6cf0351 100644
--- a/css/WOFF2/blocks-extraneous-data-001.xht
+++ b/css/WOFF2/blocks-extraneous-data-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-001-ref.xht" />
 		<meta name="assert" content="There are four null bytes between the header and the table directory." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-002-ref.xht b/css/WOFF2/blocks-extraneous-data-002-ref.xht
index 308f03c..de7f62c 100644
--- a/css/WOFF2/blocks-extraneous-data-002-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes between the table directory and the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-002.xht b/css/WOFF2/blocks-extraneous-data-002.xht
index 86ca716..09960d8 100644
--- a/css/WOFF2/blocks-extraneous-data-002.xht
+++ b/css/WOFF2/blocks-extraneous-data-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-002-ref.xht" />
 		<meta name="assert" content="There are four null bytes between the table directory and the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-003-ref.xht b/css/WOFF2/blocks-extraneous-data-003-ref.xht
index 39cab6d..17e43ef 100644
--- a/css/WOFF2/blocks-extraneous-data-003-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes after the table data block and there is no metadata or private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-003.xht b/css/WOFF2/blocks-extraneous-data-003.xht
index ee300af..6f1a19e 100644
--- a/css/WOFF2/blocks-extraneous-data-003.xht
+++ b/css/WOFF2/blocks-extraneous-data-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-003-ref.xht" />
 		<meta name="assert" content="There are four null bytes after the table data block and there is no metadata or private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-004-ref.xht b/css/WOFF2/blocks-extraneous-data-004-ref.xht
index 1eaabae..a8f33ae 100644
--- a/css/WOFF2/blocks-extraneous-data-004-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-004-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes between the table data and the metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-004.xht b/css/WOFF2/blocks-extraneous-data-004.xht
index d79744a..010d3e1 100644
--- a/css/WOFF2/blocks-extraneous-data-004.xht
+++ b/css/WOFF2/blocks-extraneous-data-004.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-004-ref.xht" />
 		<meta name="assert" content="There are four null bytes between the table data and the metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-004.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-005-ref.xht b/css/WOFF2/blocks-extraneous-data-005-ref.xht
index 4d6cb83..ca382e0 100644
--- a/css/WOFF2/blocks-extraneous-data-005-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-005-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes between the table data and the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-005.xht b/css/WOFF2/blocks-extraneous-data-005.xht
index 00ec29f..2c7ce84 100644
--- a/css/WOFF2/blocks-extraneous-data-005.xht
+++ b/css/WOFF2/blocks-extraneous-data-005.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-005-ref.xht" />
 		<meta name="assert" content="There are four null bytes between the table data and the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-005.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-006-ref.xht b/css/WOFF2/blocks-extraneous-data-006-ref.xht
index 5c5be00..95188bf 100644
--- a/css/WOFF2/blocks-extraneous-data-006-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-006-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes between the metadata and the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-006.xht b/css/WOFF2/blocks-extraneous-data-006.xht
index f6cc64a..262fd3a 100644
--- a/css/WOFF2/blocks-extraneous-data-006.xht
+++ b/css/WOFF2/blocks-extraneous-data-006.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-006-ref.xht" />
 		<meta name="assert" content="There are four null bytes between the metadata and the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-006.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-007-ref.xht b/css/WOFF2/blocks-extraneous-data-007-ref.xht
index 9b30393..3a3e796 100644
--- a/css/WOFF2/blocks-extraneous-data-007-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-007-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes after the metadata and there is no private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-007.xht b/css/WOFF2/blocks-extraneous-data-007.xht
index b88c174..9e2589a 100644
--- a/css/WOFF2/blocks-extraneous-data-007.xht
+++ b/css/WOFF2/blocks-extraneous-data-007.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-007-ref.xht" />
 		<meta name="assert" content="There are four null bytes after the metadata and there is no private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-007.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-008-ref.xht b/css/WOFF2/blocks-extraneous-data-008-ref.xht
index 9cc20a9..3e73158 100644
--- a/css/WOFF2/blocks-extraneous-data-008-ref.xht
+++ b/css/WOFF2/blocks-extraneous-data-008-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There are four null bytes after the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-extraneous-data-008.xht b/css/WOFF2/blocks-extraneous-data-008.xht
index 0fbfbb6..1424ac0 100644
--- a/css/WOFF2/blocks-extraneous-data-008.xht
+++ b/css/WOFF2/blocks-extraneous-data-008.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-extraneous-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-extraneous-data-008-ref.xht" />
 		<meta name="assert" content="There are four null bytes after the private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-extraneous-data-008.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-001-ref.xht b/css/WOFF2/blocks-overlap-001-ref.xht
index d6af8b5..ce26120 100644
--- a/css/WOFF2/blocks-overlap-001-ref.xht
+++ b/css/WOFF2/blocks-overlap-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata offset is four bytes before the end of the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-001.xht b/css/WOFF2/blocks-overlap-001.xht
index 6b6d54f..5d78f61 100644
--- a/css/WOFF2/blocks-overlap-001.xht
+++ b/css/WOFF2/blocks-overlap-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-overlap-001-ref.xht" />
 		<meta name="assert" content="The metadata offset is four bytes before the end of the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-overlap-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-002-ref.xht b/css/WOFF2/blocks-overlap-002-ref.xht
index ebeb869..9245ad8 100644
--- a/css/WOFF2/blocks-overlap-002-ref.xht
+++ b/css/WOFF2/blocks-overlap-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The private data offset is four bytes before the end of the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-002.xht b/css/WOFF2/blocks-overlap-002.xht
index 213b259..e524f76 100644
--- a/css/WOFF2/blocks-overlap-002.xht
+++ b/css/WOFF2/blocks-overlap-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-overlap-002-ref.xht" />
 		<meta name="assert" content="The private data offset is four bytes before the end of the table data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-overlap-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-003-ref.xht b/css/WOFF2/blocks-overlap-003-ref.xht
index 4097d13..a45362f 100644
--- a/css/WOFF2/blocks-overlap-003-ref.xht
+++ b/css/WOFF2/blocks-overlap-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The private data offset is four bytes before the end of the metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/blocks-overlap-003.xht b/css/WOFF2/blocks-overlap-003.xht
index a397ac9..16e5dcc 100644
--- a/css/WOFF2/blocks-overlap-003.xht
+++ b/css/WOFF2/blocks-overlap-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-overlap-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="blocks-overlap-003-ref.xht" />
 		<meta name="assert" content="The private data offset is four bytes before the end of the metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/blocks-overlap-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/datatypes-alt-255uint16-001-ref.xht b/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
index 5bdc39d..8f157de 100644
--- a/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
+++ b/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustAccept255UInt16" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with different valid representation of the same 255UInt16 encoded number" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/datatypes-alt-255uint16-001.xht b/css/WOFF2/datatypes-alt-255uint16-001.xht
index 34cec5f..fc4eaf5 100644
--- a/css/WOFF2/datatypes-alt-255uint16-001.xht
+++ b/css/WOFF2/datatypes-alt-255uint16-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustAccept255UInt16" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="datatypes-alt-255uint16-001-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with different valid representation of the same 255UInt16 encoded number" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/datatypes-alt-255uint16-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-001-ref.xht b/css/WOFF2/datatypes-invalid-base128-001-ref.xht
index c56c6c1..67dced9 100644
--- a/css/WOFF2/datatypes-invalid-base128-001-ref.xht
+++ b/css/WOFF2/datatypes-invalid-base128-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers with leading zeros" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-001.xht b/css/WOFF2/datatypes-invalid-base128-001.xht
index ee3b51e..49db875 100644
--- a/css/WOFF2/datatypes-invalid-base128-001.xht
+++ b/css/WOFF2/datatypes-invalid-base128-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="datatypes-invalid-base128-001-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers with leading zeros" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/datatypes-invalid-base128-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-002-ref.xht b/css/WOFF2/datatypes-invalid-base128-002-ref.xht
index b35288f..74d4b87 100644
--- a/css/WOFF2/datatypes-invalid-base128-002-ref.xht
+++ b/css/WOFF2/datatypes-invalid-base128-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers which exceed 2^{32}-1" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-002.xht b/css/WOFF2/datatypes-invalid-base128-002.xht
index e7b7f43..6e47dbc 100644
--- a/css/WOFF2/datatypes-invalid-base128-002.xht
+++ b/css/WOFF2/datatypes-invalid-base128-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="datatypes-invalid-base128-002-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers which exceed 2^{32}-1" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/datatypes-invalid-base128-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-003-ref.xht b/css/WOFF2/datatypes-invalid-base128-003-ref.xht
index 7c74bb6..380e7fb 100644
--- a/css/WOFF2/datatypes-invalid-base128-003-ref.xht
+++ b/css/WOFF2/datatypes-invalid-base128-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers longer than 5 bytes" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/datatypes-invalid-base128-003.xht b/css/WOFF2/datatypes-invalid-base128-003.xht
index bbfb152..7d59592 100644
--- a/css/WOFF2/datatypes-invalid-base128-003.xht
+++ b/css/WOFF2/datatypes-invalid-base128-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTypes" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectInvalidBase128" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="datatypes-invalid-base128-003-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF that has UIntBase128 numbers longer than 5 bytes" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/datatypes-invalid-base128-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/directory-mismatched-tables-001-ref.xht b/css/WOFF2/directory-mismatched-tables-001-ref.xht
index f5fc01b..ce5df1e 100644
--- a/css/WOFF2/directory-mismatched-tables-001-ref.xht
+++ b/css/WOFF2/directory-mismatched-tables-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#table_dir_format" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckRejectMismatchedTables" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF font collection with two pairs of mismatched glyf/loca tables" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/directory-mismatched-tables-001.xht b/css/WOFF2/directory-mismatched-tables-001.xht
index 3ab384e..5edf31c 100644
--- a/css/WOFF2/directory-mismatched-tables-001.xht
+++ b/css/WOFF2/directory-mismatched-tables-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#table_dir_format" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckRejectMismatchedTables" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="directory-mismatched-tables-001-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF font collection with two pairs of mismatched glyf/loca tables" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/directory-mismatched-tables-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/header-length-001-ref.xht b/css/WOFF2/header-length-001-ref.xht
index c7509bc..83a4300 100644
--- a/css/WOFF2/header-length-001-ref.xht
+++ b/css/WOFF2/header-length-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The length field contains a value that is four bytes shorter than the actual data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-length-001.xht b/css/WOFF2/header-length-001.xht
index 846aae6..0fc9b05 100644
--- a/css/WOFF2/header-length-001.xht
+++ b/css/WOFF2/header-length-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-length-001-ref.xht" />
 		<meta name="assert" content="The length field contains a value that is four bytes shorter than the actual data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-length-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/header-length-002-ref.xht b/css/WOFF2/header-length-002-ref.xht
index 5cd7847..996aba0 100644
--- a/css/WOFF2/header-length-002-ref.xht
+++ b/css/WOFF2/header-length-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The length field contains a value that is four bytes longer than the actual data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-length-002.xht b/css/WOFF2/header-length-002.xht
index 2c925e7..1ddba6b 100644
--- a/css/WOFF2/header-length-002.xht
+++ b/css/WOFF2/header-length-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-length-002-ref.xht" />
 		<meta name="assert" content="The length field contains a value that is four bytes longer than the actual data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-length-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/header-numTables-001-ref.xht b/css/WOFF2/header-numTables-001-ref.xht
index 35eb5dc..00bb819 100644
--- a/css/WOFF2/header-numTables-001-ref.xht
+++ b/css/WOFF2/header-numTables-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The header contains 0 in the numTables field. A table directory and table data are present." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-numTables-001.xht b/css/WOFF2/header-numTables-001.xht
index fd2b6fc..b1f31c6 100644
--- a/css/WOFF2/header-numTables-001.xht
+++ b/css/WOFF2/header-numTables-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-numTables-001-ref.xht" />
 		<meta name="assert" content="The header contains 0 in the numTables field. A table directory and table data are present." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-numTables-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/header-reserved-001-ref.xht b/css/WOFF2/header-reserved-001-ref.xht
index 07c8038..0e192fb 100644
--- a/css/WOFF2/header-reserved-001-ref.xht
+++ b/css/WOFF2/header-reserved-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotUseReservedValue" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The reserved field contains 1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-reserved-001.xht b/css/WOFF2/header-reserved-001.xht
index dadaa3d..c080924 100644
--- a/css/WOFF2/header-reserved-001.xht
+++ b/css/WOFF2/header-reserved-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotUseReservedValue" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-reserved-001-ref.xht" />
 		<meta name="assert" content="The reserved field contains 1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-reserved-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-signature-001-ref.xht b/css/WOFF2/header-signature-001-ref.xht
index 83f6da0..1ea6ea5 100644
--- a/css/WOFF2/header-signature-001-ref.xht
+++ b/css/WOFF2/header-signature-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-noMagicNumber-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The signature field contains XXXX instead of wOFF." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-signature-001.xht b/css/WOFF2/header-signature-001.xht
index 3562411..32e06d3 100644
--- a/css/WOFF2/header-signature-001.xht
+++ b/css/WOFF2/header-signature-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-noMagicNumber-reject" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-signature-001-ref.xht" />
 		<meta name="assert" content="The signature field contains XXXX instead of wOFF." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-signature-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/header-totalsfntsize-001-ref.xht b/css/WOFF2/header-totalsfntsize-001-ref.xht
index 3508489..899c091 100644
--- a/css/WOFF2/header-totalsfntsize-001-ref.xht
+++ b/css/WOFF2/header-totalsfntsize-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectIncorrectTotalSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The totalSfntSize field contains a too small incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-totalsfntsize-001.xht b/css/WOFF2/header-totalsfntsize-001.xht
index 6e33585..f63c7fe 100644
--- a/css/WOFF2/header-totalsfntsize-001.xht
+++ b/css/WOFF2/header-totalsfntsize-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectIncorrectTotalSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-totalsfntsize-001-ref.xht" />
 		<meta name="assert" content="The totalSfntSize field contains a too small incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-totalsfntsize-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-totalsfntsize-002-ref.xht b/css/WOFF2/header-totalsfntsize-002-ref.xht
index 2940036..4892059 100644
--- a/css/WOFF2/header-totalsfntsize-002-ref.xht
+++ b/css/WOFF2/header-totalsfntsize-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectIncorrectTotalSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The totalSfntSize field contains a too big incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/header-totalsfntsize-002.xht b/css/WOFF2/header-totalsfntsize-002.xht
index 6f9bce7..1952d2e 100644
--- a/css/WOFF2/header-totalsfntsize-002.xht
+++ b/css/WOFF2/header-totalsfntsize-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#woff20Header" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectIncorrectTotalSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="header-totalsfntsize-002-ref.xht" />
 		<meta name="assert" content="The totalSfntSize field contains a too big incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/header-totalsfntsize-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/metadata-noeffect-001-ref.xht b/css/WOFF2/metadata-noeffect-001-ref.xht
index 4e363a3..6eecea6 100644
--- a/css/WOFF2/metadata-noeffect-001-ref.xht
+++ b/css/WOFF2/metadata-noeffect-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The file has no metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/metadata-noeffect-001.xht b/css/WOFF2/metadata-noeffect-001.xht
index 2d539ce..ce104bf 100644
--- a/css/WOFF2/metadata-noeffect-001.xht
+++ b/css/WOFF2/metadata-noeffect-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadata-noeffect-001-ref.xht" />
 		<meta name="assert" content="The file has no metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadata-noeffect-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/metadata-noeffect-002-ref.xht b/css/WOFF2/metadata-noeffect-002-ref.xht
index f6405da..ebc3fa8 100644
--- a/css/WOFF2/metadata-noeffect-002-ref.xht
+++ b/css/WOFF2/metadata-noeffect-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The file has metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadata-noeffect-002.xht b/css/WOFF2/metadata-noeffect-002.xht
index 4efa5df..4424643 100644
--- a/css/WOFF2/metadata-noeffect-002.xht
+++ b/css/WOFF2/metadata-noeffect-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadata-noeffect-002-ref.xht" />
 		<meta name="assert" content="The file has metadata." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadata-noeffect-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-authoritative-001-ref.xht b/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
index caf48c4..a48dac1 100644
--- a/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-authoritative" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name table and metadata fields are out of sync. The name table contains FAIL and the metadata contains PASS for unique id, vendor name, vendor url, credit name, credit url, description, license, license url, copyright and trademark." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<p>The Extended Metadata Block test fails if the word FAIL appears in the metadata display.</p>
diff --git a/css/WOFF2/metadatadisplay-authoritative-001.xht b/css/WOFF2/metadatadisplay-authoritative-001.xht
index 70d4eec..4af9fcd 100644
--- a/css/WOFF2/metadatadisplay-authoritative-001.xht
+++ b/css/WOFF2/metadatadisplay-authoritative-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-authoritative" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-authoritative-001-ref.xht" />
 		<meta name="assert" content="The name table and metadata fields are out of sync. The name table contains FAIL and the metadata contains PASS for unique id, vendor name, vendor url, credit name, credit url, description, license, license url, copyright and trademark." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-authoritative-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<p>The Extended Metadata Block test fails if the word FAIL appears in the metadata display.</p>
diff --git a/css/WOFF2/metadatadisplay-compression-001-ref.xht b/css/WOFF2/metadatadisplay-compression-001-ref.xht
index 227e873..289d493 100644
--- a/css/WOFF2/metadatadisplay-compression-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-compression-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-alwayscompress" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata is stored in an uncompressed state and therefore does not have the proper compression format." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-compression-001.xht b/css/WOFF2/metadatadisplay-compression-001.xht
index 5409867..e24f152 100644
--- a/css/WOFF2/metadatadisplay-compression-001.xht
+++ b/css/WOFF2/metadatadisplay-compression-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-alwayscompress" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-compression-001-ref.xht" />
 		<meta name="assert" content="The metadata is stored in an uncompressed state and therefore does not have the proper compression format." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-compression-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-001-ref.xht b/css/WOFF2/metadatadisplay-encoding-001-ref.xht
index 7c2b93b..9401711 100644
--- a/css/WOFF2/metadatadisplay-encoding-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is set to UTF-8." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-001.xht b/css/WOFF2/metadatadisplay-encoding-001.xht
index 2c49048..5690b64 100644
--- a/css/WOFF2/metadatadisplay-encoding-001.xht
+++ b/css/WOFF2/metadatadisplay-encoding-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-001-ref.xht" />
 		<meta name="assert" content="The xml encoding is set to UTF-8." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-002-ref.xht b/css/WOFF2/metadatadisplay-encoding-002-ref.xht
index 133e124..e8ae831 100644
--- a/css/WOFF2/metadatadisplay-encoding-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is set to UTF-16." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-002.xht b/css/WOFF2/metadatadisplay-encoding-002.xht
index d6a7ca6..f177440 100644
--- a/css/WOFF2/metadatadisplay-encoding-002.xht
+++ b/css/WOFF2/metadatadisplay-encoding-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-002-ref.xht" />
 		<meta name="assert" content="The xml encoding is set to UTF-16." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-003-ref.xht b/css/WOFF2/metadatadisplay-encoding-003-ref.xht
index 9c755b2..c828eb3 100644
--- a/css/WOFF2/metadatadisplay-encoding-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is set to ISO-8859-1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-003.xht b/css/WOFF2/metadatadisplay-encoding-003.xht
index ae09ad5..56d901c 100644
--- a/css/WOFF2/metadatadisplay-encoding-003.xht
+++ b/css/WOFF2/metadatadisplay-encoding-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-003-ref.xht" />
 		<meta name="assert" content="The xml encoding is set to ISO-8859-1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-004-ref.xht b/css/WOFF2/metadatadisplay-encoding-004-ref.xht
index 11dbddc..2c6f1d1 100644
--- a/css/WOFF2/metadatadisplay-encoding-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is not declared and there is no BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-004.xht b/css/WOFF2/metadatadisplay-encoding-004.xht
index 4c8b503..a61fcee 100644
--- a/css/WOFF2/metadatadisplay-encoding-004.xht
+++ b/css/WOFF2/metadatadisplay-encoding-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-004-ref.xht" />
 		<meta name="assert" content="The xml encoding is not declared and there is no BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-005-ref.xht b/css/WOFF2/metadatadisplay-encoding-005-ref.xht
index 0bc66f2..d5a07cf 100644
--- a/css/WOFF2/metadatadisplay-encoding-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is not declared and there is a UTF-8 BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-005.xht b/css/WOFF2/metadatadisplay-encoding-005.xht
index 494b867..cc89c15 100644
--- a/css/WOFF2/metadatadisplay-encoding-005.xht
+++ b/css/WOFF2/metadatadisplay-encoding-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-005-ref.xht" />
 		<meta name="assert" content="The xml encoding is not declared and there is a UTF-8 BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-006-ref.xht b/css/WOFF2/metadatadisplay-encoding-006-ref.xht
index 94c1bdc..1b75c84 100644
--- a/css/WOFF2/metadatadisplay-encoding-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-encoding-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is not declared and there is a UTF-16 BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-encoding-006.xht b/css/WOFF2/metadatadisplay-encoding-006.xht
index 48efef1..a8a0e7b 100644
--- a/css/WOFF2/metadatadisplay-encoding-006.xht
+++ b/css/WOFF2/metadatadisplay-encoding-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-encoding-006-ref.xht" />
 		<meta name="assert" content="The xml encoding is not declared and there is a UTF-16 BOM." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-encoding-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-metaOrigLength-001-ref.xht b/css/WOFF2/metadatadisplay-metaOrigLength-001-ref.xht
index d2637a4..087cf5c 100644
--- a/css/WOFF2/metadatadisplay-metaOrigLength-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-metaOrigLength-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metaOrigLength" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata decompresses to a length that is 1 byte smaller than the length defined in metaOrigLength" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-metaOrigLength-001.xht b/css/WOFF2/metadatadisplay-metaOrigLength-001.xht
index 5740b96..4d27d4d 100644
--- a/css/WOFF2/metadatadisplay-metaOrigLength-001.xht
+++ b/css/WOFF2/metadatadisplay-metaOrigLength-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metaOrigLength" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-metaOrigLength-001-ref.xht" />
 		<meta name="assert" content="The metadata decompresses to a length that is 1 byte smaller than the length defined in metaOrigLength" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-metaOrigLength-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-metaOrigLength-002-ref.xht b/css/WOFF2/metadatadisplay-metaOrigLength-002-ref.xht
index d8a1232..af13504 100644
--- a/css/WOFF2/metadatadisplay-metaOrigLength-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-metaOrigLength-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metaOrigLength" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata decompresses to a length that is 1 byte greater than the length defined in metaOrigLength" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-metaOrigLength-002.xht b/css/WOFF2/metadatadisplay-metaOrigLength-002.xht
index ea079de..c8a24dd 100644
--- a/css/WOFF2/metadatadisplay-metaOrigLength-002.xht
+++ b/css/WOFF2/metadatadisplay-metaOrigLength-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metaOrigLength" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-metaOrigLength-002-ref.xht" />
 		<meta name="assert" content="The metadata decompresses to a length that is 1 byte greater than the length defined in metaOrigLength" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-metaOrigLength-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
index a299459..e6181ff 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-001.xht b/css/WOFF2/metadatadisplay-schema-copyright-001.xht
index 49b0f00..261330d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-001-ref.xht" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
index 9bc2807..bdb4a8e 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-002.xht b/css/WOFF2/metadatadisplay-schema-copyright-002.xht
index 1ca04ec..7c8f180 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-002-ref.xht" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
index dd73610..11d19a5 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-003.xht b/css/WOFF2/metadatadisplay-schema-copyright-003.xht
index b601a21..c7ea9b9 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-003-ref.xht" />
 		<meta name="assert" content="The copyright element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
index e2912e2..65d464d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-004.xht b/css/WOFF2/metadatadisplay-schema-copyright-004.xht
index 075ff5f6..a834d4e 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-004-ref.xht" />
 		<meta name="assert" content="The copyright element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
index b028931..993037f 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-005.xht b/css/WOFF2/metadatadisplay-schema-copyright-005.xht
index 5fc0f95..5467c4a 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-005-ref.xht" />
 		<meta name="assert" content="The copyright element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
index 1a68030..2f4a1a6 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-006.xht b/css/WOFF2/metadatadisplay-schema-copyright-006.xht
index c941e6d..01dfbe6 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-006-ref.xht" />
 		<meta name="assert" content="The copyright element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
index 3620d62..87682b9 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-007.xht b/css/WOFF2/metadatadisplay-schema-copyright-007.xht
index cee1996..39c7b30 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-007-ref.xht" />
 		<meta name="assert" content="The copyright element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
index 1ca527d..59a81d0a 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-008.xht b/css/WOFF2/metadatadisplay-schema-copyright-008.xht
index 5847b86..0c114ac 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-008-ref.xht" />
 		<meta name="assert" content="The copyright element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
index ee605fd..cf32a75 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-009.xht b/css/WOFF2/metadatadisplay-schema-copyright-009.xht
index 82105af..acd6c11 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-009-ref.xht" />
 		<meta name="assert" content="The copyright element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
index f3f2eb6..40c3755 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-010.xht b/css/WOFF2/metadatadisplay-schema-copyright-010.xht
index a2b7c08..42a3d6e 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-010-ref.xht" />
 		<meta name="assert" content="The copyright element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
index 80660ac..34279bf 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-011.xht b/css/WOFF2/metadatadisplay-schema-copyright-011.xht
index 46cd064..7cb5e4d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-011-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
index 147c52c..46d1fb6 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-012.xht b/css/WOFF2/metadatadisplay-schema-copyright-012.xht
index 7ab47f1..540c7ed 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-012-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
index f1c50e6..de8477b 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-013.xht b/css/WOFF2/metadatadisplay-schema-copyright-013.xht
index 3e49a40..24769d1 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-013.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-013.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-013-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-013.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
index 3ac512c..df5369d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-014.xht b/css/WOFF2/metadatadisplay-schema-copyright-014.xht
index 903f717..9d5db7d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-014.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-014.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-014-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-014.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
index 57994e7..ee4a7b8 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-015.xht b/css/WOFF2/metadatadisplay-schema-copyright-015.xht
index d09f45e..13b960f 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-015.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-015.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-015-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-015.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
index 9af23ef..8544535 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-016.xht b/css/WOFF2/metadatadisplay-schema-copyright-016.xht
index ec82bf1..a611e8b 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-016.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-016.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-016-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-016.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
index 8357b16..1e22b05 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-017.xht b/css/WOFF2/metadatadisplay-schema-copyright-017.xht
index eec790e..6d25ee8 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-017.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-017.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-017-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-017.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
index e7fbcc1..21beb8d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-018.xht b/css/WOFF2/metadatadisplay-schema-copyright-018.xht
index fa9a4dc..cd72195 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-018.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-018.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-018-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-018.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
index 95d7932..aab0f60 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-019.xht b/css/WOFF2/metadatadisplay-schema-copyright-019.xht
index f747876..f783aa1 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-019.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-019.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-019-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-019.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
index 2fecc92..ef3fe1c 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-020.xht b/css/WOFF2/metadatadisplay-schema-copyright-020.xht
index f43bbbe..92a7550 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-020.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-020.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-020-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-020.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
index d4611ff..d25765d 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-021.xht b/css/WOFF2/metadatadisplay-schema-copyright-021.xht
index 17cd879..a0cc553 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-021.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-021.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-021-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-021.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
index 61a4901..9fc713f 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-022.xht b/css/WOFF2/metadatadisplay-schema-copyright-022.xht
index 969b435..acbda84 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-022.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-022.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-022-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-022.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
index 2132062..f86e890 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-023.xht b/css/WOFF2/metadatadisplay-schema-copyright-023.xht
index 112f092..446db89 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-023.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-023.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-023-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-023.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
index a45f68c..623ec35 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-024.xht b/css/WOFF2/metadatadisplay-schema-copyright-024.xht
index f9dea73..6bf715e 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-024.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-024.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-024-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-024.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
index f4d24c9..7de85cc 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-025.xht b/css/WOFF2/metadatadisplay-schema-copyright-025.xht
index bdc41b3..8c6fe95 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-025.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-025.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-025-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-025.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
index c15e94e..aa25d9a 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-026.xht b/css/WOFF2/metadatadisplay-schema-copyright-026.xht
index ec97f97..8a310dd 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-026.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-026.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-026-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-026.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
index 88ec95c..57c103e 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-027.xht b/css/WOFF2/metadatadisplay-schema-copyright-027.xht
index 6cf3303..2655dfa 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-027.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-027.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-027-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-027.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
index 878951d..9b9b632 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-028.xht b/css/WOFF2/metadatadisplay-schema-copyright-028.xht
index a7f1b85..d32a511 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-028.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-028.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-028-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-028.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
index 42b3389..49e062f 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-029.xht b/css/WOFF2/metadatadisplay-schema-copyright-029.xht
index edabcd5..cf45a82 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-029.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-029.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-029-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-029.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht b/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
index 35b7e68..83c9970 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-copyright-030.xht b/css/WOFF2/metadatadisplay-schema-copyright-030.xht
index 31c206a..6750292 100644
--- a/css/WOFF2/metadatadisplay-schema-copyright-030.xht
+++ b/css/WOFF2/metadatadisplay-schema-copyright-030.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-copyright-030-ref.xht" />
 		<meta name="assert" content="The copyright element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-copyright-030.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
index a5314cf..af453c9 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-001.xht b/css/WOFF2/metadatadisplay-schema-credit-001.xht
index 8f9ec11..6630b7d 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-001-ref.xht" />
 		<meta name="assert" content="The credit element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
index 90c09b6..4824839 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-002.xht b/css/WOFF2/metadatadisplay-schema-credit-002.xht
index e3bf3d9..935cb9d 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-002-ref.xht" />
 		<meta name="assert" content="The credit element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
index 91f6a63..ee0863c 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element does not contain a role attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-003.xht b/css/WOFF2/metadatadisplay-schema-credit-003.xht
index ad2c361..1fde7c1 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-003-ref.xht" />
 		<meta name="assert" content="The credit element does not contain a role attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
index 446b700..7357257 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element does not contain a name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-004.xht b/css/WOFF2/metadatadisplay-schema-credit-004.xht
index dd8f26a..4a213fd 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-004-ref.xht" />
 		<meta name="assert" content="The credit element does not contain a name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
index fe771dd..c18e920 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-005.xht b/css/WOFF2/metadatadisplay-schema-credit-005.xht
index 1f750a5..4e7ba08 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-005-ref.xht" />
 		<meta name="assert" content="The credit element contains ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
index dcf276e..a3beb8c 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-006.xht b/css/WOFF2/metadatadisplay-schema-credit-006.xht
index 02daa0e..84e2ebe 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-006-ref.xht" />
 		<meta name="assert" content="The credit element contains rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
index ed7594b..dc0c6bf 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-007.xht b/css/WOFF2/metadatadisplay-schema-credit-007.xht
index e6f15b0..7bcfbcf 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-007-ref.xht" />
 		<meta name="assert" content="The credit element contains INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
index 6d768bf..f09023e 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-008.xht b/css/WOFF2/metadatadisplay-schema-credit-008.xht
index adc874a..0f9bea1 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-008-ref.xht" />
 		<meta name="assert" content="The credit element contains &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
index 6dc7d7d..9b80b9e 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-009.xht b/css/WOFF2/metadatadisplay-schema-credit-009.xht
index 804e51b..4f1db59 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-009-ref.xht" />
 		<meta name="assert" content="The credit element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
index 4e6ce39..8079d02 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-010.xht b/css/WOFF2/metadatadisplay-schema-credit-010.xht
index bb49c62..d5cae23 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-010-ref.xht" />
 		<meta name="assert" content="The credit element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht b/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
index 90a32d2..fcc52f7 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credit element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credit-011.xht b/css/WOFF2/metadatadisplay-schema-credit-011.xht
index 1248765..474b322 100644
--- a/css/WOFF2/metadatadisplay-schema-credit-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-credit-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credit-011-ref.xht" />
 		<meta name="assert" content="The credit element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credit-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
index b06415e..4560d74 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element matches the schema and it contains one credit child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-001.xht b/css/WOFF2/metadatadisplay-schema-credits-001.xht
index f2b82e0..dda392d 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-001-ref.xht" />
 		<meta name="assert" content="The credits element matches the schema and it contains one credit child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
index 502e160..9b6d2d2 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element matches the schema and it contains two credit child elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-002.xht b/css/WOFF2/metadatadisplay-schema-credits-002.xht
index dd40995..8f3019f 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-002-ref.xht" />
 		<meta name="assert" content="The credits element matches the schema and it contains two credit child elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
index e15e1b6..a55c73c 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element does not contain a credit child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-003.xht b/css/WOFF2/metadatadisplay-schema-credits-003.xht
index afd6ec9..f6fc21c 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-003-ref.xht" />
 		<meta name="assert" content="The credits element does not contain a credit child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
index e8b13a4..b7b10be 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-004.xht b/css/WOFF2/metadatadisplay-schema-credits-004.xht
index 83019dd..bf3fd02 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-004-ref.xht" />
 		<meta name="assert" content="The credits element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
index ee89de2..6457d7e 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-005.xht b/css/WOFF2/metadatadisplay-schema-credits-005.xht
index b17763f..5c01ab1 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-005-ref.xht" />
 		<meta name="assert" content="The credits element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
index 2bab96e..e20784a 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element contains an content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-006.xht b/css/WOFF2/metadatadisplay-schema-credits-006.xht
index eeab320..80a0c0b 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-006-ref.xht" />
 		<meta name="assert" content="The credits element contains an content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht b/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
index 6105847..264aeed 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The credits element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-credits-007.xht b/css/WOFF2/metadatadisplay-schema-credits-007.xht
index 08222c3..63709b0 100644
--- a/css/WOFF2/metadatadisplay-schema-credits-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-credits-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-credits-007-ref.xht" />
 		<meta name="assert" content="The credits element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-credits-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-001-ref.xht b/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
index 4be453f..01736f8 100644
--- a/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-001.xht b/css/WOFF2/metadatadisplay-schema-description-001.xht
index 88b3b4a..c882d6b 100644
--- a/css/WOFF2/metadatadisplay-schema-description-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-001-ref.xht" />
 		<meta name="assert" content="The description element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-002-ref.xht b/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
index 9a379f4..4287f7c 100644
--- a/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-002.xht b/css/WOFF2/metadatadisplay-schema-description-002.xht
index 517f9bc..d99e6ae 100644
--- a/css/WOFF2/metadatadisplay-schema-description-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-002-ref.xht" />
 		<meta name="assert" content="The description element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-003-ref.xht b/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
index ce55eb0..50e984c 100644
--- a/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-003.xht b/css/WOFF2/metadatadisplay-schema-description-003.xht
index 6fb03b8..cb15795 100644
--- a/css/WOFF2/metadatadisplay-schema-description-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-003-ref.xht" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-004-ref.xht b/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
index 39ca392..63b6f0b 100644
--- a/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-004.xht b/css/WOFF2/metadatadisplay-schema-description-004.xht
index 2e41158..1691c1d 100644
--- a/css/WOFF2/metadatadisplay-schema-description-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-004-ref.xht" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-005-ref.xht b/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
index 3bb5cc6..3337e74 100644
--- a/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-005.xht b/css/WOFF2/metadatadisplay-schema-description-005.xht
index fa160c5..d8a7ba4 100644
--- a/css/WOFF2/metadatadisplay-schema-description-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-005-ref.xht" />
 		<meta name="assert" content="The description element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-006-ref.xht b/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
index f04a9b9..af5be58 100644
--- a/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-006.xht b/css/WOFF2/metadatadisplay-schema-description-006.xht
index a973acb..47c6c7e 100644
--- a/css/WOFF2/metadatadisplay-schema-description-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-006-ref.xht" />
 		<meta name="assert" content="The description element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-007-ref.xht b/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
index 30d848c..e75c2e4 100644
--- a/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-007.xht b/css/WOFF2/metadatadisplay-schema-description-007.xht
index a6be5af..d0d764a 100644
--- a/css/WOFF2/metadatadisplay-schema-description-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-007-ref.xht" />
 		<meta name="assert" content="The description element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-008-ref.xht b/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
index d872660..9c1842d 100644
--- a/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-008.xht b/css/WOFF2/metadatadisplay-schema-description-008.xht
index 27c88c7..39ac21e 100644
--- a/css/WOFF2/metadatadisplay-schema-description-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-008-ref.xht" />
 		<meta name="assert" content="The description element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-009-ref.xht b/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
index ce17e22..773e161 100644
--- a/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-009.xht b/css/WOFF2/metadatadisplay-schema-description-009.xht
index c7e19e9..3f86a7f 100644
--- a/css/WOFF2/metadatadisplay-schema-description-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-009-ref.xht" />
 		<meta name="assert" content="The description element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-010-ref.xht b/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
index 27b61c3..6cfb123 100644
--- a/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-010.xht b/css/WOFF2/metadatadisplay-schema-description-010.xht
index 90b4968..28f4839 100644
--- a/css/WOFF2/metadatadisplay-schema-description-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-010-ref.xht" />
 		<meta name="assert" content="The description element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-011-ref.xht b/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
index 33322c3..053d939 100644
--- a/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-011.xht b/css/WOFF2/metadatadisplay-schema-description-011.xht
index 97d9dd0..50cf2e7 100644
--- a/css/WOFF2/metadatadisplay-schema-description-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-011-ref.xht" />
 		<meta name="assert" content="The description element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-012-ref.xht b/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
index 4eea1e0..2876b33 100644
--- a/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-012.xht b/css/WOFF2/metadatadisplay-schema-description-012.xht
index e5342e2..d37b2bb 100644
--- a/css/WOFF2/metadatadisplay-schema-description-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-012-ref.xht" />
 		<meta name="assert" content="The description element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-013-ref.xht b/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
index 6c080de..07d5917 100644
--- a/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-013.xht b/css/WOFF2/metadatadisplay-schema-description-013.xht
index a48e8ed..b42602d 100644
--- a/css/WOFF2/metadatadisplay-schema-description-013.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-013.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-013-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-013.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-014-ref.xht b/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
index 75a47a5..8576a0f 100644
--- a/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-014.xht b/css/WOFF2/metadatadisplay-schema-description-014.xht
index 6f37350..3ded888 100644
--- a/css/WOFF2/metadatadisplay-schema-description-014.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-014.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-014-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-014.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-015-ref.xht b/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
index 84693d9..fcb1df6 100644
--- a/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-015.xht b/css/WOFF2/metadatadisplay-schema-description-015.xht
index 49e1d80..4eefabf 100644
--- a/css/WOFF2/metadatadisplay-schema-description-015.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-015.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-015-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-015.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-016-ref.xht b/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
index 27e0679..0429670 100644
--- a/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-016.xht b/css/WOFF2/metadatadisplay-schema-description-016.xht
index b48b52e..d331354 100644
--- a/css/WOFF2/metadatadisplay-schema-description-016.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-016.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-016-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-016.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-017-ref.xht b/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
index 507cfaa..b7d50d2 100644
--- a/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-017.xht b/css/WOFF2/metadatadisplay-schema-description-017.xht
index 31124d4..68c9c4a 100644
--- a/css/WOFF2/metadatadisplay-schema-description-017.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-017.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-017-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-017.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-018-ref.xht b/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
index 0dd1748..0e2b351 100644
--- a/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-018.xht b/css/WOFF2/metadatadisplay-schema-description-018.xht
index 25589aa..6ce4a91 100644
--- a/css/WOFF2/metadatadisplay-schema-description-018.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-018.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-018-ref.xht" />
 		<meta name="assert" content="The description element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-018.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-019-ref.xht b/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
index 9a29670..f462da6 100644
--- a/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-019.xht b/css/WOFF2/metadatadisplay-schema-description-019.xht
index 320e73d..28cd0ad 100644
--- a/css/WOFF2/metadatadisplay-schema-description-019.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-019.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-019-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-019.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-020-ref.xht b/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
index bd0e0db..3e27445 100644
--- a/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-020.xht b/css/WOFF2/metadatadisplay-schema-description-020.xht
index dbd4348..1ef2a91 100644
--- a/css/WOFF2/metadatadisplay-schema-description-020.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-020.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-020-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-020.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-021-ref.xht b/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
index c126d26..943a9ee 100644
--- a/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-021.xht b/css/WOFF2/metadatadisplay-schema-description-021.xht
index ace6cbc..f68d2a6 100644
--- a/css/WOFF2/metadatadisplay-schema-description-021.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-021.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-021-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-021.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-022-ref.xht b/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
index cd044dc..51632bc 100644
--- a/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-022.xht b/css/WOFF2/metadatadisplay-schema-description-022.xht
index 05cb5b2..2be8aa9 100644
--- a/css/WOFF2/metadatadisplay-schema-description-022.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-022.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-022-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-022.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-023-ref.xht b/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
index df45350..b8b0f75 100644
--- a/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-023.xht b/css/WOFF2/metadatadisplay-schema-description-023.xht
index 1d0772b..a2bc7fc 100644
--- a/css/WOFF2/metadatadisplay-schema-description-023.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-023.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-023-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-023.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-024-ref.xht b/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
index 079540c..3e0b9ad 100644
--- a/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-024.xht b/css/WOFF2/metadatadisplay-schema-description-024.xht
index 6278d98..e458874 100644
--- a/css/WOFF2/metadatadisplay-schema-description-024.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-024.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-024-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-024.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-025-ref.xht b/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
index 746fa41..4980694 100644
--- a/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-025.xht b/css/WOFF2/metadatadisplay-schema-description-025.xht
index ccc0e6d..1f43b37 100644
--- a/css/WOFF2/metadatadisplay-schema-description-025.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-025.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-025-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-025.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-026-ref.xht b/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
index 7a61534..bb4f09c 100644
--- a/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-026.xht b/css/WOFF2/metadatadisplay-schema-description-026.xht
index c731642..5c3bda6 100644
--- a/css/WOFF2/metadatadisplay-schema-description-026.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-026.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-026-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-026.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-027-ref.xht b/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
index 55b8a1c..6e570f1 100644
--- a/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-027.xht b/css/WOFF2/metadatadisplay-schema-description-027.xht
index 51ab9db..1f5c5c8 100644
--- a/css/WOFF2/metadatadisplay-schema-description-027.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-027.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-027-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-027.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-028-ref.xht b/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
index 1d804d0..db82781 100644
--- a/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-028.xht b/css/WOFF2/metadatadisplay-schema-description-028.xht
index 8c96a87..51c759d 100644
--- a/css/WOFF2/metadatadisplay-schema-description-028.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-028.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-028-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-028.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-029-ref.xht b/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
index 316a08f..9f75169 100644
--- a/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-029.xht b/css/WOFF2/metadatadisplay-schema-description-029.xht
index 6823526..867434e 100644
--- a/css/WOFF2/metadatadisplay-schema-description-029.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-029.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-029-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-029.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-030-ref.xht b/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
index ff5e804..40ab7a6 100644
--- a/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-030.xht b/css/WOFF2/metadatadisplay-schema-description-030.xht
index e10b5f7..a5863f1 100644
--- a/css/WOFF2/metadatadisplay-schema-description-030.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-030.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-030-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-030.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-031-ref.xht b/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
index 940e05e..8fc25ef 100644
--- a/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-031.xht b/css/WOFF2/metadatadisplay-schema-description-031.xht
index ab32aaf..cf25775 100644
--- a/css/WOFF2/metadatadisplay-schema-description-031.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-031.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-031-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-031.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-032-ref.xht b/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
index 2e72d9c..09245fa 100644
--- a/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-description-032.xht b/css/WOFF2/metadatadisplay-schema-description-032.xht
index ecdb7ae..0034efa 100644
--- a/css/WOFF2/metadatadisplay-schema-description-032.xht
+++ b/css/WOFF2/metadatadisplay-schema-description-032.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-description-032-ref.xht" />
 		<meta name="assert" content="The description element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-description-032.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
index 1675bf4..aac0f14 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-001.xht b/css/WOFF2/metadatadisplay-schema-extension-001.xht
index a78ea43..c7d6c5a 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-001-ref.xht" />
 		<meta name="assert" content="The extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
index dbe6343..32d8be5 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Two extension elements match the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-002.xht b/css/WOFF2/metadatadisplay-schema-extension-002.xht
index 9378414..b21ebac 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-002-ref.xht" />
 		<meta name="assert" content="Two extension elements match the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
index ef328b9..7776cc5 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element does not have an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-003.xht b/css/WOFF2/metadatadisplay-schema-extension-003.xht
index dbe0fc4..2b5c791 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-003-ref.xht" />
 		<meta name="assert" content="The extension element does not have an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
index a92c055..da516b2 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element does not have a name child element but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-004.xht b/css/WOFF2/metadatadisplay-schema-extension-004.xht
index f0e85ad..cc04dd6 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-004-ref.xht" />
 		<meta name="assert" content="The extension element does not have a name child element but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
index 2aac14e..ea8cbc4 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains one name element without a lang attribute and another with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-005.xht b/css/WOFF2/metadatadisplay-schema-extension-005.xht
index b885b16..b0993fd 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-005-ref.xht" />
 		<meta name="assert" content="The extension element contains one name element without a lang attribute and another with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
index 119742b..9333f69 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains two name elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-006.xht b/css/WOFF2/metadatadisplay-schema-extension-006.xht
index e5bbdfd..f9822ba 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-006-ref.xht" />
 		<meta name="assert" content="The extension element contains two name elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
index b64d1ca..b5b4002 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains two item child elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-007.xht b/css/WOFF2/metadatadisplay-schema-extension-007.xht
index 4e2bde8..c9a0eb3 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-007-ref.xht" />
 		<meta name="assert" content="The extension element contains two item child elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
index 395c1f6..321520f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element does not contain an item child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-008.xht b/css/WOFF2/metadatadisplay-schema-extension-008.xht
index 2e27b47..55c995c 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-008-ref.xht" />
 		<meta name="assert" content="The extension element does not contain an item child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
index 3df0479..589fcfd 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-009.xht b/css/WOFF2/metadatadisplay-schema-extension-009.xht
index 73726a3..05fdf9f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-009-ref.xht" />
 		<meta name="assert" content="The extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
index 0366ada..77769ac 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-010.xht b/css/WOFF2/metadatadisplay-schema-extension-010.xht
index 205cce1..703d43e 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-010-ref.xht" />
 		<meta name="assert" content="The extension element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
index b585767..7ec0790 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The extension element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-011.xht b/css/WOFF2/metadatadisplay-schema-extension-011.xht
index 027b9d0..3d9b171 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-011-ref.xht" />
 		<meta name="assert" content="The extension element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
index 0a34cd1..dbd8561 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-012.xht b/css/WOFF2/metadatadisplay-schema-extension-012.xht
index 1101dc8..098cc3c 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-012-ref.xht" />
 		<meta name="assert" content="The name element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
index 3352f2d..45f258a 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-013.xht b/css/WOFF2/metadatadisplay-schema-extension-013.xht
index 6e2a303..48ce361 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-013.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-013.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-013-ref.xht" />
 		<meta name="assert" content="The name element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-013.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
index ad8c353..80e25bc 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-014.xht b/css/WOFF2/metadatadisplay-schema-extension-014.xht
index 6121e08..a21cf6d 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-014.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-014.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-014-ref.xht" />
 		<meta name="assert" content="The name element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-014.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
index 06d7f56..c2984b3 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-015.xht b/css/WOFF2/metadatadisplay-schema-extension-015.xht
index 160c033..f98847b 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-015.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-015.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-015-ref.xht" />
 		<meta name="assert" content="The name element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-015.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
index a40c445..6296167 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-016.xht b/css/WOFF2/metadatadisplay-schema-extension-016.xht
index 431daaf..a2dda8d 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-016.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-016.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-016-ref.xht" />
 		<meta name="assert" content="The name element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-016.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
index ebc193c..0612d8d 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-017.xht b/css/WOFF2/metadatadisplay-schema-extension-017.xht
index 92ac1ea..22fd880 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-017.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-017.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-017-ref.xht" />
 		<meta name="assert" content="The name element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-017.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
index 2647cdb..5840fa3 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-018.xht b/css/WOFF2/metadatadisplay-schema-extension-018.xht
index d8fe5ca..02953c9 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-018.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-018.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-018-ref.xht" />
 		<meta name="assert" content="The name element in the extension element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-018.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
index f1a4eae..be998da 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-019.xht b/css/WOFF2/metadatadisplay-schema-extension-019.xht
index 68f8261..e810553 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-019.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-019.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-019-ref.xht" />
 		<meta name="assert" content="The name element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-019.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
index e755e6f..ee1a48d 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-020.xht b/css/WOFF2/metadatadisplay-schema-extension-020.xht
index 4cc8060..61b80f2 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-020.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-020.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-020-ref.xht" />
 		<meta name="assert" content="The name element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-020.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
index b8e5584..142c1ae 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-021.xht b/css/WOFF2/metadatadisplay-schema-extension-021.xht
index 138813c..8e4915f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-021.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-021.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-021-ref.xht" />
 		<meta name="assert" content="The item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-021.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
index bb73116..c4d8acf 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains a variety of languages." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-022.xht b/css/WOFF2/metadatadisplay-schema-extension-022.xht
index e4a407d..32609c4 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-022.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-022.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-022-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains a variety of languages." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-022.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
index 72e889f..3204a1f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element does not contain an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-023.xht b/css/WOFF2/metadatadisplay-schema-extension-023.xht
index 625b58a..6e15988 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-023.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-023.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-023-ref.xht" />
 		<meta name="assert" content="The item element in the extension element does not contain an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-023.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
index eda878d..0ccc239 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains one name child element with no lang attribute and one with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-024.xht b/css/WOFF2/metadatadisplay-schema-extension-024.xht
index c738456..2459021 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-024.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-024.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-024-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains one name child element with no lang attribute and one with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-024.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
index d6cf75b..62f0dc5 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains two name child elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-025.xht b/css/WOFF2/metadatadisplay-schema-extension-025.xht
index 8a2c072..85d34d6 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-025.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-025.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-025-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains two name child elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-025.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
index 65ad94e..5c6eda4 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains one value child element with no lang attribute and one with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-026.xht b/css/WOFF2/metadatadisplay-schema-extension-026.xht
index 61e1afe..dc6dcb8 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-026.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-026.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-026-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains one value child element with no lang attribute and one with a lang attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-026.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
index 964c076..6f9f0d6 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains two value child elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-027.xht b/css/WOFF2/metadatadisplay-schema-extension-027.xht
index 4de5199..752fa43 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-027.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-027.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-027-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains two value child elements with lang attributes." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-027.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
index 32cb285..586e565 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element does not contain a name child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-028.xht b/css/WOFF2/metadatadisplay-schema-extension-028.xht
index d55b2f6..a4a0a2f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-028.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-028.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-028-ref.xht" />
 		<meta name="assert" content="The item element in the extension element does not contain a name child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-028.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
index d9270b5..e616707 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element does not contain a value child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-029.xht b/css/WOFF2/metadatadisplay-schema-extension-029.xht
index 6633239..76af99a 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-029.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-029.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-029-ref.xht" />
 		<meta name="assert" content="The item element in the extension element does not contain a value child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-029.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
index 17fdc15..4aa9ca7 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-030.xht b/css/WOFF2/metadatadisplay-schema-extension-030.xht
index efddb5a..12d27a8 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-030.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-030.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-030-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-030.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
index 48751f1..b8148f7 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-031.xht b/css/WOFF2/metadatadisplay-schema-extension-031.xht
index 4659ce2..b535747 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-031.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-031.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-031-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-031.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
index 66c494b..463aa4f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The item element in the extension element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-032.xht b/css/WOFF2/metadatadisplay-schema-extension-032.xht
index 27dc9be..680531c 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-032.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-032.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-032-ref.xht" />
 		<meta name="assert" content="The item element in the extension element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-032.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
index 83fdb40..efacd3e 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-033.xht b/css/WOFF2/metadatadisplay-schema-extension-033.xht
index 5160934..5d9a9ea 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-033.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-033.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-033-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-033.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
index ac64430..a4ca606 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-034.xht b/css/WOFF2/metadatadisplay-schema-extension-034.xht
index 4cdd0a1..3dde169 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-034.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-034.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-034-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-034.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
index e1152ba..3a6a387 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-035.xht b/css/WOFF2/metadatadisplay-schema-extension-035.xht
index 5a07bb9..93a946f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-035.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-035.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-035-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-035.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
index c363d5f..bb6562f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-036.xht b/css/WOFF2/metadatadisplay-schema-extension-036.xht
index 6fb321e..4fa950b 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-036.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-036.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-036-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-036.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
index fb84033..218eebb 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-037.xht b/css/WOFF2/metadatadisplay-schema-extension-037.xht
index 8505995..65a88c3 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-037.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-037.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-037-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-037.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
index 1a67866..313d0b4 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-038.xht b/css/WOFF2/metadatadisplay-schema-extension-038.xht
index 38871a0..cfc846f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-038.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-038.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-038-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-038.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
index 39b32b1..eb36ba9 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-039.xht b/css/WOFF2/metadatadisplay-schema-extension-039.xht
index 07dd77d..91ea560 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-039.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-039.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-039-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-039.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
index 508eea6..b3fa861 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-040.xht b/css/WOFF2/metadatadisplay-schema-extension-040.xht
index 74c36f5..c721b8a 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-040.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-040.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-040-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-040.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
index 5b5c30a..af1ee74 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-041.xht b/css/WOFF2/metadatadisplay-schema-extension-041.xht
index b89566a..233ab66 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-041.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-041.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-041-ref.xht" />
 		<meta name="assert" content="The name element in the item element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-041.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
index 2728753..f652d72 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-042.xht b/css/WOFF2/metadatadisplay-schema-extension-042.xht
index 889492a..3207c42 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-042.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-042.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-042-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-042.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
index 5906a6c..09dea93 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-043.xht b/css/WOFF2/metadatadisplay-schema-extension-043.xht
index 1f59578..879f616 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-043.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-043.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-043-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a xml:lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-043.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
index 26a38ac..3cdc159 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-044.xht b/css/WOFF2/metadatadisplay-schema-extension-044.xht
index 7a955a1..75ebcb6 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-044.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-044.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-044-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a lang attribute and it matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-044.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
index 31dd65c..685a201 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-045.xht b/css/WOFF2/metadatadisplay-schema-extension-045.xht
index 69515c5..cf76179 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-045.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-045.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-045-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-045.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
index b466b07..db00bee 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-046.xht b/css/WOFF2/metadatadisplay-schema-extension-046.xht
index bbd54a2..2ae083f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-046.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-046.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-046-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-046.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
index 650ab23..7c39a2f 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-047.xht b/css/WOFF2/metadatadisplay-schema-extension-047.xht
index 46ead1c..bab9ea2 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-047.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-047.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-047-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-047.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
index 3113698..1930716 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element has &quot;class1 class2 class3&quot; as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-048.xht b/css/WOFF2/metadatadisplay-schema-extension-048.xht
index 27b19a5..4529207 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-048.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-048.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-048-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element has &quot;class1 class2 class3&quot; as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-048.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
index 1547c5a..c8ef754 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-049.xht b/css/WOFF2/metadatadisplay-schema-extension-049.xht
index 9c57bcc..9727ee5 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-049.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-049.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-049-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-049.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht b/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
index 63b11a7..1aabbde 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-extension-050.xht b/css/WOFF2/metadatadisplay-schema-extension-050.xht
index 8c98c96..df20c0d 100644
--- a/css/WOFF2/metadatadisplay-schema-extension-050.xht
+++ b/css/WOFF2/metadatadisplay-schema-extension-050.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-extension-050-ref.xht" />
 		<meta name="assert" content="The value element in the item element in the extension element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-extension-050.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-001-ref.xht b/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
index fb1fd53..784dac4 100644
--- a/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-001.xht b/css/WOFF2/metadatadisplay-schema-license-001.xht
index 9d8ae3e..9c20244 100644
--- a/css/WOFF2/metadatadisplay-schema-license-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-001-ref.xht" />
 		<meta name="assert" content="The license element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-002-ref.xht b/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
index 6e98259..f06ff738 100644
--- a/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element does not have a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-002.xht b/css/WOFF2/metadatadisplay-schema-license-002.xht
index a2205b9..66c3f0c 100644
--- a/css/WOFF2/metadatadisplay-schema-license-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-002-ref.xht" />
 		<meta name="assert" content="The license element does not have a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-003-ref.xht b/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
index 85280bf..85d7824 100644
--- a/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element does not have an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-003.xht b/css/WOFF2/metadatadisplay-schema-license-003.xht
index 3e15972..e08e870 100644
--- a/css/WOFF2/metadatadisplay-schema-license-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-003-ref.xht" />
 		<meta name="assert" content="The license element does not have an id attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-004-ref.xht b/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
index 03ebc40..61621ef 100644
--- a/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-004.xht b/css/WOFF2/metadatadisplay-schema-license-004.xht
index cc1d244..7bd9dcd 100644
--- a/css/WOFF2/metadatadisplay-schema-license-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-004-ref.xht" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-005-ref.xht b/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
index 9a2652f..296e174 100644
--- a/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-005.xht b/css/WOFF2/metadatadisplay-schema-license-005.xht
index 331b9f9..7d646f3 100644
--- a/css/WOFF2/metadatadisplay-schema-license-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-005-ref.xht" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-006-ref.xht b/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
index b55ca04..0fd406e 100644
--- a/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-006.xht b/css/WOFF2/metadatadisplay-schema-license-006.xht
index 14b73d1..ea4f095 100644
--- a/css/WOFF2/metadatadisplay-schema-license-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-006-ref.xht" />
 		<meta name="assert" content="The license element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-007-ref.xht b/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
index ac4dbe4..26e21d5 100644
--- a/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-007.xht b/css/WOFF2/metadatadisplay-schema-license-007.xht
index 1ee186e..92571e1 100644
--- a/css/WOFF2/metadatadisplay-schema-license-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-007-ref.xht" />
 		<meta name="assert" content="The license element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-008-ref.xht b/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
index 95eeb5d..7f5fd9c 100644
--- a/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-008.xht b/css/WOFF2/metadatadisplay-schema-license-008.xht
index b38a2fd..96b922c 100644
--- a/css/WOFF2/metadatadisplay-schema-license-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-008-ref.xht" />
 		<meta name="assert" content="The license element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-009-ref.xht b/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
index c228499..9ec7199 100644
--- a/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-009.xht b/css/WOFF2/metadatadisplay-schema-license-009.xht
index c28419c..39caeca 100644
--- a/css/WOFF2/metadatadisplay-schema-license-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-009-ref.xht" />
 		<meta name="assert" content="The license element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-010-ref.xht b/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
index 300539e..3840f67 100644
--- a/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-010.xht b/css/WOFF2/metadatadisplay-schema-license-010.xht
index fbeff03..0e0597d 100644
--- a/css/WOFF2/metadatadisplay-schema-license-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-010-ref.xht" />
 		<meta name="assert" content="The license element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-011-ref.xht b/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
index 32dc8ae..49a8603 100644
--- a/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-011.xht b/css/WOFF2/metadatadisplay-schema-license-011.xht
index c020114..9f3ce0f 100644
--- a/css/WOFF2/metadatadisplay-schema-license-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-011-ref.xht" />
 		<meta name="assert" content="The license element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-012-ref.xht b/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
index 05e183a..8999156 100644
--- a/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-012.xht b/css/WOFF2/metadatadisplay-schema-license-012.xht
index 878588f..3803579 100644
--- a/css/WOFF2/metadatadisplay-schema-license-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-012-ref.xht" />
 		<meta name="assert" content="The license element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-013-ref.xht b/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
index b321aca..e575f71 100644
--- a/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-013.xht b/css/WOFF2/metadatadisplay-schema-license-013.xht
index dd14c53..103f916 100644
--- a/css/WOFF2/metadatadisplay-schema-license-013.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-013.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-013-ref.xht" />
 		<meta name="assert" content="The license element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-013.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-014-ref.xht b/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
index e44eb07..ee0ae64 100644
--- a/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-014.xht b/css/WOFF2/metadatadisplay-schema-license-014.xht
index 55ed2bb..a7b1f35 100644
--- a/css/WOFF2/metadatadisplay-schema-license-014.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-014.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-014-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-014.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-015-ref.xht b/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
index 6127359..2e8befd 100644
--- a/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-015.xht b/css/WOFF2/metadatadisplay-schema-license-015.xht
index a3257c4..a6f78f3 100644
--- a/css/WOFF2/metadatadisplay-schema-license-015.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-015.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-015-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-015.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-016-ref.xht b/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
index d29b862..fab8aad 100644
--- a/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-016.xht b/css/WOFF2/metadatadisplay-schema-license-016.xht
index f3e0f31..987b7e5 100644
--- a/css/WOFF2/metadatadisplay-schema-license-016.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-016.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-016-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-016.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-017-ref.xht b/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
index 7420317..228dc96 100644
--- a/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-017.xht b/css/WOFF2/metadatadisplay-schema-license-017.xht
index 35c974d..d71884a 100644
--- a/css/WOFF2/metadatadisplay-schema-license-017.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-017.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-017-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-017.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-018-ref.xht b/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
index f0b5063..10ec6ef 100644
--- a/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-018.xht b/css/WOFF2/metadatadisplay-schema-license-018.xht
index d6ed924..7458513 100644
--- a/css/WOFF2/metadatadisplay-schema-license-018.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-018.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-018-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-018.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-019-ref.xht b/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
index 7a867f1..bf7070b 100644
--- a/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-019.xht b/css/WOFF2/metadatadisplay-schema-license-019.xht
index 7bd281c..d320e47 100644
--- a/css/WOFF2/metadatadisplay-schema-license-019.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-019.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-019-ref.xht" />
 		<meta name="assert" content="The license element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-019.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-020-ref.xht b/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
index 469fbe4..4ce9fd1 100644
--- a/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-020.xht b/css/WOFF2/metadatadisplay-schema-license-020.xht
index 7fa03b4..5d4c148 100644
--- a/css/WOFF2/metadatadisplay-schema-license-020.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-020.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-020-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-020.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-021-ref.xht b/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
index d318ea3..90f12dc 100644
--- a/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-021.xht b/css/WOFF2/metadatadisplay-schema-license-021.xht
index 605ab19..dbfb0a8 100644
--- a/css/WOFF2/metadatadisplay-schema-license-021.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-021.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-021-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-021.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-022-ref.xht b/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
index 20d3dd3..91d1d7b 100644
--- a/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-022.xht b/css/WOFF2/metadatadisplay-schema-license-022.xht
index aca0b69..85db55a 100644
--- a/css/WOFF2/metadatadisplay-schema-license-022.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-022.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-022-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-022.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-023-ref.xht b/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
index ca2d2a2..b7587d3 100644
--- a/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-023.xht b/css/WOFF2/metadatadisplay-schema-license-023.xht
index 707e75a..7a6b344 100644
--- a/css/WOFF2/metadatadisplay-schema-license-023.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-023.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-023-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-023.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-024-ref.xht b/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
index ec4ae9b..84fef55 100644
--- a/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-024.xht b/css/WOFF2/metadatadisplay-schema-license-024.xht
index 9e8985e..16fac56 100644
--- a/css/WOFF2/metadatadisplay-schema-license-024.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-024.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-024-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-024.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-025-ref.xht b/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
index 14e51ae..0000d29 100644
--- a/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-025.xht b/css/WOFF2/metadatadisplay-schema-license-025.xht
index 38c725b..a770f28 100644
--- a/css/WOFF2/metadatadisplay-schema-license-025.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-025.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-025-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-025.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-026-ref.xht b/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
index d031643..fd2a65f 100644
--- a/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-026.xht b/css/WOFF2/metadatadisplay-schema-license-026.xht
index 7c69f77..99c3c07 100644
--- a/css/WOFF2/metadatadisplay-schema-license-026.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-026.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-026-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-026.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-027-ref.xht b/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
index f7e68c7..7820452 100644
--- a/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-027.xht b/css/WOFF2/metadatadisplay-schema-license-027.xht
index 7c4b0b8..35ec6de 100644
--- a/css/WOFF2/metadatadisplay-schema-license-027.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-027.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-027-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-027.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-028-ref.xht b/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
index 7a30c74..8eb30ef 100644
--- a/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-028.xht b/css/WOFF2/metadatadisplay-schema-license-028.xht
index 0cb0482..ec10c6d 100644
--- a/css/WOFF2/metadatadisplay-schema-license-028.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-028.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-028-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-028.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-029-ref.xht b/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
index b801875..7b19d1a 100644
--- a/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-029.xht b/css/WOFF2/metadatadisplay-schema-license-029.xht
index 55204e5..6c1c739 100644
--- a/css/WOFF2/metadatadisplay-schema-license-029.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-029.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-029-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-029.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-030-ref.xht b/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
index f327db1..77cb9e0 100644
--- a/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-030.xht b/css/WOFF2/metadatadisplay-schema-license-030.xht
index 4242079..a07f92b 100644
--- a/css/WOFF2/metadatadisplay-schema-license-030.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-030.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-030-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-030.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-031-ref.xht b/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
index a8fb70d..06f5d0e 100644
--- a/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-031.xht b/css/WOFF2/metadatadisplay-schema-license-031.xht
index 87b0636..bc13b59 100644
--- a/css/WOFF2/metadatadisplay-schema-license-031.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-031.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-031-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-031.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-032-ref.xht b/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
index 24ebb96..b2b0690 100644
--- a/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-032.xht b/css/WOFF2/metadatadisplay-schema-license-032.xht
index f05453f..ce2e125 100644
--- a/css/WOFF2/metadatadisplay-schema-license-032.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-032.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-032-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-032.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-033-ref.xht b/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
index f2c1877..4410d5a 100644
--- a/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-license-033.xht b/css/WOFF2/metadatadisplay-schema-license-033.xht
index 832608e..c9e8eae 100644
--- a/css/WOFF2/metadatadisplay-schema-license-033.xht
+++ b/css/WOFF2/metadatadisplay-schema-license-033.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-license-033-ref.xht" />
 		<meta name="assert" content="The license element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-license-033.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
index aa5023c..999f221 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-001.xht b/css/WOFF2/metadatadisplay-schema-licensee-001.xht
index 099a09d..8eb9e69 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-001-ref.xht" />
 		<meta name="assert" content="The licensee element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
index bd22bf8..fd6fee3 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-002.xht b/css/WOFF2/metadatadisplay-schema-licensee-002.xht
index d2b18fe..157cfb4 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-002-ref.xht" />
 		<meta name="assert" content="The licensee element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
index 1869532..faca6c9 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element does not contain the required name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-003.xht b/css/WOFF2/metadatadisplay-schema-licensee-003.xht
index 96f6dbc..8b8628c 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-003-ref.xht" />
 		<meta name="assert" content="The licensee element does not contain the required name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
index 7366944..5809554 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-004.xht b/css/WOFF2/metadatadisplay-schema-licensee-004.xht
index 1089ecd..5dc8b95 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-004-ref.xht" />
 		<meta name="assert" content="The licensee element has ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
index f1be783..688199f 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-005.xht b/css/WOFF2/metadatadisplay-schema-licensee-005.xht
index 0e59e1e..aaa0112 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-005-ref.xht" />
 		<meta name="assert" content="The licensee element has rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
index 7fd79f3..bb836ec 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-006.xht b/css/WOFF2/metadatadisplay-schema-licensee-006.xht
index 4e2a08a..f6b0a03 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-006-ref.xht" />
 		<meta name="assert" content="The licensee element has INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
index fd592ee..0a45a65 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-007.xht b/css/WOFF2/metadatadisplay-schema-licensee-007.xht
index d3068f7..9d40be1 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-007-ref.xht" />
 		<meta name="assert" content="The licensee element has &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
index 0d49ddf..f053afa 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element occures more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-008.xht b/css/WOFF2/metadatadisplay-schema-licensee-008.xht
index a7b0866..a348dd9 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-008-ref.xht" />
 		<meta name="assert" content="The licensee element occures more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
index 8adbd46..4e374df 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-009.xht b/css/WOFF2/metadatadisplay-schema-licensee-009.xht
index 159f923..8027041 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-009-ref.xht" />
 		<meta name="assert" content="The licensee element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht b/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
index 7c52fce..4d6d71b 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The licensee element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-licensee-010.xht b/css/WOFF2/metadatadisplay-schema-licensee-010.xht
index aefd4ad..08f6466 100644
--- a/css/WOFF2/metadatadisplay-schema-licensee-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-licensee-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-licensee-010-ref.xht" />
 		<meta name="assert" content="The licensee element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-licensee-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
index f9a79b3..b3f829c 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-001.xht b/css/WOFF2/metadatadisplay-schema-metadata-001.xht
index 88af4ed..67e87b6 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-001-ref.xht" />
 		<meta name="assert" content="The metadata element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
index b65b5d9..39f254b 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The top element is &quot;INVALID&quot; instead of &quot;metadata&quot;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-002.xht b/css/WOFF2/metadatadisplay-schema-metadata-002.xht
index b2742dc..cf9c689 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-002-ref.xht" />
 		<meta name="assert" content="The top element is &quot;INVALID&quot; instead of &quot;metadata&quot;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
index df30818..522347d 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata element does not contain the required version attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-003.xht b/css/WOFF2/metadatadisplay-schema-metadata-003.xht
index 2556914..f0b0b75 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-003-ref.xht" />
 		<meta name="assert" content="The metadata element does not contain the required version attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
index 18526a2..a1fb7fc 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata element version attribute is set to 'ABC'." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-004.xht b/css/WOFF2/metadatadisplay-schema-metadata-004.xht
index 826c1a7..eefb6fc 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-004-ref.xht" />
 		<meta name="assert" content="The metadata element version attribute is set to 'ABC'." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
index 3d69e2e..b00f910 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-005.xht b/css/WOFF2/metadatadisplay-schema-metadata-005.xht
index a43272f..645b8be 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-005-ref.xht" />
 		<meta name="assert" content="The metadata element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht b/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
index eea3002..d2e41a1 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-metadata-006.xht b/css/WOFF2/metadatadisplay-schema-metadata-006.xht
index 0d5c95a..daec758 100644
--- a/css/WOFF2/metadatadisplay-schema-metadata-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-metadata-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-metadata-006-ref.xht" />
 		<meta name="assert" content="The metadata element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-metadata-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
index 8052d7b..adc1161 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-001.xht b/css/WOFF2/metadatadisplay-schema-trademark-001.xht
index 817e049..888bdd5 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-001-ref.xht" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that does not have a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
index 563d518..23ffb1b 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-002.xht b/css/WOFF2/metadatadisplay-schema-trademark-002.xht
index d92c24d..72be2c5 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-002-ref.xht" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
index cfdd1e5..5918c6b 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-003.xht b/css/WOFF2/metadatadisplay-schema-trademark-003.xht
index 84c6263..9d85d16 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-003-ref.xht" />
 		<meta name="assert" content="The trademark element matches the schema. It contains one text element that has a language tag using the lang tag instead of xml:lang." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
index c5ba63a..c05fb93 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-004.xht b/css/WOFF2/metadatadisplay-schema-trademark-004.xht
index 4b8565e..48f5ceb 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-004-ref.xht" />
 		<meta name="assert" content="The trademark element matches the schema. One text element does not have a language tag. One text element has a language tag." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
index 372d40d..1cec3f0 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-005.xht b/css/WOFF2/metadatadisplay-schema-trademark-005.xht
index 04a1cdf..d71a270 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-005-ref.xht" />
 		<meta name="assert" content="The trademark element matches the schema. Two text elements have a language tags." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
index 5da81ba..1c3f864 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-006.xht b/css/WOFF2/metadatadisplay-schema-trademark-006.xht
index 93122ad..68976d0 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-006-ref.xht" />
 		<meta name="assert" content="The trademark element occurs more than once." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
index 9518389..cb71c08 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-007.xht b/css/WOFF2/metadatadisplay-schema-trademark-007.xht
index 2256d04..e43b077 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-007-ref.xht" />
 		<meta name="assert" content="The trademark element does not contain a text child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
index 758be5f..caa467c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-008.xht b/css/WOFF2/metadatadisplay-schema-trademark-008.xht
index 9b8d855..e1e8d8c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-008-ref.xht" />
 		<meta name="assert" content="The trademark element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
index 5b6c6a6..9d58a31 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-009.xht b/css/WOFF2/metadatadisplay-schema-trademark-009.xht
index 673ddb9..a90b8b5 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-009-ref.xht" />
 		<meta name="assert" content="The trademark element contains an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
index 4fbe093..724667b 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-010.xht b/css/WOFF2/metadatadisplay-schema-trademark-010.xht
index a44b66b..9b9bc80 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-010-ref.xht" />
 		<meta name="assert" content="The trademark element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
index 2ff5fcc..df2ba47 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-011.xht b/css/WOFF2/metadatadisplay-schema-trademark-011.xht
index 3e1b487..2590f38 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-011-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
index 9a10157..2e25d4c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-012.xht b/css/WOFF2/metadatadisplay-schema-trademark-012.xht
index 765a9ca..cc3cc88 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-012-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
index 425c837..3fb5253 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-013.xht b/css/WOFF2/metadatadisplay-schema-trademark-013.xht
index cbf110f..fc3b202 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-013.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-013.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-013-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-013.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
index 2e62b86..2e52466 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-014.xht b/css/WOFF2/metadatadisplay-schema-trademark-014.xht
index 7c6efd7..659d177 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-014.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-014.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-014-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-014.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
index 4533937..2c79b9d 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-015.xht b/css/WOFF2/metadatadisplay-schema-trademark-015.xht
index dc87314..72cd488 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-015.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-015.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-015-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-015.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
index 511807b..bff2ac7 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-016.xht b/css/WOFF2/metadatadisplay-schema-trademark-016.xht
index 54a8a59..deec26c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-016.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-016.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-016-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element with an unknown child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-016.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
index 5f1da82..585452f 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-017.xht b/css/WOFF2/metadatadisplay-schema-trademark-017.xht
index 356ccba..7189eea 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-017.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-017.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-017-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-017.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
index dabccf7..000a22d 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-018.xht b/css/WOFF2/metadatadisplay-schema-trademark-018.xht
index 51a7edb..eaa600a 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-018.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-018.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-018-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains two div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-018.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
index 481506a..1c8174d 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-019.xht b/css/WOFF2/metadatadisplay-schema-trademark-019.xht
index e6c6060..d977829 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-019.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-019.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-019-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains nested div elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-019.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
index 159badc..418c72c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-020.xht b/css/WOFF2/metadatadisplay-schema-trademark-020.xht
index 20f046b..20e2aaa 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-020.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-020.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-020-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-020.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
index 29ecb4c..7ffcffb 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-021.xht b/css/WOFF2/metadatadisplay-schema-trademark-021.xht
index 9aed3f4..c5a7b25 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-021.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-021.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-021-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-021.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
index cca6959..fcba6d4 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-022.xht b/css/WOFF2/metadatadisplay-schema-trademark-022.xht
index 34926e5..45f4521 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-022.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-022.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-022-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-022.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
index b75376e..5674b89 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-023.xht b/css/WOFF2/metadatadisplay-schema-trademark-023.xht
index cfa9a63..00c2be0 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-023.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-023.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-023-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a div element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-023.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
index 605527f..b979dcc 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-024.xht b/css/WOFF2/metadatadisplay-schema-trademark-024.xht
index 71ffe13..43f4943 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-024.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-024.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-024-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-024.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
index a5ccbe9..4cfa297 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-025.xht b/css/WOFF2/metadatadisplay-schema-trademark-025.xht
index 8a95493..c8323dc 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-025.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-025.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-025-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains two span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-025.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
index 49c1101..4426857 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-026.xht b/css/WOFF2/metadatadisplay-schema-trademark-026.xht
index d46eb96..e499d3c 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-026.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-026.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-026-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains nested span elements." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-026.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
index 0da559e..f32252f 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-027.xht b/css/WOFF2/metadatadisplay-schema-trademark-027.xht
index 0d3f578..c1b3f0b 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-027.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-027.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-027-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-027.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
index 5485606..9f27e3e 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-028.xht b/css/WOFF2/metadatadisplay-schema-trademark-028.xht
index 62a64d7..b7496c9 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-028.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-028.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-028-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-028.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
index 551118a..8b67070 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-029.xht b/css/WOFF2/metadatadisplay-schema-trademark-029.xht
index f9be4a8..f6f9247 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-029.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-029.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-029-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-029.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht b/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
index b142618..c40bd6d 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-trademark-030.xht b/css/WOFF2/metadatadisplay-schema-trademark-030.xht
index 7b3ce18..f590a57 100644
--- a/css/WOFF2/metadatadisplay-schema-trademark-030.xht
+++ b/css/WOFF2/metadatadisplay-schema-trademark-030.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-trademark-030-ref.xht" />
 		<meta name="assert" content="The trademark element contains a text element that contains a span element with &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-trademark-030.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
index b8d6c87..84816a0 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
index cab6343..2918abc 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-001-ref.xht" />
 		<meta name="assert" content="The uniqueid element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
index efe98c4..26124e7 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element doesn't exist." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
index 904700e..bed7b92 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-002-ref.xht" />
 		<meta name="assert" content="The uniqueid element doesn't exist." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
index 2891c5e..a1227bf 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
index 80b87eb..34ea79b 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-003-ref.xht" />
 		<meta name="assert" content="The uniqueid element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-004-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-004-ref.xht
index e250880..8c85076 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-id-required" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element does not contain the required id attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-004.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-004.xht
index f100ea0..03d0f73 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-id-required" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-004-ref.xht" />
 		<meta name="assert" content="The uniqueid element does not contain the required id attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
index c413520..a00e513 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
index 2c689de..41c897a 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-005-ref.xht" />
 		<meta name="assert" content="The uniqueid element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
index a73db4d..36c2db9 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
index 3855942..98fd0a2 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-006-ref.xht" />
 		<meta name="assert" content="The uniqueid element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
index 7567aff..7adfa47 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The uniqueid element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht b/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
index 91ad1f8..2293b93 100644
--- a/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-uniqueid-007-ref.xht" />
 		<meta name="assert" content="The uniqueid element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-uniqueid-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
index 4856eaa..0f927b6 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-001.xht b/css/WOFF2/metadatadisplay-schema-vendor-001.xht
index e13ca3e..1651b31 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-001.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-001-ref.xht" />
 		<meta name="assert" content="The vendor element matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
index 8bb0ead..4e86ca5 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-002.xht b/css/WOFF2/metadatadisplay-schema-vendor-002.xht
index cfbc5c5..69c690b 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-002.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-002-ref.xht" />
 		<meta name="assert" content="The vendor element does not contain a url attribute but it still matches the schema." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
index 45fa050..f83fe7d 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element doesn't exist." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-003.xht b/css/WOFF2/metadatadisplay-schema-vendor-003.xht
index 3bc5ef6..3a6fba3 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-003.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-003-ref.xht" />
 		<meta name="assert" content="The vendor element doesn't exist." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
index 062e528..3737c28 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-004.xht b/css/WOFF2/metadatadisplay-schema-vendor-004.xht
index 6880d7f..4c66dc3 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-004.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-004-ref.xht" />
 		<meta name="assert" content="The vendor element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-005-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-005-ref.xht
index 4dd8d1e..7aaf5a7 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-vendor-required" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element does not contain the required name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-005.xht b/css/WOFF2/metadatadisplay-schema-vendor-005.xht
index 73e915f..2febf54 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-005.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-vendor-required" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-005-ref.xht" />
 		<meta name="assert" content="The vendor element does not contain the required name attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
index 6368430..d5a5ffb 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-006.xht b/css/WOFF2/metadatadisplay-schema-vendor-006.xht
index 37b1b33..45aa869 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-006.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-006-ref.xht" />
 		<meta name="assert" content="The vendor element contains ltr as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
index 3431a79..bd4c76e 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-007.xht b/css/WOFF2/metadatadisplay-schema-vendor-007.xht
index d541a7a..20f64c8 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-007.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-007-ref.xht" />
 		<meta name="assert" content="The vendor element contains rtl as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
index f497f2f..51b50e0 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-008.xht b/css/WOFF2/metadatadisplay-schema-vendor-008.xht
index 8dee104..7134a9d 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-008.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-008.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-008-ref.xht" />
 		<meta name="assert" content="The vendor element contains INVALID as the value for the dir attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-008.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
index bd84987..5873166 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-009.xht b/css/WOFF2/metadatadisplay-schema-vendor-009.xht
index 6dfa088..2c68317 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-009.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-009.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-009-ref.xht" />
 		<meta name="assert" content="The vendor element contains &quot;class1 class2 class3&quot; as the value for the class attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-009.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
index b2931e3..8ffef13 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-010.xht b/css/WOFF2/metadatadisplay-schema-vendor-010.xht
index 6e1a3d8..4cdd4a9 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-010.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-010.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-010-ref.xht" />
 		<meta name="assert" content="The vendor element contains an unknown attribute." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-010.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
index bbe5969..c600c4a 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-011.xht b/css/WOFF2/metadatadisplay-schema-vendor-011.xht
index e4e1819..5079292 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-011.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-011.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-011-ref.xht" />
 		<meta name="assert" content="The vendor element contains a child element." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-011.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht b/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
index d1071e8..fb93fde 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The vendor element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-schema-vendor-012.xht b/css/WOFF2/metadatadisplay-schema-vendor-012.xht
index c74a1bc..4afa9ab 100644
--- a/css/WOFF2/metadatadisplay-schema-vendor-012.xht
+++ b/css/WOFF2/metadatadisplay-schema-vendor-012.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-schema-vendor-012-ref.xht" />
 		<meta name="assert" content="The vendor element contains content." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-schema-vendor-012.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-001-ref.xht b/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
index 401e701..045d6e7 100644
--- a/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The text element in the description element contains an unescaped &lt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-001.xht b/css/WOFF2/metadatadisplay-well-formed-001.xht
index 8ec8dac..ebdae9a 100644
--- a/css/WOFF2/metadatadisplay-well-formed-001.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-001-ref.xht" />
 		<meta name="assert" content="The text element in the description element contains an unescaped &lt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-002-ref.xht b/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
index 6770c12..f2b1dd4 100644
--- a/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The text element in the description element contains an unescaped &amp;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-002.xht b/css/WOFF2/metadatadisplay-well-formed-002.xht
index e01f03b..5fd4251 100644
--- a/css/WOFF2/metadatadisplay-well-formed-002.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-002.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-002-ref.xht" />
 		<meta name="assert" content="The text element in the description element contains an unescaped &amp;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-002.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-003-ref.xht b/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
index 2a2f20d..292b121 100644
--- a/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="One element begins with &lt;description&gt; but ends with &lt;/mismatch&gt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-003.xht b/css/WOFF2/metadatadisplay-well-formed-003.xht
index cc65d20..d0d166b 100644
--- a/css/WOFF2/metadatadisplay-well-formed-003.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-003-ref.xht" />
 		<meta name="assert" content="One element begins with &lt;description&gt; but ends with &lt;/mismatch&gt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-004-ref.xht b/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
index 34356a9..1a3c190 100644
--- a/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The text element element in the description element is not closed." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-004.xht b/css/WOFF2/metadatadisplay-well-formed-004.xht
index f65559e..47ed2b5 100644
--- a/css/WOFF2/metadatadisplay-well-formed-004.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-004.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-004-ref.xht" />
 		<meta name="assert" content="The text element element in the description element is not closed." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-004.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-005-ref.xht b/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
index edfb594..86e816b 100644
--- a/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The &lt;description&gt; element is closed with &lt;DESCRIPTION&gt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-005.xht b/css/WOFF2/metadatadisplay-well-formed-005.xht
index 1caca2d..8077596 100644
--- a/css/WOFF2/metadatadisplay-well-formed-005.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-005-ref.xht" />
 		<meta name="assert" content="The &lt;description&gt; element is closed with &lt;DESCRIPTION&gt;." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-006-ref.xht b/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
index 9d06628..fe09ac1 100644
--- a/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The metadata root element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-006.xht b/css/WOFF2/metadatadisplay-well-formed-006.xht
index 7cd5edb..637fc85 100644
--- a/css/WOFF2/metadatadisplay-well-formed-006.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-006.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-006-ref.xht" />
 		<meta name="assert" content="The metadata root element occurs twice." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-006.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-007-ref.xht b/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
index de26b0c..6ee7f16 100644
--- a/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The xml encoding is set to 'VSCACS-GFV-X-CQ34QTAB2Q-IS-NOT-A-VALID-ENCODING'." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/metadatadisplay-well-formed-007.xht b/css/WOFF2/metadatadisplay-well-formed-007.xht
index 93bc9e4..c769f21 100644
--- a/css/WOFF2/metadatadisplay-well-formed-007.xht
+++ b/css/WOFF2/metadatadisplay-well-formed-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Metadata" />
 		<link rel="help" href="http://www.w3.org/TR/WOFF/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-invalid-mustignore" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="metadatadisplay-well-formed-007-ref.xht" />
 		<meta name="assert" content="The xml encoding is set to 'VSCACS-GFV-X-CQ34QTAB2Q-IS-NOT-A-VALID-ENCODING'." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/metadatadisplay-well-formed-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>If the UA does not display WOFF metadata, the test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is not valid and must not be displayed. If the UA does display it, the test fails.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/privatedata-noeffect-001-ref.xht b/css/WOFF2/privatedata-noeffect-001-ref.xht
index dc3f273..8c231c5 100644
--- a/css/WOFF2/privatedata-noeffect-001-ref.xht
+++ b/css/WOFF2/privatedata-noeffect-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Private" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The file has no private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/privatedata-noeffect-001.xht b/css/WOFF2/privatedata-noeffect-001.xht
index 1850649..b4313ee 100644
--- a/css/WOFF2/privatedata-noeffect-001.xht
+++ b/css/WOFF2/privatedata-noeffect-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Private" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="privatedata-noeffect-001-ref.xht" />
 		<meta name="assert" content="The file has no private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/privatedata-noeffect-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/privatedata-noeffect-002-ref.xht b/css/WOFF2/privatedata-noeffect-002-ref.xht
index c0eb972..3c093c8 100644
--- a/css/WOFF2/privatedata-noeffect-002-ref.xht
+++ b/css/WOFF2/privatedata-noeffect-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Private" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The file has private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/privatedata-noeffect-002.xht b/css/WOFF2/privatedata-noeffect-002.xht
index 0f15a64..ad52277 100644
--- a/css/WOFF2/privatedata-noeffect-002.xht
+++ b/css/WOFF2/privatedata-noeffect-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Tal Leming" href="http://typesupply.com" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#Private" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="privatedata-noeffect-002-ref.xht" />
 		<meta name="assert" content="The file has private data." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/privatedata-noeffect-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/support/FontsToInstall/SFNT-CFF-Fallback.otf b/css/WOFF2/support/SFNT-CFF-Fallback.otf
similarity index 100%
rename from css/WOFF2/support/FontsToInstall/SFNT-CFF-Fallback.otf
rename to css/WOFF2/support/SFNT-CFF-Fallback.otf
Binary files differ
diff --git a/css/WOFF2/support/FontsToInstall/SFNT-CFF-Reference.otf b/css/WOFF2/support/SFNT-CFF-Reference.otf
similarity index 100%
rename from css/WOFF2/support/FontsToInstall/SFNT-CFF-Reference.otf
rename to css/WOFF2/support/SFNT-CFF-Reference.otf
Binary files differ
diff --git a/css/WOFF2/support/FontsToInstall/SFNT-TTF-Fallback.ttf b/css/WOFF2/support/SFNT-TTF-Fallback.ttf
similarity index 100%
rename from css/WOFF2/support/FontsToInstall/SFNT-TTF-Fallback.ttf
rename to css/WOFF2/support/SFNT-TTF-Fallback.ttf
Binary files differ
diff --git a/css/WOFF2/support/FontsToInstall/SFNT-TTF-Reference.ttf b/css/WOFF2/support/SFNT-TTF-Reference.ttf
similarity index 100%
rename from css/WOFF2/support/FontsToInstall/SFNT-TTF-Reference.ttf
rename to css/WOFF2/support/SFNT-TTF-Reference.ttf
Binary files differ
diff --git a/css/WOFF2/support/available-001a.xht b/css/WOFF2/support/available-001a.xht
index f530849..7612b2d 100644
--- a/css/WOFF2/support/available-001a.xht
+++ b/css/WOFF2/support/available-001a.xht
@@ -7,9 +7,9 @@
 		<link rel="author" title="Chris Lilley" href="http://www.w3.org/People" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#General" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-css3font-available" />
-		<meta name="flags" content="font" />
 		<meta name="assert" content="Linked fonts are only available to the documents that reference them" />
 		<style type="text/css"><![CDATA[
+			@import url("test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("valid-001.woff2") format("woff2");
diff --git a/css/WOFF2/support/available-001b.xht b/css/WOFF2/support/available-001b.xht
index 3f3d701..e466ecc 100644
--- a/css/WOFF2/support/available-001b.xht
+++ b/css/WOFF2/support/available-001b.xht
@@ -7,9 +7,9 @@
 		<link rel="author" title="Chris Lilley" href="http://www.w3.org/People" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#General" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-css3font-available" />
-		<meta name="flags" content="font" />
 		<meta name="assert" content="Linked fonts are only available to the documents that reference them" />
 		<style type="text/css"><![CDATA[
+			@import url("test-fonts.css");
 			body {
 				font-size: 20px;
 			}
diff --git a/css/WOFF2/support/index.css b/css/WOFF2/support/index.css
index fbfb914..f18ab13 100644
--- a/css/WOFF2/support/index.css
+++ b/css/WOFF2/support/index.css
@@ -29,17 +29,6 @@
 	padding: 0px 0px 20px 0px;
 }
 
-p.installFontsNote {
-	font-weight: bold;
-	color: white;
-	background-color: red;
-	padding: 5px 10px 5px 10px;
-}
-
-p.installFontsNote a {
-	color: white;
-}
-
 .mainNote {
 	margin: 0px;
 	padding: 15px 0px 15px 0px;
diff --git a/css/WOFF2/support/test-fonts.css b/css/WOFF2/support/test-fonts.css
new file mode 100644
index 0000000..477f442
--- /dev/null
+++ b/css/WOFF2/support/test-fonts.css
@@ -0,0 +1,19 @@
+@font-face {
+    font-family: "WOFF Test CFF Fallback";
+    src: url("SFNT-CFF-Fallback.otf") format("opentype");
+}
+
+@font-face {
+    font-family: "WOFF Test CFF Reference";
+    src: url("SFNT-CFF-Reference.otf") format("opentype");
+}
+
+@font-face {
+    font-family: "WOFF Test TTF Fallback";
+    src: url("SFNT-TTF-Fallback.ttf") format("truetype");
+}
+
+@font-face {
+    font-family: "WOFF Test TTF Reference";
+    src: url("SFNT-TTF-Reference.ttf") format("truetype");
+}
diff --git a/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht b/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
index c7c5dc7..4acdc14 100644
--- a/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
+++ b/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The origLength of the loca table is 4 bytes less than the calculated size" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-bad-origlength-loca-001.xht b/css/WOFF2/tabledata-bad-origlength-loca-001.xht
index 2f31994..57283eb 100644
--- a/css/WOFF2/tabledata-bad-origlength-loca-001.xht
+++ b/css/WOFF2/tabledata-bad-origlength-loca-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-bad-origlength-loca-001-ref.xht" />
 		<meta name="assert" content="The origLength of the loca table is 4 bytes less than the calculated size" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-bad-origlength-loca-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht b/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
index 1b92923..f6eb869 100644
--- a/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
+++ b/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The origLength of the loca table is 4 bytes more than the calculated size" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-bad-origlength-loca-002.xht b/css/WOFF2/tabledata-bad-origlength-loca-002.xht
index f9733a7..7c3f559 100644
--- a/css/WOFF2/tabledata-bad-origlength-loca-002.xht
+++ b/css/WOFF2/tabledata-bad-origlength-loca-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-bad-origlength-loca-002-ref.xht" />
 		<meta name="assert" content="The origLength of the loca table is 4 bytes more than the calculated size" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-bad-origlength-loca-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-brotli-001-ref.xht b/css/WOFF2/tabledata-brotli-001-ref.xht
index 22f2df1..f7efe43 100644
--- a/css/WOFF2/tabledata-brotli-001-ref.xht
+++ b/css/WOFF2/tabledata-brotli-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailDecompress" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Font table data is compressed with zlib instead of Brotli." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-brotli-001.xht b/css/WOFF2/tabledata-brotli-001.xht
index 49c8766..fd7388b 100644
--- a/css/WOFF2/tabledata-brotli-001.xht
+++ b/css/WOFF2/tabledata-brotli-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailDecompress" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-brotli-001-ref.xht" />
 		<meta name="assert" content="Font table data is compressed with zlib instead of Brotli." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-brotli-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-001-ref.xht b/css/WOFF2/tabledata-decompressed-length-001-ref.xht
index b4d0776..5368e1d 100644
--- a/css/WOFF2/tabledata-decompressed-length-001-ref.xht
+++ b/css/WOFF2/tabledata-decompressed-length-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The original length of the first table in the directory is increased by 1, making the decompressed length of the table data less than the sum of original table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-001.xht b/css/WOFF2/tabledata-decompressed-length-001.xht
index f26f73d..ae941fc 100644
--- a/css/WOFF2/tabledata-decompressed-length-001.xht
+++ b/css/WOFF2/tabledata-decompressed-length-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-decompressed-length-001-ref.xht" />
 		<meta name="assert" content="The original length of the first table in the directory is increased by 1, making the decompressed length of the table data less than the sum of original table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-decompressed-length-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-002-ref.xht b/css/WOFF2/tabledata-decompressed-length-002-ref.xht
index 018fdf3..004d610 100644
--- a/css/WOFF2/tabledata-decompressed-length-002-ref.xht
+++ b/css/WOFF2/tabledata-decompressed-length-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The original length of the first table in the directory is decreased by 1, making the decompressed length of the table data greater than the sum of original table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-002.xht b/css/WOFF2/tabledata-decompressed-length-002.xht
index bf4b59b..acf2ccd 100644
--- a/css/WOFF2/tabledata-decompressed-length-002.xht
+++ b/css/WOFF2/tabledata-decompressed-length-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-decompressed-length-002-ref.xht" />
 		<meta name="assert" content="The original length of the first table in the directory is decreased by 1, making the decompressed length of the table data greater than the sum of original table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-decompressed-length-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-003-ref.xht b/css/WOFF2/tabledata-decompressed-length-003-ref.xht
index d7e3761..2bbbd5a 100644
--- a/css/WOFF2/tabledata-decompressed-length-003-ref.xht
+++ b/css/WOFF2/tabledata-decompressed-length-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The transformed length of the glyf table in the directory is increased by 1, making the decompressed length of the table data less than the sum of transformed table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-003.xht b/css/WOFF2/tabledata-decompressed-length-003.xht
index 1e9ca1c..81a6601 100644
--- a/css/WOFF2/tabledata-decompressed-length-003.xht
+++ b/css/WOFF2/tabledata-decompressed-length-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-decompressed-length-003-ref.xht" />
 		<meta name="assert" content="The transformed length of the glyf table in the directory is increased by 1, making the decompressed length of the table data less than the sum of transformed table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-decompressed-length-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-004-ref.xht b/css/WOFF2/tabledata-decompressed-length-004-ref.xht
index 26695f4..5a87ea2 100644
--- a/css/WOFF2/tabledata-decompressed-length-004-ref.xht
+++ b/css/WOFF2/tabledata-decompressed-length-004-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The transformed length of the glyf table in the directory is decreased by 1, making the decompressed length of the table data greater than the sum of transformed table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-decompressed-length-004.xht b/css/WOFF2/tabledata-decompressed-length-004.xht
index 6f258d1..ec129f3 100644
--- a/css/WOFF2/tabledata-decompressed-length-004.xht
+++ b/css/WOFF2/tabledata-decompressed-length-004.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeInvalidated-FailSize" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-decompressed-length-004-ref.xht" />
 		<meta name="assert" content="The transformed length of the glyf table in the directory is decreased by 1, making the decompressed length of the table data greater than the sum of transformed table lengths." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-decompressed-length-004.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-extraneous-data-001-ref.xht b/css/WOFF2/tabledata-extraneous-data-001-ref.xht
index d52bb9c..aa32826 100644
--- a/css/WOFF2/tabledata-extraneous-data-001-ref.xht
+++ b/css/WOFF2/tabledata-extraneous-data-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectExtraData" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="There is extraneous data before the last table." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-extraneous-data-001.xht b/css/WOFF2/tabledata-extraneous-data-001.xht
index 9c0389a..c85538c 100644
--- a/css/WOFF2/tabledata-extraneous-data-001.xht
+++ b/css/WOFF2/tabledata-extraneous-data-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectExtraData" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-extraneous-data-001-ref.xht" />
 		<meta name="assert" content="There is extraneous data before the last table." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-extraneous-data-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-001-ref.xht b/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
index ba12823..442724f 100644
--- a/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCalculateBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with a glyph with no explicit bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-001.xht b/css/WOFF2/tabledata-glyf-bbox-001.xht
index 2b277d3..56240c5 100644
--- a/css/WOFF2/tabledata-glyf-bbox-001.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCalculateBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-glyf-bbox-001-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with a glyph with no explicit bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-glyf-bbox-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-002-ref.xht b/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
index 0a99e43..adfb84c 100644
--- a/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectNoCompositeBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF due to composite glyphs without bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-002.xht b/css/WOFF2/tabledata-glyf-bbox-002.xht
index 1c6699d..dde1421 100644
--- a/css/WOFF2/tabledata-glyf-bbox-002.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectNoCompositeBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-glyf-bbox-002-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF due to composite glyphs without bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-glyf-bbox-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-003-ref.xht b/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
index c7584c0..9db3f3f 100644
--- a/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectNonEmptyBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF due to empty glyph with bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-bbox-003.xht b/css/WOFF2/tabledata-glyf-bbox-003.xht
index 88368a1..da8cbce 100644
--- a/css/WOFF2/tabledata-glyf-bbox-003.xht
+++ b/css/WOFF2/tabledata-glyf-bbox-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectNonEmptyBBox" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-glyf-bbox-003-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF due to empty glyph with bounding box" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-glyf-bbox-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-origlength-001-ref.xht b/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
index dc950ed..cb7b6a0 100644
--- a/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
+++ b/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectGlyfSizeMismatch" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The origLength field of glyf table contains a too small incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-origlength-001.xht b/css/WOFF2/tabledata-glyf-origlength-001.xht
index eaa15a4..ebb4192 100644
--- a/css/WOFF2/tabledata-glyf-origlength-001.xht
+++ b/css/WOFF2/tabledata-glyf-origlength-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectGlyfSizeMismatch" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-glyf-origlength-001-ref.xht" />
 		<meta name="assert" content="The origLength field of glyf table contains a too small incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-glyf-origlength-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-origlength-002-ref.xht b/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
index de0517f..3bebeb7 100644
--- a/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
+++ b/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectGlyfSizeMismatch" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The origLength field of glyf table contains a too big incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-glyf-origlength-002.xht b/css/WOFF2/tabledata-glyf-origlength-002.xht
index 706c35e..43b283a 100644
--- a/css/WOFF2/tabledata-glyf-origlength-002.xht
+++ b/css/WOFF2/tabledata-glyf-origlength-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustNotRejectGlyfSizeMismatch" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-glyf-origlength-002-ref.xht" />
 		<meta name="assert" content="The origLength field of glyf table contains a too big incorrect value." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-glyf-origlength-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-non-zero-loca-001-ref.xht b/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
index 8edc6e8..99995a5 100644
--- a/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
+++ b/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="The transformed loca table contains 4 zero bytes and its transformLength is 4." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-non-zero-loca-001.xht b/css/WOFF2/tabledata-non-zero-loca-001.xht
index 992f4c0..8caf96b 100644
--- a/css/WOFF2/tabledata-non-zero-loca-001.xht
+++ b/css/WOFF2/tabledata-non-zero-loca-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustRejectLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-non-zero-loca-001-ref.xht" />
 		<meta name="assert" content="The transformed loca table contains 4 zero bytes and its transformLength is 4." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-non-zero-loca-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-recontruct-loca-001-ref.xht b/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
index 4b446f3..61a9696 100644
--- a/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
+++ b/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustReconstructLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with simple composite glyphs where the loca table uses the short format, to check loca reconstruction" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-recontruct-loca-001.xht b/css/WOFF2/tabledata-recontruct-loca-001.xht
index e695fb2..202ed17 100644
--- a/css/WOFF2/tabledata-recontruct-loca-001.xht
+++ b/css/WOFF2/tabledata-recontruct-loca-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustReconstructLoca" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-recontruct-loca-001-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with simple composite glyphs where the loca table uses the short format, to check loca reconstruction" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-recontruct-loca-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht b/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
index 7230468..b129f50 100644
--- a/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
+++ b/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeRejected-FailTransform" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid CFF flavored WOFF with head table having transform version 1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-bad-flag-001.xht b/css/WOFF2/tabledata-transform-bad-flag-001.xht
index 0e064b4..f5f59b3 100644
--- a/css/WOFF2/tabledata-transform-bad-flag-001.xht
+++ b/css/WOFF2/tabledata-transform-bad-flag-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeRejected-FailTransform" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-bad-flag-001-ref.xht" />
 		<meta name="assert" content="Invalid CFF flavored WOFF with head table having transform version 1." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-bad-flag-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht b/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
index 0d6c710..a0d514d 100644
--- a/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
+++ b/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeRejected-FailTransform" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with glyf table having transform version 3." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-bad-flag-002.xht b/css/WOFF2/tabledata-transform-bad-flag-002.xht
index 869756a..5c4a776 100644
--- a/css/WOFF2/tabledata-transform-bad-flag-002.xht
+++ b/css/WOFF2/tabledata-transform-bad-flag-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustBeRejected-FailTransform" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-bad-flag-002-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with glyf table having transform version 3." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-bad-flag-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-001-ref.xht b/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
index edbe965..33eddb6 100644
--- a/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustAcceptAllTransforms" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with transformed hmtx table." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-001.xht b/css/WOFF2/tabledata-transform-hmtx-001.xht
index 5b71cd0..a1f1462 100644
--- a/css/WOFF2/tabledata-transform-hmtx-001.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-001.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustAcceptAllTransforms" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-hmtx-001-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with transformed hmtx table." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-hmtx-001.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-002-ref.xht b/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
index fcf7779..ddca14f 100644
--- a/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with transformed hmtx table and correct flags field." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-002.xht b/css/WOFF2/tabledata-transform-hmtx-002.xht
index 9f77637..641df19 100644
--- a/css/WOFF2/tabledata-transform-hmtx-002.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-002.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-hmtx-002-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with transformed hmtx table and correct flags field." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-hmtx-002.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-003-ref.xht b/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
index 1ccefae..1d05d98 100644
--- a/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with transformed hmtx table with non-zero reserved bits of the flags field." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-003.xht b/css/WOFF2/tabledata-transform-hmtx-003.xht
index a0110c3..66815b9 100644
--- a/css/WOFF2/tabledata-transform-hmtx-003.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-003.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-hmtx-003-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with transformed hmtx table with non-zero reserved bits of the flags field." />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-hmtx-003.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-004-ref.xht b/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
index 352d186..0f071d3 100644
--- a/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
@@ -6,10 +6,10 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with transformed hmtx table with all flags bits set to 0" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -24,7 +24,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/tabledata-transform-hmtx-004.xht b/css/WOFF2/tabledata-transform-hmtx-004.xht
index 0eeac02..af7392b 100644
--- a/css/WOFF2/tabledata-transform-hmtx-004.xht
+++ b/css/WOFF2/tabledata-transform-hmtx-004.xht
@@ -6,10 +6,11 @@
 		<link rel="author" title="Khaled Hosny" href="http://khaledhosny.org" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#DataTables" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCheckLSBFlags" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="tabledata-transform-hmtx-004-ref.xht" />
 		<meta name="assert" content="Invalid TTF flavored WOFF with transformed hmtx table with all flags bits set to 0" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/tabledata-transform-hmtx-004.woff2") format("woff2");
@@ -28,7 +29,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">F</div>
 	</body>
diff --git a/css/WOFF2/testcaseindex.xht b/css/WOFF2/testcaseindex.xht
index cbedcb0..b0f6c72 100644
--- a/css/WOFF2/testcaseindex.xht
+++ b/css/WOFF2/testcaseindex.xht
@@ -8,7 +8,6 @@
 	</head>
 	<body>
 		<h1>WOFF 2.0: User Agent Test Suite (303 tests)</h1>
-		<p class="installFontsNote">All of these tests require special fonts to be installed. The fonts can be obtained <a href="support/FontsToInstall">here</a>.</p>
 
 		<h2 class="testCategory">Valid WOFFs</h2>
 		<div class="testCase" id="valid-001">
diff --git a/css/WOFF2/valid-001-ref.xht b/css/WOFF2/valid-001-ref.xht
index 5eeba27..35d2f71 100644
--- a/css/WOFF2/valid-001-ref.xht
+++ b/css/WOFF2/valid-001-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid CFF flavored WOFF with no metadata and no private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-001.xht b/css/WOFF2/valid-001.xht
index cee53cd..84383da 100644
--- a/css/WOFF2/valid-001.xht
+++ b/css/WOFF2/valid-001.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-001-ref.xht" />
 		<meta name="assert" content="Valid CFF flavored WOFF with no metadata and no private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-001.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-002-ref.xht b/css/WOFF2/valid-002-ref.xht
index 713fcc9..d9a38c0 100644
--- a/css/WOFF2/valid-002-ref.xht
+++ b/css/WOFF2/valid-002-ref.xht
@@ -8,10 +8,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid CFF flavored WOFF with metadata" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -26,7 +26,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-002.xht b/css/WOFF2/valid-002.xht
index e21b65a..0dc724b 100644
--- a/css/WOFF2/valid-002.xht
+++ b/css/WOFF2/valid-002.xht
@@ -8,10 +8,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-002-ref.xht" />
 		<meta name="assert" content="Valid CFF flavored WOFF with metadata" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-002.woff2") format("woff2");
@@ -30,7 +31,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-003-ref.xht b/css/WOFF2/valid-003-ref.xht
index afdb425..d2c9e6a1 100644
--- a/css/WOFF2/valid-003-ref.xht
+++ b/css/WOFF2/valid-003-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid CFF flavored WOFF with private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-003.xht b/css/WOFF2/valid-003.xht
index 0e4d373..a07035c 100644
--- a/css/WOFF2/valid-003.xht
+++ b/css/WOFF2/valid-003.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-003-ref.xht" />
 		<meta name="assert" content="Valid CFF flavored WOFF with private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-003.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-004-ref.xht b/css/WOFF2/valid-004-ref.xht
index 620c346..b4b30ce 100644
--- a/css/WOFF2/valid-004-ref.xht
+++ b/css/WOFF2/valid-004-ref.xht
@@ -8,10 +8,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid CFF flavored WOFF with metadata and private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -26,7 +26,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-004.xht b/css/WOFF2/valid-004.xht
index 0009bf9..9a704ad 100644
--- a/css/WOFF2/valid-004.xht
+++ b/css/WOFF2/valid-004.xht
@@ -8,10 +8,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-004-ref.xht" />
 		<meta name="assert" content="Valid CFF flavored WOFF with metadata and private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-004.woff2") format("woff2");
@@ -30,7 +31,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-005-ref.xht b/css/WOFF2/valid-005-ref.xht
index 11bc222..f504cde 100644
--- a/css/WOFF2/valid-005-ref.xht
+++ b/css/WOFF2/valid-005-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with no metadata and no private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-005.xht b/css/WOFF2/valid-005.xht
index 70a1751..0fa9f49 100644
--- a/css/WOFF2/valid-005.xht
+++ b/css/WOFF2/valid-005.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-005-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with no metadata and no private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-005.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-006-ref.xht b/css/WOFF2/valid-006-ref.xht
index 6e30723..149e12d 100644
--- a/css/WOFF2/valid-006-ref.xht
+++ b/css/WOFF2/valid-006-ref.xht
@@ -8,10 +8,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with metadata" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -26,7 +26,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-006.xht b/css/WOFF2/valid-006.xht
index 8ac74e3..9fe79c9 100644
--- a/css/WOFF2/valid-006.xht
+++ b/css/WOFF2/valid-006.xht
@@ -8,10 +8,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-006-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with metadata" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-006.woff2") format("woff2");
@@ -30,7 +31,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-007-ref.xht b/css/WOFF2/valid-007-ref.xht
index 9bb7531..244b0bb 100644
--- a/css/WOFF2/valid-007-ref.xht
+++ b/css/WOFF2/valid-007-ref.xht
@@ -7,10 +7,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -25,7 +25,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-007.xht b/css/WOFF2/valid-007.xht
index 7144d5a..101cbcb 100644
--- a/css/WOFF2/valid-007.xht
+++ b/css/WOFF2/valid-007.xht
@@ -7,10 +7,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#FileStructure" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-007-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-007.woff2") format("woff2");
@@ -29,7 +30,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<div class="test">P</div>
 	</body>
diff --git a/css/WOFF2/valid-008-ref.xht b/css/WOFF2/valid-008-ref.xht
index 599cbcc..e579e81 100644
--- a/css/WOFF2/valid-008-ref.xht
+++ b/css/WOFF2/valid-008-ref.xht
@@ -8,10 +8,10 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
 		<meta name="assert" content="Valid TTF flavored WOFF with metadata and private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			body {
 				font-size: 20px;
 			}
@@ -26,7 +26,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/WOFF2/valid-008.xht b/css/WOFF2/valid-008.xht
index 56711fe..5a6dba9 100644
--- a/css/WOFF2/valid-008.xht
+++ b/css/WOFF2/valid-008.xht
@@ -8,10 +8,11 @@
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-private-noeffect" />
 		<link rel="help" href="http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-maydisplay" />
-<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
-		<meta name="flags" content="font" />
+		<link  rel="reviewer" title="Chris Lilley" href="mailto:chris@w3.org" />
+		<link rel="match" href="valid-008-ref.xht" />
 		<meta name="assert" content="Valid TTF flavored WOFF with metadata and private data" />
 		<style type="text/css"><![CDATA[
+			@import url("support/test-fonts.css");
 			@font-face {
 				font-family: "WOFF Test";
 				src: url("support/valid-008.woff2") format("woff2");
@@ -30,7 +31,6 @@
 		]]></style>
 	</head>
 	<body>
-		<p><a href="support/FontsToInstall">Test fonts</a> must be installed for this test. The WOFF being tested will be loaded over the network so please wait until the download is complete before determing the success of this test.</p>
 		<p>Test passes if the word PASS appears below.</p>
 		<p>The Extended Metadata Block is valid and may be displayed to the user upon request.</p>
 		<div class="test">P</div>
diff --git a/css/css-animations/animation-delay-001.html b/css/css-animations/animation-delay-001-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-001.html
rename to css/css-animations/animation-delay-001-manual.html
diff --git a/css/css-animations/animation-delay-002.html b/css/css-animations/animation-delay-002-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-002.html
rename to css/css-animations/animation-delay-002-manual.html
diff --git a/css/css-animations/animation-delay-003.html b/css/css-animations/animation-delay-003-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-003.html
rename to css/css-animations/animation-delay-003-manual.html
diff --git a/css/css-animations/animation-delay-004.html b/css/css-animations/animation-delay-004-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-004.html
rename to css/css-animations/animation-delay-004-manual.html
diff --git a/css/css-animations/animation-delay-005.html b/css/css-animations/animation-delay-005-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-005.html
rename to css/css-animations/animation-delay-005-manual.html
diff --git a/css/css-animations/animation-delay-006.html b/css/css-animations/animation-delay-006-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-006.html
rename to css/css-animations/animation-delay-006-manual.html
diff --git a/css/css-animations/animation-delay-007.html b/css/css-animations/animation-delay-007-manual.html
similarity index 100%
rename from css/css-animations/animation-delay-007.html
rename to css/css-animations/animation-delay-007-manual.html
diff --git a/css/css-animations/animation-direction-001.html b/css/css-animations/animation-direction-001-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-001.html
rename to css/css-animations/animation-direction-001-manual.html
diff --git a/css/css-animations/animation-direction-002.html b/css/css-animations/animation-direction-002-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-002.html
rename to css/css-animations/animation-direction-002-manual.html
diff --git a/css/css-animations/animation-direction-003.html b/css/css-animations/animation-direction-003-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-003.html
rename to css/css-animations/animation-direction-003-manual.html
diff --git a/css/css-animations/animation-direction-004.html b/css/css-animations/animation-direction-004-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-004.html
rename to css/css-animations/animation-direction-004-manual.html
diff --git a/css/css-animations/animation-direction-005.html b/css/css-animations/animation-direction-005-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-005.html
rename to css/css-animations/animation-direction-005-manual.html
diff --git a/css/css-animations/animation-direction-006.html b/css/css-animations/animation-direction-006-manual.html
similarity index 100%
rename from css/css-animations/animation-direction-006.html
rename to css/css-animations/animation-direction-006-manual.html
diff --git a/css/css-animations/animation-display.html b/css/css-animations/animation-display-manual.html
similarity index 100%
rename from css/css-animations/animation-display.html
rename to css/css-animations/animation-display-manual.html
diff --git a/css/css-animations/animation-duration-001.html b/css/css-animations/animation-duration-001-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-001.html
rename to css/css-animations/animation-duration-001-manual.html
diff --git a/css/css-animations/animation-duration-002.html b/css/css-animations/animation-duration-002-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-002.html
rename to css/css-animations/animation-duration-002-manual.html
diff --git a/css/css-animations/animation-duration-003.html b/css/css-animations/animation-duration-003-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-003.html
rename to css/css-animations/animation-duration-003-manual.html
diff --git a/css/css-animations/animation-duration-004.html b/css/css-animations/animation-duration-004-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-004.html
rename to css/css-animations/animation-duration-004-manual.html
diff --git a/css/css-animations/animation-duration-005.html b/css/css-animations/animation-duration-005-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-005.html
rename to css/css-animations/animation-duration-005-manual.html
diff --git a/css/css-animations/animation-duration-006.html b/css/css-animations/animation-duration-006-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-006.html
rename to css/css-animations/animation-duration-006-manual.html
diff --git a/css/css-animations/animation-duration-007.html b/css/css-animations/animation-duration-007-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-007.html
rename to css/css-animations/animation-duration-007-manual.html
diff --git a/css/css-animations/animation-duration-008.html b/css/css-animations/animation-duration-008-manual.html
similarity index 100%
rename from css/css-animations/animation-duration-008.html
rename to css/css-animations/animation-duration-008-manual.html
diff --git a/css/css-animations/animation-fill-mode-001.html b/css/css-animations/animation-fill-mode-001-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-001.html
rename to css/css-animations/animation-fill-mode-001-manual.html
diff --git a/css/css-animations/animation-fill-mode-002.html b/css/css-animations/animation-fill-mode-002-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-002.html
rename to css/css-animations/animation-fill-mode-002-manual.html
diff --git a/css/css-animations/animation-fill-mode-003.html b/css/css-animations/animation-fill-mode-003-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-003.html
rename to css/css-animations/animation-fill-mode-003-manual.html
diff --git a/css/css-animations/animation-fill-mode-004.html b/css/css-animations/animation-fill-mode-004-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-004.html
rename to css/css-animations/animation-fill-mode-004-manual.html
diff --git a/css/css-animations/animation-fill-mode-005.html b/css/css-animations/animation-fill-mode-005-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-005.html
rename to css/css-animations/animation-fill-mode-005-manual.html
diff --git a/css/css-animations/animation-fill-mode-006.html b/css/css-animations/animation-fill-mode-006-manual.html
similarity index 100%
rename from css/css-animations/animation-fill-mode-006.html
rename to css/css-animations/animation-fill-mode-006-manual.html
diff --git a/css/css-animations/animation-iteration-count-001.html b/css/css-animations/animation-iteration-count-001-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-001.html
rename to css/css-animations/animation-iteration-count-001-manual.html
diff --git a/css/css-animations/animation-iteration-count-002.html b/css/css-animations/animation-iteration-count-002-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-002.html
rename to css/css-animations/animation-iteration-count-002-manual.html
diff --git a/css/css-animations/animation-iteration-count-003.html b/css/css-animations/animation-iteration-count-003-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-003.html
rename to css/css-animations/animation-iteration-count-003-manual.html
diff --git a/css/css-animations/animation-iteration-count-004.html b/css/css-animations/animation-iteration-count-004-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-004.html
rename to css/css-animations/animation-iteration-count-004-manual.html
diff --git a/css/css-animations/animation-iteration-count-005.html b/css/css-animations/animation-iteration-count-005-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-005.html
rename to css/css-animations/animation-iteration-count-005-manual.html
diff --git a/css/css-animations/animation-iteration-count-006.html b/css/css-animations/animation-iteration-count-006-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-006.html
rename to css/css-animations/animation-iteration-count-006-manual.html
diff --git a/css/css-animations/animation-iteration-count-007.html b/css/css-animations/animation-iteration-count-007-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-007.html
rename to css/css-animations/animation-iteration-count-007-manual.html
diff --git a/css/css-animations/animation-iteration-count-008.html b/css/css-animations/animation-iteration-count-008-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-count-008.html
rename to css/css-animations/animation-iteration-count-008-manual.html
diff --git a/css/css-animations/animation-iteration-event.html b/css/css-animations/animation-iteration-event-manual.html
similarity index 100%
rename from css/css-animations/animation-iteration-event.html
rename to css/css-animations/animation-iteration-event-manual.html
diff --git a/css/css-animations/animation-keyframes-001.html b/css/css-animations/animation-keyframes-001-manual.html
similarity index 100%
rename from css/css-animations/animation-keyframes-001.html
rename to css/css-animations/animation-keyframes-001-manual.html
diff --git a/css/css-animations/animation-keyframes-002.html b/css/css-animations/animation-keyframes-002-manual.html
similarity index 100%
rename from css/css-animations/animation-keyframes-002.html
rename to css/css-animations/animation-keyframes-002-manual.html
diff --git a/css/css-animations/animation-keyframes-003.html b/css/css-animations/animation-keyframes-003-manual.html
similarity index 100%
rename from css/css-animations/animation-keyframes-003.html
rename to css/css-animations/animation-keyframes-003-manual.html
diff --git a/css/css-animations/animation-name-001.html b/css/css-animations/animation-name-001-manual.html
similarity index 100%
rename from css/css-animations/animation-name-001.html
rename to css/css-animations/animation-name-001-manual.html
diff --git a/css/css-animations/animation-name-002.html b/css/css-animations/animation-name-002-manual.html
similarity index 100%
rename from css/css-animations/animation-name-002.html
rename to css/css-animations/animation-name-002-manual.html
diff --git a/css/css-animations/animation-name-003.html b/css/css-animations/animation-name-003-manual.html
similarity index 100%
rename from css/css-animations/animation-name-003.html
rename to css/css-animations/animation-name-003-manual.html
diff --git a/css/css-animations/animation-name-004.html b/css/css-animations/animation-name-004-manual.html
similarity index 100%
rename from css/css-animations/animation-name-004.html
rename to css/css-animations/animation-name-004-manual.html
diff --git a/css/css-animations/animation-name-005.html b/css/css-animations/animation-name-005-manual.html
similarity index 100%
rename from css/css-animations/animation-name-005.html
rename to css/css-animations/animation-name-005-manual.html
diff --git a/css/css-animations/animation-name-006.html b/css/css-animations/animation-name-006-manual.html
similarity index 100%
rename from css/css-animations/animation-name-006.html
rename to css/css-animations/animation-name-006-manual.html
diff --git a/css/css-animations/animation-play-state-001.html b/css/css-animations/animation-play-state-001-manual.html
similarity index 100%
rename from css/css-animations/animation-play-state-001.html
rename to css/css-animations/animation-play-state-001-manual.html
diff --git a/css/css-animations/animation-play-state-002.html b/css/css-animations/animation-play-state-002-manual.html
similarity index 100%
rename from css/css-animations/animation-play-state-002.html
rename to css/css-animations/animation-play-state-002-manual.html
diff --git a/css/css-animations/animation-play-state-003.html b/css/css-animations/animation-play-state-003-manual.html
similarity index 100%
rename from css/css-animations/animation-play-state-003.html
rename to css/css-animations/animation-play-state-003-manual.html
diff --git a/css/css-animations/animation-play-state-004.html b/css/css-animations/animation-play-state-004-manual.html
similarity index 100%
rename from css/css-animations/animation-play-state-004.html
rename to css/css-animations/animation-play-state-004-manual.html
diff --git a/css/css-animations/animation-shorthand-001.html b/css/css-animations/animation-shorthand-001-manual.html
similarity index 100%
rename from css/css-animations/animation-shorthand-001.html
rename to css/css-animations/animation-shorthand-001-manual.html
diff --git a/css/css-animations/animation-shorthand-002.html b/css/css-animations/animation-shorthand-002-manual.html
similarity index 100%
rename from css/css-animations/animation-shorthand-002.html
rename to css/css-animations/animation-shorthand-002-manual.html
diff --git a/css/css-animations/animation-shorthand-003.html b/css/css-animations/animation-shorthand-003-manual.html
similarity index 100%
rename from css/css-animations/animation-shorthand-003.html
rename to css/css-animations/animation-shorthand-003-manual.html
diff --git a/css/css-animations/animation-timing-function-001.html b/css/css-animations/animation-timing-function-001-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-001.html
rename to css/css-animations/animation-timing-function-001-manual.html
diff --git a/css/css-animations/animation-timing-function-002.html b/css/css-animations/animation-timing-function-002-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-002.html
rename to css/css-animations/animation-timing-function-002-manual.html
diff --git a/css/css-animations/animation-timing-function-003.html b/css/css-animations/animation-timing-function-003-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-003.html
rename to css/css-animations/animation-timing-function-003-manual.html
diff --git a/css/css-animations/animation-timing-function-004.html b/css/css-animations/animation-timing-function-004-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-004.html
rename to css/css-animations/animation-timing-function-004-manual.html
diff --git a/css/css-animations/animation-timing-function-005.html b/css/css-animations/animation-timing-function-005-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-005.html
rename to css/css-animations/animation-timing-function-005-manual.html
diff --git a/css/css-animations/animation-timing-function-006.html b/css/css-animations/animation-timing-function-006-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-006.html
rename to css/css-animations/animation-timing-function-006-manual.html
diff --git a/css/css-animations/animation-timing-function-007.html b/css/css-animations/animation-timing-function-007-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-007.html
rename to css/css-animations/animation-timing-function-007-manual.html
diff --git a/css/css-animations/animation-timing-function-008.html b/css/css-animations/animation-timing-function-008-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-008.html
rename to css/css-animations/animation-timing-function-008-manual.html
diff --git a/css/css-animations/animation-timing-function-009.html b/css/css-animations/animation-timing-function-009-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-009.html
rename to css/css-animations/animation-timing-function-009-manual.html
diff --git a/css/css-animations/animation-timing-function-010.html b/css/css-animations/animation-timing-function-010-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-010.html
rename to css/css-animations/animation-timing-function-010-manual.html
diff --git a/css/css-animations/animation-timing-function-011.html b/css/css-animations/animation-timing-function-011-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-011.html
rename to css/css-animations/animation-timing-function-011-manual.html
diff --git a/css/css-animations/animation-timing-function-012.html b/css/css-animations/animation-timing-function-012-manual.html
similarity index 100%
rename from css/css-animations/animation-timing-function-012.html
rename to css/css-animations/animation-timing-function-012-manual.html
diff --git a/css/css-animations/animationstart-and-animationend-events.html b/css/css-animations/animationstart-and-animationend-events-manual.html
similarity index 100%
rename from css/css-animations/animationstart-and-animationend-events.html
rename to css/css-animations/animationstart-and-animationend-events-manual.html
diff --git a/css/css-color/t451-system-colors-a.xht b/css/css-color/t451-system-colors-a.xht
deleted file mode 100644
index bb6f13e..0000000
--- a/css/css-color/t451-system-colors-a.xht
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-	<head>
-		<title>CSS Test: system colors</title>
-		<link rel="author" title="L. David Baron" href="https://dbaron.org/" />
-		<link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
-		<link rel="help" href="http://www.w3.org/TR/css3-color/#css2-system" />
-		<meta name="flags" content="" />
-		<meta name="assert" content="That system colors are displayed as described." />
-		<style type="text/css"><![CDATA[
-		html, body { background: #9f9; }
-		p, div { border: medium solid red; background: red; color: red; }
-		]]></style>
-	</head>
-	<body>
-
-		<p style="border: none; background: white; color: black">Nothing in this document should be red unless the operating environment provides red as a color for one of the things mentioned.</p>
-
-		<p style="border: none; background: white; color: black">Every line of text in this document should be a color distinct enough from its background to be legible.</p>
-
-		<p style="border-top: 4px solid ButtonHighlight; border-right: 4px solid ButtonShadow; border-bottom: 4px solid ButtonShadow; border-left: 4px solid ButtonHighlight; background: ButtonFace; color: ButtonText">
-			This should have the text color, background color, and solid border that makes it look like the closest simulation of a raised button (with the light source in the upper left) in the operating environment that is possible using a box with a single border around it.
-		</p>
-
-		<div style="border-top: 2px solid ThreeDHighlight; border-right: 2px solid ThreeDDarkShadow; border-bottom: 2px solid ThreeDDarkShadow; border-left: 2px solid ThreeDHighlight">
-			<div style="border-top: 2px solid ThreeDLightShadow; border-right: 2px solid ThreeDShadow; border-bottom: 2px solid ThreeDShadow; border-left: 2px solid ThreeDLightShadow; background: ThreeDFace; color: ButtonText">
-				<!-- is ButtonText an appropriate color to use here? -->
-				This should have the background color and <em>two</em> solid borders that makes it look like the closest simulation of a raised button (with the light source in the upper left) in the operating environment that is possible using a box with a two-layer border around it.
-			</div>
-		</div>
-
-		<p style="border: medium solid ActiveBorder; background: ActiveCaption; color: CaptionText">If the operating environment provides such colors, this should have the text color and background color of an active window caption, and a border the color of the border of active windows.</p>
-
-		<p style="border: medium solid InactiveBorder; background: InactiveCaption; color: InactiveCaptionText">If the operating environment provides such colors, this should have the text color and background color of an inactive window caption, and a border the color of the border of inactive windows.</p>
-
-		<p style="border: none; background: AppWorkspace; color: WindowText">
-			This should have the background color used by multiple document interface (MDI) applications, if the operating environment provides such a color.
-		</p>
-
-		<p style="background: Background; color: WindowText; border: none">
-			This should have the background color of the desktop, if the operating environment provides such a color.
-		</p>
-
-		<p style="background: Window; color: GrayText; border: none">
-			This should have the text color of disabled controls, if the operating environment provides such a color.
-		</p>
-
-		<p style="background: Highlight; color: HighlightText; border: none">
-			This should have the text color and background color of highlighted items, if the operating system provides such colors.
-		</p>
-
-		<p style="background: InfoBackground; color: InfoText; border: none">
-			This should have the text color and background color of tooltips, if the operating system provides such colors.
-		</p>
-
-		<p style="background: Menu; color: MenuText; border: none">
-			This should have the text color and background color of menus, if the operating system provides such colors.
-		</p>
-
-		<p style="border: none; background: white; color: black">The following (empty) square should have the background color of the area that scrollbar sliders slide over, if the operating environment provides such a color:</p>
-		<p style="background: Scrollbar; color: CaptionText; border: none; margin-left: auto; margin-right: auto; width: 2em; height: 2em;">
-			&nbsp;
-		</p>
-
-		<p style="background: Window; color: WindowText; border: none">
-			This should have the text color and background color of text fields, if the operating system provides such colors.
-		</p>
-
-		<p style="border: 2px solid WindowFrame; background: white; color: black">
-			This should have a border the color of a window's frame, if the operating system provides such a color.
-		</p>
-
-	</body>
-</html>
diff --git a/css/css-contain/contain-paint-011.html b/css/css-contain/contain-paint-011.html
new file mode 100644
index 0000000..fdb2d2d
--- /dev/null
+++ b/css/css-contain/contain-paint-011.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Paint containment absolutely positioned descendants</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<meta name=assert content="Paint containment doesn't apply to inline elements so they don't act as containing block for absolutely positioned descendants.">
+<style>
+#containing-block {
+  position: relative;
+  background: red;
+  width: 100px;
+  height: 100px;
+  padding: 20px;
+  box-sizing: border-box;
+}
+
+#contain-paint {
+  contain: paint;
+  width: 50px;
+  height: 50px;
+}
+
+#abspos {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  background: green;
+  width: 100%;
+  height: 100%;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="containing-block">
+  <span id="contain-paint">
+    <div id="abspos"></div>
+  </span>
+</div>
diff --git a/css/css-contain/contain-paint-012.html b/css/css-contain/contain-paint-012.html
new file mode 100644
index 0000000..f3c6351
--- /dev/null
+++ b/css/css-contain/contain-paint-012.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Paint containment fixed positioned descendants</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<meta name=assert content="Paint containment doesn't apply to inline elements so they don't act as containing block for fixed positioned descendants.">
+<style>
+#containing-block {
+  transform: translateX(0);
+  background: red;
+  width: 100px;
+  height: 100px;
+  padding: 20px;
+  box-sizing: border-box;
+}
+
+#contain-paint {
+  contain: paint;
+  width: 50px;
+  height: 50px;
+}
+
+#fixed {
+  position: fixed;
+  bottom: 0;
+  right: 0;
+  background: green;
+  width: 100%;
+  height: 100%;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="containing-block">
+  <span id="contain-paint">
+    <div id="fixed"></div>
+  </span>
+</div>
diff --git a/css/css-contain/contain-paint-013.html b/css/css-contain/contain-paint-013.html
new file mode 100644
index 0000000..3b6b3a7
--- /dev/null
+++ b/css/css-contain/contain-paint-013.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Paint containment independent formatting context</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
+<link rel="match" href="reference/contain-paint-013-ref.html">
+<meta name=assert content="Paint containment elements establish an independent formatting context. The test checks that this feature of paint containment applies to blocks and inline blocks, but it doesn't apply to inline elements.">
+<style>
+.wrapper {
+  border: solid thick;
+  margin: 1em;
+}
+</style>
+<p>Test passes if on the first two boxes the top and bottom margins of the text line are double size than on the last box.</p>
+<div class="wrapper">
+  <div style="margin: 1em 0; contain: paint;">
+    <div style="margin: 1em 0;">This text should have 2em top and bottom margins (margins do not collapse).</div>
+  </div>
+</div>
+<div class="wrapper">
+  <span style="display: inline-block; margin: 1em 0; contain: paint;">
+    <div style="margin: 1em 0;">This text should have 2em top and bottom margins (margins do not collapse).</div>
+  </span>
+</div>
+<div class="wrapper">
+  <span style="margin: 1em 0; contain: paint;">
+    <div style="margin: 1em 0;">This text should have 1em top and bottom margins.</div>
+  </span>
+</div>
diff --git a/css/css-contain/reference/contain-paint-008-ref.html b/css/css-contain/reference/contain-paint-008-ref.html
index 50c3bd7..b94055e 100644
--- a/css/css-contain/reference/contain-paint-008-ref.html
+++ b/css/css-contain/reference/contain-paint-008-ref.html
@@ -8,11 +8,9 @@
 rt {
   display: ruby-text;
   font-size: 1rem;
-  position: relative;
-  left: 4ch;
   font-family: monospace;
 }
 </style>
 
 <p>This test passes if you can see the word PASS below.
-<div><ruby><rt>PASS</rt></ruby></div>
+<div><ruby><rt><span style="margin-left: 4ch;"></span>PASS</rt></ruby></div>
diff --git a/css/css-contain/reference/contain-paint-013-ref.html b/css/css-contain/reference/contain-paint-013-ref.html
new file mode 100644
index 0000000..af75870
--- /dev/null
+++ b/css/css-contain/reference/contain-paint-013-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Reference file</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+.wrapper {
+  border: solid thick;
+  margin: 1em;
+}
+</style>
+<p>Test passes if on the first two boxes the top and bottom margins of the text line are double size than on the last box.</p>
+<div class="wrapper">
+  <div style="margin: 2em 0;">This text should have 2em top and bottom margins (margins do not collapse).</div>
+</div>
+<div class="wrapper">
+  <div style="margin: 2em 0;">This text should have 2em top and bottom margins (margins do not collapse).</div>
+</div>
+<div class="wrapper">
+  <div style="margin: 1em 0;">This text should have 1em top and bottom margins.</div>
+</div>
diff --git a/css/css-filter/OWNERS b/css/css-filter/OWNERS
new file mode 100644
index 0000000..e8e7c5d
--- /dev/null
+++ b/css/css-filter/OWNERS
@@ -0,0 +1 @@
+@chrishtr
diff --git a/css/css-fonts/font-variant-05.xht b/css/css-fonts/font-variant-05.xht
index 8321a8d..7ea3cd9 100644
--- a/css/css-fonts/font-variant-05.xht
+++ b/css/css-fonts/font-variant-05.xht
@@ -4,9 +4,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>CSS Test:  font-variant descriptor in @font-face rule is overriden by equivalent style rules</title>
 <link rel="author" title="Mike Bremford" href="mike@bfo.com" />
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-variant-prop" />
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-rend-desc" />
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop" />
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-variant-prop" />
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-rend-desc" />
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-feature-settings-prop" />
 <link rel="match" href="font-variant-05-ref.xht" />
 <meta name="assert" content="Setting ‘font-variant-ligatures’ properties will override the same properties set in the @font-face rule. But properties set there and not explicitly turned off or on later remain set." />
 <style>
diff --git a/css/css-fonts/font-variant-descriptor-01.html b/css/css-fonts/font-variant-descriptor-01.html
index ba4ba86..f854ca1 100644
--- a/css/css-fonts/font-variant-descriptor-01.html
+++ b/css/css-fonts/font-variant-descriptor-01.html
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>CSS Test:  font-variant: normal; low level equivalence</title>
 <link rel="author" title="Chris Lilley" href="chris@w3.org">
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-variant-prop">
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop">
-<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-rend-desc">
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-variant-prop">
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-feature-settings-prop">
+<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-rend-desc">
 <link rel="match" href="font-variant-descriptor-01-ref.html">
 <meta name="assert" content="These descriptors define initial settings that apply when the font defined by an @font-face rule is rendered">
 <style>
diff --git a/css/css-fonts/support/fonts/FontWithFeatures.otf b/css/css-fonts/support/fonts/FontWithFeatures.otf
deleted file mode 100644
index 3e50699..0000000
--- a/css/css-fonts/support/fonts/FontWithFeatures.otf
+++ /dev/null
Binary files differ
diff --git a/css/css-fonts/support/fonts/font-feature-settings-rendering-2-ref.html b/css/css-fonts/support/fonts/font-feature-settings-rendering-2-ref.html
deleted file mode 100644
index 774481b..0000000
--- a/css/css-fonts/support/fonts/font-feature-settings-rendering-2-ref.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-@font-face {
-    font-family: "FontFeaturesTest";
-    src: url("FontWithFeatures.otf") format("opentype");
-}
-</style>
-</head>
-<body>
-This tests that font features are able to be turned on and off as desired. It uses a special font
-designed specifically for this purpose. The test passes if you see a sequence of alternating check
-marks and X below.
-<div><span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-<span style="font-family: FontFeaturesTest;">BA</span>
-</div>
-</body>
-</html>
diff --git a/css/css-fonts/support/fonts/font-feature-settings-rendering-2.html b/css/css-fonts/support/fonts/font-feature-settings-rendering-2.html
deleted file mode 100644
index f552425..0000000
--- a/css/css-fonts/support/fonts/font-feature-settings-rendering-2.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-@font-face {
-    font-family: "FontFeaturesTest";
-    src: url("resources/FontWithFeatures.otf") format("opentype");
-}
-</style>
-</head>
-<body>
-This tests that font features are able to be turned on and off as desired. It uses a special font
-designed specifically for this purpose. The test passes if you see a sequence of alternating check
-marks and X below.
-<div id="insertionpoint"></div>
-<script>
-var insertionpoint = document.getElementById("insertionpoint");
-function addElement(feature, c) {
-    ["0", "1"].map(function(state) {
-        var element = document.createElement("span");
-        element.textContent = c;
-        element.style.fontFamily = "FontFeaturesTest";
-        element.style.webkitFontFeatureSettings = '"' + feature + '" ' + state;
-        insertionpoint.appendChild(element);
-    });
-    insertionpoint.appendChild(document.createTextNode(" "));
-}
-addElement("liga", "C");
-addElement("clig", "D");
-addElement("dlig", "E");
-addElement("hlig", "F");
-addElement("calt", "G");
-addElement("subs", "H");
-addElement("sups", "I");
-addElement("smcp", "J");
-addElement("c2sc", "K");
-addElement("pcap", "L");
-addElement("c2pc", "M");
-addElement("unic", "N");
-addElement("titl", "O");
-addElement("onum", "P");
-addElement("pnum", "Q");
-addElement("tnum", "R");
-addElement("frac", "S");
-//addElement("afrc", "T");
-addElement("ordn", "U");
-addElement("zero", "V");
-addElement("hist", "W");
-addElement("jp78", "X");
-addElement("jp83", "Y");
-addElement("jp90", "Z");
-addElement("jp04", "a");
-addElement("smpl", "b");
-addElement("trad", "c");
-addElement("fwid", "d");
-addElement("pwid", "e");
-addElement("ruby", "f");
-</script>
-</body>
-</html>
diff --git a/css/css-grid/alignment/grid-gutters-009.html b/css/css-grid/alignment/grid-gutters-009.html
index 98c230f..dfc595f 100644
--- a/css/css-grid/alignment/grid-gutters-009.html
+++ b/css/css-grid/alignment/grid-gutters-009.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
-<title>CSS Grid Layout Test: Support for percentage values for gap with no defined height for the grid</title>
+<title>CSS Grid Layout Test: Support for percentage values for gap with indefinite percentage basis</title>
 <link rel="help" href="https://www.w3.org/TR/css-grid-1/#gutters">
 <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-shorthand">
-<link rel="match" href="../reference/grid-collapsed-row-gutters-ref.html">
+<link rel="match" href="../reference/grid-percentage-gap-ref.html">
 <link rel="author" title="Rachel Andrew" href="mailto:me@rachelandrew.co.uk">
 <style>
     #grid {
@@ -13,6 +13,7 @@
         grid-template-columns: 90px 90px;
         grid-template-rows: 90px 90px;
         background-color: green;
+        margin-bottom: 30px;
     }
 
     #grid > div {
@@ -20,10 +21,16 @@
     }
 </style>
 
-<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should resolve to auto, and therefore collapse to 0 height.</p>
+<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should be percentage of height.</p>
 <div id="grid">
     <div></div>
     <div></div>
     <div></div>
     <div></div>
-</div>
\ No newline at end of file
+</div>
+<div id="grid" style="display:inline-grid; width:auto; gap:calc(20px + 5%)">
+    <div></div>
+    <div></div>
+    <div></div>
+    <div></div>
+</div>
diff --git a/css/css-grid/alignment/grid-gutters-010.html b/css/css-grid/alignment/grid-gutters-010.html
index 6b96fc2..22be6df 100644
--- a/css/css-grid/alignment/grid-gutters-010.html
+++ b/css/css-grid/alignment/grid-gutters-010.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
-<title>CSS Grid Layout Test: Support for percentage values for grid-gap with no defined height for the grid as alias for gap</title>
+<title>CSS Grid Layout Test: Support for percentage values for grid-gap with indefinite percentage basis</title>
 <link rel="help" href="https://www.w3.org/TR/css-grid-1/#gutters">
 <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-shorthand">
-<link rel="match" href="../reference/grid-collapsed-row-gutters-ref.html">
+<link rel="match" href="../reference/grid-percentage-gap-ref.html">
 <link rel="author" title="Rachel Andrew" href="mailto:me@rachelandrew.co.uk">
 <style>
     #grid {
@@ -13,6 +13,7 @@
         grid-template-columns: 90px 90px;
         grid-template-rows: 90px 90px;
         background-color: green;
+        margin-bottom: 30px;
     }
 
     #grid > div {
@@ -20,10 +21,16 @@
     }
 </style>
 
-<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should resolve to auto, and therefore collapse to 0 height.</p>
+<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should be percentage of height.</p>
 <div id="grid">
     <div></div>
     <div></div>
     <div></div>
     <div></div>
-</div>
\ No newline at end of file
+</div>
+<div id="grid" style="display:inline-grid; width:auto; grid-gap:calc(20px + 5%)">
+    <div></div>
+    <div></div>
+    <div></div>
+    <div></div>
+</div>
diff --git a/css/css-grid/reference/grid-collapsed-row-gutters-ref.html b/css/css-grid/reference/grid-collapsed-row-gutters-ref.html
deleted file mode 100644
index a0ff682..0000000
--- a/css/css-grid/reference/grid-collapsed-row-gutters-ref.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Reference: a square with a green bar</title>
-<link rel="author" title="Rachel Andrew" href="mailto:me@rachelandrew.co.uk" />
-<style>
-    #grid {
-        width:200px;
-        height: 180px;
-        background-color: green;
-        position: relative;
-    }
-
-    #grid > div {
-        background-color: silver;
-        width: 90px;
-        height: 90px;
-        position: absolute;
-    }
-
-    #grid :nth-child(1) {
-        top: 0;
-        left: 0;
-    }
-
-    #grid :nth-child(2) {
-        top: 0;
-        left: 110px;
-    }
-
-    #grid :nth-child(3) {
-        top: 90px;
-        left: 0;
-    }
-
-    #grid :nth-child(4) {
-        top: 90px;
-        left: 110px;
-    }
-</style>
-
-<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should resolve to auto, and therefore collapse to 0 height.</p>
-<div id="grid">
-    <div></div>
-    <div></div>
-    <div></div>
-    <div></div>
-</div>
diff --git a/css/css-grid/reference/grid-percentage-gap-ref.html b/css/css-grid/reference/grid-percentage-gap-ref.html
new file mode 100644
index 0000000..f3616f7
--- /dev/null
+++ b/css/css-grid/reference/grid-percentage-gap-ref.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Reference: percentage grid gaps</title>
+<link rel="author" title="Rachel Andrew" href="mailto:me@rachelandrew.co.uk" />
+<style>
+    .grid {
+        width:200px;
+        height: 180px;
+        background-color: green;
+        position: relative;
+        margin-bottom: 30px;
+    }
+
+    .grid > div {
+        background-color: silver;
+        width: 90px;
+        height: 90px;
+        position: absolute;
+    }
+</style>
+
+<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should be percentage of height.</p>
+<div class="grid">
+    <div style="top:0;     left:0"></div>
+    <div style="top:0;     left:110px"></div>
+    <div style="top:108px; left:0"></div>
+    <div style="top:108px; left:110px"></div>
+</div>
+<div class="grid" style="height:200px">
+    <div style="top:0;     left:0"></div>
+    <div style="top:0;     left:120px"></div>
+    <div style="top:120px; left:0"></div>
+    <div style="top:120px; left:120px"></div>
+</div>
diff --git a/css/css-images/gradient/color-stops-parsing.html b/css/css-images/gradient/color-stops-parsing.html
new file mode 100644
index 0000000..a8baa63
--- /dev/null
+++ b/css/css-images/gradient/color-stops-parsing.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Color-stops parsing</title>
+        <link rel="author" title="Florin Malita" href="mailto:fmalita@chromium.org">
+        <link rel="help" href="http://www.w3.org/TR/css-images-4/#color-stop-syntax">
+        <meta name="assert" content="General color stop parsing (applicable to all gradients) follows CSS Images 4 rules.">
+        <script src="/resources/testharness.js"></script>
+        <script src="/resources/testharnessreport.js"></script>
+    </head>
+    <body>
+        <script>
+                var tests = [
+                        // invalid stops
+                        { stops: ""                        , parse: false },
+                        { stops: "black"                   , parse: false },
+                        { stops: "black 0%"                , parse: false },
+                        { stops: "black, 25%"              , parse: false },
+                        { stops: "black, invalid"          , parse: false },
+                        { stops: "black, , white"          , parse: false },
+                        { stops: "black, white, 75%"       , parse: false },
+                        { stops: "black, 25% 50%, white"   , parse: false },
+                        { stops: "black, 25%, 50%, white"  , parse: false },
+                        { stops: "black 10% 25% 50%, white", parse: false },
+                        { stops: ",black, white"           , parse: false },
+                        { stops: "0%, black, white"        , parse: false },
+
+                        // basic stops
+                        { stops: "black, white"                    , parse: true },
+                        { stops: "black 0, white"                  , parse: true },
+                        { stops: "black 0%, white"                 , parse: true },
+                        { stops: "black 0%, white 100%"            , parse: true },
+                        { stops: "black, green, white"             , parse: true },
+                        { stops: "black 0%, green 50%, white 100%" , parse: true },
+                        { stops: "black 50%, green 10%, white 100%", parse: true },
+
+                        // interpolation hints
+                        { stops: "black, 25%, white"                        , parse: true },
+                        { stops: "black 0%, 25%, white 100%"                , parse: true },
+                        { stops: "black 0%, 15%, green 50%, 60%, white 100%", parse: true },
+
+                        // dual-positioning
+                        { stops: "black 0% 50%, white"                        , parse: true },
+                        { stops: "black 0% 50%, white 50% 100%"               , parse: true },
+                        { stops: "black 0% 50%, green 25% 75%, white 50% 100%", parse: true },
+
+                        // kitchen sink
+                        { stops: "black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%", parse: true },
+                ];
+
+                function check_gradient(gradient, stops, shouldParse) {
+                        var div = document.createElement('div');
+                        div.setAttribute("style", "background-image: " + gradient + "(" + stops + ")");
+
+                        var inline_style = div.style.getPropertyValue("background-image");
+                        assert_equals(inline_style.startsWith(gradient), shouldParse);
+
+                        document.body.appendChild(div);
+                        var computed_style = getComputedStyle(div).getPropertyValue("background-image");
+                        assert_equals(computed_style.startsWith(gradient), shouldParse);
+
+                        div.remove();
+                }
+
+                [ "linear-gradient",
+                  "repeating-linear-gradient",
+                  "radial-gradient",
+                  "repeating-radial-gradient",
+                  "conic-gradient",
+                  "repeating-conic-gradient"
+                ].forEach(function(gradient) {
+                        tests.forEach(function(tst) {
+                                test(function() {
+                                        check_gradient(gradient, tst.stops, tst.parse);
+                                }, gradient + "(" + tst.stops + ") " + (tst.parse ? "[ parsable ]" : "[ unparsable ]"));
+                        });
+                });
+        </script>
+    </body>
+</html>
diff --git a/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html b/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html
new file mode 100644
index 0000000..e14541b
--- /dev/null
+++ b/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
+<link rel="match" href="layout-child-ref.html">
+<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
+
+<style>
+.test {
+  writing-mode: horizontal-tb;
+  background: red;
+  margin: 10px;
+  width: 100px;
+}
+
+.child {
+  writing-mode: horizontal-tb;
+  visibility: hidden;
+  line-height: 0;
+
+  --available-inline-size: 20;
+}
+
+.inline {
+  display: inline-block;
+  height: 8px;
+}
+
+.inline-size-10 { width: 10px; }
+.inline-size-30 { width: 30px; }
+
+@supports (display: layout(test)) {
+  .test {
+    background: green;
+    display: layout(test);
+  }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+  <!-- As the inlines don't fit within 20px, we'll end up with two lines. -->
+  <div class="child" style="--inline-size-expected: 30; --block-size-expected: 16;">
+    <span class="inline inline-size-10"></span>
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- The single inline doesn't take up the whole 20px, so will be shrink fitted. -->
+  <div class="child" style="--inline-size-expected: 10; --block-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+
+  <!-- Make sure the max-width property clamps the size. -->
+  <div class="child" style="max-width: 25px; --inline-size-expected: 25; --block-size-expected: 8;">
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- Make sure the min-width property clamps the size. -->
+  <div class="child" style="min-width: 25px; --inline-size-expected: 25; --block-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
+</script>
diff --git a/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html b/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html
new file mode 100644
index 0000000..1b45998
--- /dev/null
+++ b/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
+<link rel="match" href="layout-child-ref.html">
+<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
+
+<style>
+.test {
+  writing-mode: horizontal-tb;
+  background: red;
+  margin: 10px;
+  width: 100px;
+}
+
+.child {
+  writing-mode: vertical-rl;
+  visibility: hidden;
+  line-height: 0;
+
+  --available-block-size: 20;
+}
+
+.inline {
+  display: inline-block;
+  width: 8px;
+}
+
+.inline-size-10 { height: 10px; }
+.inline-size-30 { height: 30px; }
+
+@supports (display: layout(test)) {
+  .test {
+    background: green;
+    display: layout(test);
+  }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+  <!-- As the inlines don't fit within 20px, we'll end up with two lines. -->
+  <div class="child" style="--block-size-expected: 30; --inline-size-expected: 16;">
+    <span class="inline inline-size-10"></span>
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- The single inline doesn't take up the whole 20px, so will be shrink fitted. -->
+  <div class="child" style="--block-size-expected: 10; --inline-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+
+  <!-- Make sure the max-height property clamps the size. -->
+  <div class="child" style="max-height: 25px; --block-size-expected: 25; --inline-size-expected: 8;">
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- Make sure the min-height property clamps the size. -->
+  <div class="child" style="min-height: 25px; --block-size-expected: 25; --inline-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
+</script>
diff --git a/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html b/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html
new file mode 100644
index 0000000..63590c9
--- /dev/null
+++ b/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
+<link rel="match" href="layout-child-ref.html">
+<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
+
+<style>
+.test {
+  writing-mode: vertical-rl;
+  background: red;
+  margin: 10px;
+  height: 100px;
+}
+
+.child {
+  writing-mode: horizontal-tb;
+  visibility: hidden;
+  line-height: 0;
+
+  --available-block-size: 20;
+}
+
+.inline {
+  display: inline-block;
+  height: 8px;
+}
+
+.inline-size-10 { width: 10px; }
+.inline-size-30 { width: 30px; }
+
+@supports (display: layout(test)) {
+  .test {
+    background: green;
+    display: layout(test);
+  }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+  <!-- As the inlines don't fit within 20px, we'll end up with two lines. -->
+  <div class="child" style="--block-size-expected: 30; --inline-size-expected: 16;">
+    <span class="inline inline-size-10"></span>
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- The single inline doesn't take up the whole 20px, so will be shrink fitted. -->
+  <div class="child" style="--block-size-expected: 10; --inline-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+
+  <!-- Make sure the max-width property clamps the size. -->
+  <div class="child" style="max-width: 25px; --block-size-expected: 25; --inline-size-expected: 8;">
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- Make sure the min-width property clamps the size. -->
+  <div class="child" style="min-width: 25px; --block-size-expected: 25; --inline-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
+</script>
diff --git a/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html b/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html
new file mode 100644
index 0000000..815f525
--- /dev/null
+++ b/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize">
+<link rel="match" href="layout-child-ref.html">
+<meta name="assert" content="This test checks that setting the available inline size of children works as expected." />
+
+<style>
+.test {
+  writing-mode: vertical-rl;
+  background: red;
+  margin: 10px;
+  height: 100px;
+}
+
+.child {
+  writing-mode: vertical-rl;
+  visibility: hidden;
+  line-height: 0;
+
+  --available-inline-size: 20;
+}
+
+.inline {
+  display: inline-block;
+  width: 8px;
+}
+
+.inline-size-10 { height: 10px; }
+.inline-size-30 { height: 30px; }
+
+@supports (display: layout(test)) {
+  .test {
+    background: green;
+    display: layout(test);
+  }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+  <!-- As the inlines don't fit within 20px, we'll end up with two lines. -->
+  <div class="child" style="--inline-size-expected: 30; --block-size-expected: 16;">
+    <span class="inline inline-size-10"></span>
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- The single inline doesn't take up the whole 20px, so will be shrink fitted. -->
+  <div class="child" style="--inline-size-expected: 10; --block-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+
+  <!-- Make sure the max-height property clamps the size. -->
+  <div class="child" style="max-height: 25px; --inline-size-expected: 25; --block-size-expected: 8;">
+    <span class="inline inline-size-30"></span>
+  </div>
+
+  <!-- Make sure the min-height property clamps the size. -->
+  <div class="child" style="min-height: 25px; --inline-size-expected: 25; --block-size-expected: 8;">
+    <span class="inline inline-size-10"></span>
+  </div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
+</script>
diff --git a/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html b/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
index 1fbfec9..cc44484 100644
--- a/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
+++ b/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html
@@ -57,5 +57,5 @@
 </div>
 
 <script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
 </script>
diff --git a/css/css-layout-api/perform-child-layout-fixed-block-size.https.html b/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
index a158840..add1a3d 100644
--- a/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
+++ b/css/css-layout-api/perform-child-layout-fixed-block-size.https.html
@@ -56,5 +56,5 @@
 </div>
 
 <script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
 </script>
diff --git a/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html b/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
index 8fab5e4..42e9c56 100644
--- a/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
+++ b/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html
@@ -57,5 +57,5 @@
 </div>
 
 <script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
 </script>
diff --git a/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html b/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
index 79d2aca..188e586 100644
--- a/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
+++ b/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html
@@ -56,5 +56,5 @@
 </div>
 
 <script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
 </script>
diff --git a/css/css-layout-api/support/layout-child-fixed-sizes-worklet.js b/css/css-layout-api/support/layout-child-fixed-sizes-worklet.js
deleted file mode 100644
index 7315573..0000000
--- a/css/css-layout-api/support/layout-child-fixed-sizes-worklet.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import {areArraysEqual} from '/common/arrays.js';
-
-function parseNumber(value) {
-  const num = parseInt(value.toString());
-  if (isNaN(num)) return undefined;
-  return num;
-}
-
-registerLayout('test', class {
-  static get childInputProperties() {
-    return [
-      '--fixed-inline-size',
-      '--fixed-block-size',
-      '--inline-size-expected',
-      '--block-size-expected'
-    ];
-  }
-
-  *intrinsicSizes() {}
-  *layout(children, edges, constraints, styleMap) {
-    const childFragments = yield children.map((child) => {
-      const childConstraints = {};
-      const fixedInlineSize = parseNumber(child.styleMap.get('--fixed-inline-size'));
-      const fixedBlockSize = parseNumber(child.styleMap.get('--fixed-block-size'));
-      return child.layoutNextFragment({fixedInlineSize, fixedBlockSize});
-    });
-
-    const actual = childFragments.map((childFragment) => {
-      return {
-        inlineSize: childFragment.inlineSize,
-        blockSize: childFragment.blockSize,
-      };
-    });
-
-    const expected = children.map((child) => {
-      return {
-        inlineSize: parseInt(child.styleMap.get('--inline-size-expected').toString()),
-        blockSize: parseInt(child.styleMap.get('--block-size-expected').toString()),
-      };
-    });
-
-    const equalityFunc = (a, b) => {
-      return a.inlineSize == b.inlineSize && a.blockSize == b.blockSize;
-    };
-
-    if (!areArraysEqual(expected, actual, equalityFunc)) {
-      return {autoBlockSize: 0, childFragments};
-    }
-
-    return {autoBlockSize: 100, childFragments};
-  }
-});
diff --git a/css/css-layout-api/support/layout-child-sizes-worklet.js b/css/css-layout-api/support/layout-child-sizes-worklet.js
new file mode 100644
index 0000000..7531f69
--- /dev/null
+++ b/css/css-layout-api/support/layout-child-sizes-worklet.js
@@ -0,0 +1,61 @@
+import {areArraysEqual} from '/common/arrays.js';
+
+function parseNumber(value) {
+  const num = parseInt(value.toString());
+  if (isNaN(num)) return undefined;
+  return num;
+}
+
+registerLayout('test', class {
+  static get childInputProperties() {
+    return [
+      '--available-inline-size',
+      '--available-block-size',
+      '--fixed-inline-size',
+      '--fixed-block-size',
+      '--inline-size-expected',
+      '--block-size-expected'
+    ];
+  }
+
+  *intrinsicSizes() {}
+  *layout(children, edges, constraints, styleMap) {
+    const childFragments = yield children.map((child) => {
+      const childConstraints = {};
+      const availableInlineSize = parseNumber(child.styleMap.get('--available-inline-size'));
+      const availableBlockSize = parseNumber(child.styleMap.get('--available-block-size'));
+      const fixedInlineSize = parseNumber(child.styleMap.get('--fixed-inline-size'));
+      const fixedBlockSize = parseNumber(child.styleMap.get('--fixed-block-size'));
+      return child.layoutNextFragment({
+        availableInlineSize,
+        availableBlockSize,
+        fixedInlineSize,
+        fixedBlockSize
+      });
+    });
+
+    const actual = childFragments.map((childFragment) => {
+      return {
+        inlineSize: childFragment.inlineSize,
+        blockSize: childFragment.blockSize,
+      };
+    });
+
+    const expected = children.map((child) => {
+      return {
+        inlineSize: parseInt(child.styleMap.get('--inline-size-expected').toString()),
+        blockSize: parseInt(child.styleMap.get('--block-size-expected').toString()),
+      };
+    });
+
+    const equalityFunc = (a, b) => {
+      return a.inlineSize == b.inlineSize && a.blockSize == b.blockSize;
+    };
+
+    if (!areArraysEqual(expected, actual, equalityFunc)) {
+      return {autoBlockSize: 0, childFragments};
+    }
+
+    return {autoBlockSize: 100, childFragments};
+  }
+});
diff --git a/css/css-logical/logicalprops-block-size-vlr.html b/css/css-logical/logicalprops-block-size-vlr.html
index 4c8c13e..da02e75 100644
--- a/css/css-logical/logicalprops-block-size-vlr.html
+++ b/css/css-logical/logicalprops-block-size-vlr.html
@@ -6,62 +6,41 @@
 <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="resources/style-check.js"></script>
+<script src="/resources/check-layout-th.js"></script>
 
 <style>
-div {
+.block {
   border: 1px solid #000;
   writing-mode: vertical-lr;
 }
-#div1 {
+#block1 {
   block-size: 40px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#div2 {
+#block2 {
   block-size: 100px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#div3 {
+#block3 {
   block-size: 120px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#ref_div1 {
-  width: 40px;
-  min-width: 50px;
-  max-width: 100px;
-}
-#ref_div2 {
-  width: 100px;
-  min-width: 50px;
-  max-width: 100px;
-}
-#ref_div3 {
-  width: 120px;
-  min-width: 50px;
-  max-width: 100px;
-}
 
-p {
+.override {
   border: 1px solid #000;
   writing-mode: vertical-lr;
 }
-#p1 {
+#override1 {
   block-size: 100px;
   width: 50px;
 }
-#p2 {
+#override2 {
   width: 50px;
   block-size: 100px;
 }
-#ref_p1 {
-  width: 50px;
-}
-#ref_p2 {
-  width: 100px;
-}
 
 .table {
   border: 1px solid #000;
@@ -70,7 +49,6 @@
 }
 .tablecell {
   display: table-cell;
-  writing-mode: vertical-lr;
 }
 #table1_cell {
   block-size: 40px;
@@ -93,75 +71,52 @@
   inline-size: 100px;
   background-color: green;
 }
-#ref_table1_cell {
-  width: 40px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: red;
-}
-#ref_table2_cell {
-  width: 100px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: blue;
-}
-#ref_table3_cell {
-  width: 120px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: green;
-}
 </style>
 
-<div id="div1"></div>
-<div id="div2"></div>
-<div id="div3"></div>
-<div id="ref_div1"></div>
-<div id="ref_div2"></div>
-<div id="ref_div3"></div>
+<div id="log"></div>
 
-<p id="p1"></div>
-<p id="p2"></div>
-<p id="ref_p1"></div>
-<p id="ref_p2"></div>
+<h3>Maximum and minimim block sizes in blocks with vertical-lr</h3>
+<div>
+  <p><code>block-size</code> &lt; <code>min-block-size</code></p>
+  <div class="block" id="block1" data-expected-client-width="50" data-expected-client-height="0"></div>
 
-<div class="table">
-  <div class="tablecell" id="table1_cell"></div>
+  <p><code>min-block-size</code> &lt; <code>block-size</code> &le; <code>max-block-size</code></p>
+  <div class="block" id="block2" data-expected-client-width="100" data-expected-client-height="0"></div>
+
+  <p><code>block-size</code> &gt; <code>max-block-size</code></p>
+  <div class="block" id="block3" data-expected-client-width="100" data-expected-client-height="0"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table2_cell"></div>
+
+<h3>Overridance of <code>width</code> and <code>block-size</code> in vertical-lr</h3>
+<div>
+  <p>Check that <code>width</code> overrides <code>block-size</code></p>
+  <div class="override" id="override1" data-expected-client-width="50" data-expected-client-height="0"></div>
+
+  <p>Check that <code>block-size</code> overrides <code>width</code></p>
+  <div class="override" id="override2" data-expected-client-width="100" data-expected-client-height="0"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table3_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table1_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table2_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table3_cell"></div>
+
+<h3>Maximum and minimim block sizes in table cells with vertical-lr</h3>
+<div>
+  <p><code>block-size</code> &lt; <code>min-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table1_cell" data-expected-client-width="40" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>min-block-size</code> &lt; <code>block-size</code> &le; <code>max-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table2_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>block-size</code> &gt; <code>max-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table3_cell" data-expected-client-width="120" data-expected-client-height="100"></div>
+  </div>
 </div>
 
 <script>
-test(function () {
-  assert_true(compareWidthHeight("div1", "ref_div1"));
-  assert_true(compareWidthHeight("div2", "ref_div2"));
-  assert_true(compareWidthHeight("div3", "ref_div3"));
-}, "Check that block-size < min-block-size or min-block-size < block-size <= max-block-size or block-size > max-block-size in vertical-lr");
-
-test(function () {
-  assert_true(compareWidthHeight("p1", "ref_p1"));
-  assert_true(compareWidthHeight("p2", "ref_p2"));
-}, "Check that width override block-size and vice versa in vertical-lr");
-
-test(function () {
-  assert_true(compareWidthHeight("table1_cell", "ref_table1_cell"));
-  assert_true(compareWidthHeight("table2_cell", "ref_table2_cell"));
-  assert_true(compareWidthHeight("table3_cell", "ref_table3_cell"));
-}, "Check that block-size < min-block-size or min-block-size < block-size <= max-block-size or block-size > max-block-size in table vertical-lr");
+checkLayout(".block", false);
+checkLayout(".override", false);
+checkLayout(".tablecell", false);
+done();
 </script>
diff --git a/css/css-logical/logicalprops-block-size.html b/css/css-logical/logicalprops-block-size.html
index 66cb318..8d90c07 100644
--- a/css/css-logical/logicalprops-block-size.html
+++ b/css/css-logical/logicalprops-block-size.html
@@ -6,60 +6,43 @@
 <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="resources/style-check.js"></script>
+<script src="/resources/check-layout-th.js"></script>
 
 <style>
-div {
+.tests {
+  width: 600px;
+}
+
+.block {
   border: 1px solid #000;
 }
-#div1 {
+#block1 {
   block-size: 40px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#div2 {
+#block2 {
   block-size: 100px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#div3 {
+#block3 {
   block-size: 120px;
   min-block-size: 50px;
   max-block-size: 100px;
 }
-#ref_div1 {
-  height: 40px;
-  min-height: 50px;
-  max-height: 100px;
-}
-#ref_div2 {
-  height: 100px;
-  min-height: 50px;
-  max-height: 100px;
-}
-#ref_div3 {
-  height: 120px;
-  min-height: 50px;
-  max-height: 100px;
-}
 
-p {
+.override {
   border: 1px solid #000;
 }
-#p1 {
+#override1 {
   block-size: 100px;
   height: 50px;
 }
-#p2 {
+#override2 {
   height: 50px;
   block-size: 100px;
 }
-#ref_p1 {
-  height: 50px;
-}
-#ref_p2 {
-  height: 100px;
-}
 
 .table {
   border: 1px solid #000;
@@ -89,75 +72,52 @@
   inline-size: 100px;
   background-color: green;
 }
-#ref_table1_cell {
-  height: 40px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: red;
-}
-#ref_table2_cell {
-  height: 100px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: blue;
-}
-#ref_table3_cell {
-  height: 120px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: green;
-}
 </style>
 
-<div id="div1"></div>
-<div id="div2"></div>
-<div id="div3"></div>
-<div id="ref_div1"></div>
-<div id="ref_div2"></div>
-<div id="ref_div3"></div>
+<div id="log"></div>
 
-<p id="p1"></div>
-<p id="p2"></div>
-<p id="ref_p1"></div>
-<p id="ref_p2"></div>
+<h3>Maximum and minimim block sizes in blocks</h3>
+<div class="tests">
+  <p><code>block-size</code> &lt; <code>min-block-size</code></p>
+  <div class="block" id="block1" data-expected-width="600" data-expected-client-height="50"></div>
 
-<div class="table">
-  <div class="tablecell" id="table1_cell"></div>
+  <p><code>min-block-size</code> &lt; <code>block-size</code> &le; <code>max-block-size</code></p>
+  <div class="block" id="block2" data-expected-width="600" data-expected-client-height="100"></div>
+
+  <p><code>block-size</code> &gt; <code>max-block-size</code></p>
+  <div class="block" id="block3" data-expected-width="600" data-expected-client-height="100"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table2_cell"></div>
+
+<h3>Overridance of <code>height</code> and <code>block-size</code></h3>
+<div class="tests">
+  <p>Check that <code>height</code> overrides <code>block-size</code></p>
+  <div class="override" id="override1" data-expected-width="600" data-expected-client-height="50"></div>
+
+  <p>Check that <code>block-size</code> overrides <code>height</code></p>
+  <div class="override" id="override2" data-expected-width="600" data-expected-client-height="100"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table3_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table1_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table2_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table3_cell"></div>
+
+<h3>Maximum and minimim block sizes in table cells</h3>
+<div class="tests">
+  <p><code>block-size</code> &lt; <code>min-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table1_cell" data-expected-client-width="100" data-expected-client-height="40"></div>
+  </div>
+
+  <p><code>min-block-size</code> &lt; <code>block-size</code> &le; <code>max-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table2_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>block-size</code> &gt; <code>max-block-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table3_cell" data-expected-client-width="100" data-expected-client-height="120"></div>
+  </div>
 </div>
 
 <script>
-test(function () {
-  assert_true(compareWidthHeight("div1", "ref_div1"));
-  assert_true(compareWidthHeight("div2", "ref_div2"));
-  assert_true(compareWidthHeight("div3", "ref_div3"));
-}, "Check that block-size < min-block-size or min-block-size < block-size <= max-block-size or block-size > max-block-size");
-
-test(function () {
-  assert_true(compareWidthHeight("p1", "ref_p1"));
-  assert_true(compareWidthHeight("p2", "ref_p2"));
-}, "Check that height override block-size and vice versa");
-
-test(function () {
-  assert_true(compareWidthHeight("table1_cell", "ref_table1_cell"));
-  assert_true(compareWidthHeight("table2_cell", "ref_table2_cell"));
-  assert_true(compareWidthHeight("table3_cell", "ref_table3_cell"));
-}, "Check that block-size < min-block-size or min-block-size < block-size <= max-block-size or block-size > max-block-size in table");
+checkLayout(".block", false);
+checkLayout(".override", false);
+checkLayout(".tablecell", false);
+done();
 </script>
diff --git a/css/css-logical/logicalprops-inline-size-vlr.html b/css/css-logical/logicalprops-inline-size-vlr.html
index 09e1700..0a53dbb 100644
--- a/css/css-logical/logicalprops-inline-size-vlr.html
+++ b/css/css-logical/logicalprops-inline-size-vlr.html
@@ -6,62 +6,41 @@
 <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="resources/style-check.js"></script>
+<script src="/resources/check-layout-th.js"></script>
 
 <style>
-div {
+.block {
   border: 1px solid #000;
   writing-mode: vertical-lr;
 }
-#div1 {
+#block1 {
   inline-size: 40px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#div2 {
+#block2 {
   inline-size: 100px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#div3 {
+#block3 {
   inline-size: 120px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#ref_div1 {
-  height: 40px;
-  min-height: 50px;
-  max-height: 100px;
-}
-#ref_div2 {
-  height: 100px;
-  min-height: 50px;
-  max-height: 100px;
-}
-#ref_div3 {
-  height: 120px;
-  min-height: 50px;
-  max-height: 100px;
-}
 
-p {
+.override {
   border: 1px solid #000;
   writing-mode: vertical-lr;
 }
-#p1 {
+#override1 {
   inline-size: 100px;
   height: 50px;
 }
-#p2 {
+#override2 {
   height: 50px;
   inline-size: 100px;
 }
-#ref_p1 {
-  height: 50px;
-}
-#ref_p2 {
-  height: 100px;
-}
 
 .table {
   border: 1px solid #000;
@@ -70,7 +49,6 @@
 }
 .tablecell {
   display: table-cell;
-  writing-mode: vertical-lr;
 }
 #table1_cell {
   inline-size: 40px;
@@ -93,75 +71,52 @@
   block-size: 100px;
   background-color: green;
 }
-#ref_table1_cell {
-  height: 40px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: red;
-}
-#ref_table2_cell {
-  height: 100px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: blue;
-}
-#ref_table3_cell {
-  height: 120px;
-  min-height: 50px;
-  max-height: 100px;
-  width: 100px;
-  background-color: green;
-}
 </style>
 
-<div id="div1"></div>
-<div id="div2"></div>
-<div id="div3"></div>
-<div id="ref_div1"></div>
-<div id="ref_div2"></div>
-<div id="ref_div3"></div>
+<div id="log"></div>
 
-<p id="p1"></div>
-<p id="p2"></div>
-<p id="ref_p1"></div>
-<p id="ref_p2"></div>
+<h3>Maximum and minimim inline sizes in blocks with vertical-lr</h3>
+<div>
+  <p><code>inline-size</code> &lt; <code>min-inline-size</code></p>
+  <div class="block" id="block1" data-expected-client-width="0" data-expected-client-height="50"></div>
 
-<div class="table">
-  <div class="tablecell" id="table1_cell"></div>
+  <p><code>min-inline-size</code> &lt; <code>inline-size</code> &le; <code>max-inline-size</code></p>
+  <div class="block" id="block2" data-expected-client-width="0" data-expected-client-height="100"></div>
+
+  <p><code>inline-size</code> &gt; <code>max-inline-size</code></p>
+  <div class="block" id="block3" data-expected-client-width="0" data-expected-client-height="100"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table2_cell"></div>
+
+<h3>Overridance of <code>height</code> and <code>inline-size</code> in vertical-lr</h3>
+<div>
+  <p>Check that <code>height</code> overrides <code>inline-size</code></p>
+  <div class="override" id="override1" data-expected-client-width="0" data-expected-client-height="50"></div>
+
+  <p>Check that <code>inline-size</code> overrides <code>height</code></p>
+  <div class="override" id="override2" data-expected-client-width="0" data-expected-client-height="100"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table3_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table1_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table2_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table3_cell"></div>
+
+<h3>Maximum and minimim inline sizes in table cells with vertical-lr</h3>
+<div>
+  <p><code>inline-size</code> &lt; <code>min-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table1_cell" data-expected-client-width="100" data-expected-client-height="50"></div>
+  </div>
+
+  <p><code>min-inline-size</code> &lt; <code>inline-size</code> &le; <code>max-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table2_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>inline-size</code> &gt; <code>max-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table3_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
 </div>
 
 <script>
-test(function () {
-  assert_true(compareWidthHeight("div1", "ref_div1"));
-  assert_true(compareWidthHeight("div2", "ref_div2"));
-  assert_true(compareWidthHeight("div3", "ref_div3"));
-}, "Check that inline-size < min-inline-size or min-inline-size < inline-size <= max-inline-size or inline-size > max-inline-size in vertical-lr");
-
-test(function () {
-  assert_true(compareWidthHeight("p1", "ref_p1"));
-  assert_true(compareWidthHeight("p2", "ref_p2"));
-}, "Check that height override inline-size and vice versa in vertical-lr");
-
-test(function () {
-  assert_true(compareWidthHeight("table1_cell", "ref_table1_cell"));
-  assert_true(compareWidthHeight("table2_cell", "ref_table2_cell"));
-  assert_true(compareWidthHeight("table3_cell", "ref_table3_cell"));
-}, "Check that inline-size < min-inline-size or min-inline-size < inline-size <= max-inline-size or inline-size > max-inline-size in table vertical-lr");
+checkLayout(".block", false);
+checkLayout(".override", false);
+checkLayout(".tablecell", false);
+done();
 </script>
diff --git a/css/css-logical/logicalprops-inline-size.html b/css/css-logical/logicalprops-inline-size.html
index 32ede09..3ec1699 100644
--- a/css/css-logical/logicalprops-inline-size.html
+++ b/css/css-logical/logicalprops-inline-size.html
@@ -6,60 +6,39 @@
 <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="resources/style-check.js"></script>
+<script src="/resources/check-layout-th.js"></script>
 
 <style>
-div {
+.block {
   border: 1px solid #000;
 }
-#div1 {
+#block1 {
   inline-size: 40px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#div2 {
+#block2 {
   inline-size: 100px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#div3 {
+#block3 {
   inline-size: 120px;
   min-inline-size: 50px;
   max-inline-size: 100px;
 }
-#ref_div1 {
-  width: 40px;
-  min-width: 50px;
-  max-width: 100px;
-}
-#ref_div2 {
-  width: 100px;
-  min-width: 50px;
-  max-width: 100px;
-}
-#ref_div3 {
-  width: 120px;
-  min-width: 50px;
-  max-width: 100px;
-}
 
-p {
+.override {
   border: 1px solid #000;
 }
-#p1 {
+#override1 {
   inline-size: 100px;
   width: 50px;
 }
-#p2 {
+#override2 {
   width: 50px;
   inline-size: 100px;
 }
-#ref_p1 {
-  width: 50px;
-}
-#ref_p2 {
-  width: 100px;
-}
 
 .table {
   border: 1px solid #000;
@@ -89,75 +68,52 @@
   block-size: 100px;
   background-color: green;
 }
-#ref_table1_cell {
-  width: 40px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: red;
-}
-#ref_table2_cell {
-  width: 100px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: blue;
-}
-#ref_table3_cell {
-  width: 120px;
-  min-width: 50px;
-  max-width: 100px;
-  height: 100px;
-  background-color: green;
-}
 </style>
 
-<div id="div1"></div>
-<div id="div2"></div>
-<div id="div3"></div>
-<div id="ref_div1"></div>
-<div id="ref_div2"></div>
-<div id="ref_div3"></div>
+<div id="log"></div>
 
-<p id="p1"></div>
-<p id="p2"></div>
-<p id="ref_p1"></div>
-<p id="ref_p2"></div>
+<h3>Maximum and minimim inline sizes in blocks</h3>
+<div>
+  <p><code>inline-size</code> &lt; <code>min-inline-size</code></p>
+  <div class="block" id="block1" data-expected-client-width="50" data-expected-client-height="0"></div>
 
-<div class="table">
-  <div class="tablecell" id="table1_cell"></div>
+  <p><code>min-inline-size</code> &lt; <code>inline-size</code> &le; <code>max-inline-size</code></p>
+  <div class="block" id="block2" data-expected-client-width="100" data-expected-client-height="0"></div>
+
+  <p><code>inline-size</code> &gt; <code>max-inline-size</code></p>
+  <div class="block" id="block3" data-expected-client-width="100" data-expected-client-height="0"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table2_cell"></div>
+
+<h3>Overridance of <code>width</code> and <code>inline-size</code></h3>
+<div>
+  <p>Check that <code>width</code> overrides <code>inline-size</code></p>
+  <div class="override" id="override1" data-expected-client-width="50" data-expected-client-height="0"></div>
+
+  <p>Check that <code>inline-size</code> overrides <code>width</code></p>
+  <div class="override" id="override2" data-expected-client-width="100" data-expected-client-height="0"></div>
 </div>
-<div class="table">
-  <div class="tablecell" id="table3_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table1_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell" id="ref_table2_cell"></div>
-</div>
-<div class="table">
-  <div class="tablecell"  id="ref_table3_cell"></div>
+
+<h3>Maximum and minimim inline sizes in table cells</h3>
+<div>
+  <p><code>inline-size</code> &lt; <code>min-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table1_cell" data-expected-client-width="50" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>min-inline-size</code> &lt; <code>inline-size</code> &le; <code>max-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table2_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
+
+  <p><code>inline-size</code> &gt; <code>max-inline-size</code></p>
+  <div class="table">
+    <div class="tablecell" id="table3_cell" data-expected-client-width="100" data-expected-client-height="100"></div>
+  </div>
 </div>
 
 <script>
-test(function () {
-  assert_true(compareWidthHeight("div1", "ref_div1"));
-  assert_true(compareWidthHeight("div2", "ref_div2"));
-  assert_true(compareWidthHeight("div3", "ref_div3"));
-}, "Check that inline-size < min-inline-size or min-inline-size < inline-size <= max-inline-size or inline-size > max-inline-size");
-
-test(function () {
-  assert_true(compareWidthHeight("p1", "ref_p1"));
-  assert_true(compareWidthHeight("p2", "ref_p2"));
-}, "Check that width override inline-size and vice versa");
-
-test(function () {
-  assert_true(compareWidthHeight("table1_cell", "ref_table1_cell"));
-  assert_true(compareWidthHeight("table2_cell", "ref_table2_cell"));
-  assert_true(compareWidthHeight("table3_cell", "ref_table3_cell"));
-}, "Check that inline-size < min-inline-size or min-inline-size < inline-size <= max-inline-size or inline-size > max-inline-size in table");
+checkLayout(".block", false);
+checkLayout(".override", false);
+checkLayout(".tablecell", false);
+done();
 </script>
diff --git a/css/css-logical/resources/style-check.js b/css/css-logical/resources/style-check.js
deleted file mode 100644
index cd129fd..0000000
--- a/css/css-logical/resources/style-check.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-function compareWidthHeight(id1, id2) {
-  var element1 = document.getElementById(id1);
-  var style1 = getComputedStyle(element1);
-  var element2 = document.getElementById(id2);
-  var style2 = getComputedStyle(element2);
-  return (style1.width == style2.width) &&
-      (style1.height == style2.height)
-}
diff --git a/css/css-masking/clip-path-svg-content/clip-path-css-transform-002.svg b/css/css-masking/clip-path-svg-content/clip-path-css-transform-002.svg
index cc21cb7..78b5762 100644
--- a/css/css-masking/clip-path-svg-content/clip-path-css-transform-002.svg
+++ b/css/css-masking/clip-path-svg-content/clip-path-css-transform-002.svg
@@ -11,10 +11,10 @@
 	cause masking in some implementations. A green square should be
 	visible.</desc>
 </g>
-<clipPath id="clip1" style="transform: scale(10) translate(2px, 2px);">
+<clipPath id="clip1" style="transform: scale(10) translate(5px, 5px);">
 	<rect width="10" height="10"/>
 	<!-- Second rect may cause masking -->
 	<rect width="5" height="4"/>
 </clipPath>
 <rect width="200" height="200" fill="green" clip-path="url(#clip1)"/>
-</svg>
\ No newline at end of file
+</svg>
diff --git a/css/css-masking/clip-path-svg-content/clip-path-dom-href.svg b/css/css-masking/clip-path-svg-content/clip-path-dom-href.svg
index 112c132..748ff2c 100644
--- a/css/css-masking/clip-path-svg-content/clip-path-dom-href.svg
+++ b/css/css-masking/clip-path-svg-content/clip-path-dom-href.svg
@@ -14,12 +14,12 @@
 	<rect width="200" height="200"/>
 </clipPath>
 
-<g clip-path="url(#noclip)">
+<g clip-path="url(#noclip)" id="target">
 	<rect width="400" height="400" fill="red"/>
 	<rect width="200" height="200" fill="green"/>
 </g>
 
 <script>
-document.getElementsByTagName("g")[0].setAttribute("clip-path", "url(#clip1)");
+document.getElementById("target").setAttribute("clip-path", "url(#clip1)");
 </script>
 </svg>
diff --git a/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-004-ref.svg b/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-004-ref.svg
new file mode 100644
index 0000000..8a25ffe
--- /dev/null
+++ b/css/css-masking/clip-path-svg-content/reference/clip-path-clip-rule-004-ref.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+  <polygon points="0 0, 150 0, 150 150, 0 150, 0 25, 125 25, 125 125, 25 125, 25 25, 0 25" fill-rule="evenodd" fill="green"/>
+  <polygon points="50 50, 200 50, 200 200, 50 200, 50 75, 175 75, 175 175, 75 175, 75 75, 50 75" fill-rule="evenodd" fill="green"/>
+</svg>
diff --git a/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html b/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html
index 846c5e7..6d6d77c 100644
--- a/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html
+++ b/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html
@@ -11,13 +11,13 @@
         On pass you should see a green with a blue border.">
 </head>
 <body>
-    <p>The test passes if there is a green box with a blue border.</p>
-    <div style="width: 150px; height: 100px; border: solid blue 50px; background-color: green; clip-path: url(#clip);"></div>
+    <p>The test passes if there is a green box.</p>
+    <div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: url(#clip);"></div>
 
     <svg>
         <clipPath id="clip">
-            <rect x="0" y="0" width="250px" height="200" />
+            <rect x="50" y="50" width="150px" height="100" />
         </clipPath>
     </svg>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-002.html b/css/css-masking/clip-path/clip-path-ellipse-002.html
index d6310de..36f63fc 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-002.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-002.html
@@ -13,7 +13,7 @@
 	On pass you should see a green ellipse.">
 </head>
 <body>
-	<p>The test passes if there is a green ellipse.</p>
+	<p>The test passes if there is a full green ellipse.</p>
 	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: ellipse(30% 25% at 50% 50%);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-003.html b/css/css-masking/clip-path/clip-path-ellipse-003.html
index e1c32bf..81ded18 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-003.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-003.html
@@ -13,7 +13,7 @@
 	On pass there should be a full green circle.">
 </head>
 <body>
-	<p>The test passes if there is a green circle.</p>
+	<p>The test passes if there is a full green circle.</p>
 	<div style="width: 200px; height: 200px; background-color: green; clip-path: ellipse(50% 50% at 50% 50%);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-004.html b/css/css-masking/clip-path/clip-path-ellipse-004.html
index 3a56b53..f62f958 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-004.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-004.html
@@ -11,7 +11,7 @@
 	should see a green ellipse.">
 </head>
 <body>
-	<p>The test passes if there is a green ellipse.</p>
+	<p>The test passes if there is a full green ellipse.</p>
 	<div style="width: 200px; height: 200px; background-color: green; clip-path: ellipse(75px 50px at 125px 100px);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-005.html b/css/css-masking/clip-path/clip-path-ellipse-005.html
index fd364cc..2e819e7 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-005.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-005.html
@@ -14,7 +14,7 @@
 	see a green ellipse.">
 </head>
 <body>
-	<p>The test passes if there is a green ellipse.</p>
+	<p>The test passes if there is a full green ellipse.</p>
 	<div style="width: 200px; height: 200px; background-color: green; clip-path: ellipse(37.5% 25% at 62.5% 50%);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-006.html b/css/css-masking/clip-path/clip-path-ellipse-006.html
index e261bac..fb20f02 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-006.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-006.html
@@ -5,13 +5,13 @@
 	<link rel="author" title="Dirk Schulze" href="mailto:dschulze@adobe.com">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
-	<link rel="match" href="reference/clip-path-circle-ref.html">
+	<link rel="match" href="reference/clip-path-ellipse-ref.html">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test absolute values for radii and position
 	arguments. On pass you should see a green circle.">
 </head>
 <body>
-	<p>The test passes if there is a green circle.</p>
-	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: ellipse();"></div>
+	<p>The test passes if there is a full green ellipse.</p>
+	<div style="width: 150px; height: 100px; position: absolute; margin: 50px; background-color: green; clip-path: ellipse();"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-007.html b/css/css-masking/clip-path/clip-path-ellipse-007.html
index 16cfce1..42d8b45 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-007.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-007.html
@@ -13,6 +13,6 @@
 </head>
 <body>
 	<p>The test passes if there is a full green ellipse.</p>
-	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: ellipse(farthest-side closest-side);"></div>
+	<div style="width: 150px; height: 100px; position: absolute; margin: 50px; background-color: green; clip-path: ellipse(farthest-side closest-side);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-ellipse-008.html b/css/css-masking/clip-path/clip-path-ellipse-008.html
index f56c645..12df558 100644
--- a/css/css-masking/clip-path/clip-path-ellipse-008.html
+++ b/css/css-masking/clip-path/clip-path-ellipse-008.html
@@ -16,6 +16,6 @@
 </head>
 <body>
 	<p>The test passes if there is a full green ellipse.</p>
-	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: ellipse(50% 50%);"></div>
+	<div style="width: 150px; height: 100px; position: absolute; margin: 50px; background-color: green; clip-path: ellipse(50% 50%);"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-polygon-001.html b/css/css-masking/clip-path/clip-path-polygon-001.html
index 565d747..954f0ba 100644
--- a/css/css-masking/clip-path/clip-path-polygon-001.html
+++ b/css/css-masking/clip-path/clip-path-polygon-001.html
@@ -11,7 +11,7 @@
 	see a green square and no red.">
 </head>
 <body>
-	<p>The test passes if there is a green square and no red.</p>
+	<p>The test passes if there is a green box.</p>
 	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: polygon(50px 50px, 200px 50px, 200px 150px, 50px 150px)"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-polygon-002.html b/css/css-masking/clip-path/clip-path-polygon-002.html
index 5d10048..ed2ede4 100644
--- a/css/css-masking/clip-path/clip-path-polygon-002.html
+++ b/css/css-masking/clip-path/clip-path-polygon-002.html
@@ -14,7 +14,7 @@
 	green square and no red.">
 </head>
 <body>
-	<p>The test passes if there is a green square and no red.</p>
+	<p>The test passes if there is a green box.</p>
 	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; clip-path: polygon(20% 25%, 80% 25%, 80% 75%, 20% 75%)"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-polygon-003.html b/css/css-masking/clip-path/clip-path-polygon-003.html
index b50f9c4..1ecf680 100644
--- a/css/css-masking/clip-path/clip-path-polygon-003.html
+++ b/css/css-masking/clip-path/clip-path-polygon-003.html
@@ -11,7 +11,7 @@
 	pass you should see a green square and no red.">
 </head>
 <body>
-	<p>The test passes if there is a green square and no red.</p>
+	<p>The test passes if there is a green box.</p>
 	<div style="width: 150px; height: 100px; border: solid red 50px; background-color: green; position: absolute; clip-path: polygon(20% 50px, 200px 25%, 200px 150px, 20% 75%)"></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-polygon-004.html b/css/css-masking/clip-path/clip-path-polygon-004.html
index e057d85..cec947a 100644
--- a/css/css-masking/clip-path/clip-path-polygon-004.html
+++ b/css/css-masking/clip-path/clip-path-polygon-004.html
@@ -7,7 +7,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-rectangle-border-ref.html">
 	<meta name="assert" content="The clip-path property takes the basic shape 'polygon' for clipping.
-		The point list for the polygon creates a 'whole' with the dimension of the background. With
+		The point list for the polygon creates a 'hole' with the dimension of the background. With
 		the fill rule 'evenodd', this whole is clipped out. The clipping makes the green background
 		of the parent div box visible.
 		On pass you should see a green box with a blue border.">
@@ -18,4 +18,4 @@
 		<div style="width: 150px; height: 100px; border: solid blue 50px; background-color: red; clip-path: polygon(evenodd, 0 0, 250px 0, 250px 200px, 0 200px, 0 50px, 200px 50px, 200px 150px, 50px 150px, 50px 50px, 0 50px)"></div>
 	</div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/clip-path/clip-path-polygon-005.html b/css/css-masking/clip-path/clip-path-polygon-005.html
index 497e7f3..b687f2e 100644
--- a/css/css-masking/clip-path/clip-path-polygon-005.html
+++ b/css/css-masking/clip-path/clip-path-polygon-005.html
@@ -14,9 +14,9 @@
 	square with a blue border.">
 </head>
 <body>
-	<p>The test passes if there is a green square with a blue border.</p>
+	<p>The test passes if there is a green box with a blue border.</p>
 	<div style="background-color: green; width: 250px;">
 		<div style="width: 150px; height: 100px; border: solid blue 50px; background-color: red; clip-path: polygon(nonzero, 0 0, 250px 0, 250px 200px, 0 200px, 0 50px, 50px 50px, 50px 150px, 200px 150px, 200px 50px, 0 50px)"></div>
 	</div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/css/css-masking/parsing/clip-invalid.html b/css/css-masking/parsing/clip-invalid.html
index 1ac795b..68b67c9 100644
--- a/css/css-masking/parsing/clip-invalid.html
+++ b/css/css-masking/parsing/clip-invalid.html
@@ -14,6 +14,7 @@
 <script>
 test_invalid_value("clip", "none");
 test_invalid_value("clip", "rect(10px, 20px, 30px)");
+test_invalid_value("clip", "rect(10%, -20%, auto, auto)");
 </script>
 </body>
 </html>
diff --git a/css/css-masking/parsing/clip-valid.html b/css/css-masking/parsing/clip-valid.html
index 24bb782..34a24ea 100644
--- a/css/css-masking/parsing/clip-valid.html
+++ b/css/css-masking/parsing/clip-valid.html
@@ -14,7 +14,7 @@
 <script>
 test_valid_value("clip", "auto");
 test_valid_value("clip", "rect(10px, 20px, -30px, 40px)", ["rect(10px, 20px, -30px, 40px)", "rect(10px 20px -30px 40px)"]);
-test_valid_value("clip", "rect(10%, -20%, auto, auto)");
+test_valid_value("clip", "rect(10px, -20px, auto, auto)", ["rect(10px, -20px, auto, auto)", "rect(10px -20px auto auto)"]);
 </script>
 </body>
 </html>
diff --git a/css/css-multicol/orthogonal-writing-mode-shrink-to-fit.html b/css/css-multicol/orthogonal-writing-mode-shrink-to-fit.html
new file mode 100644
index 0000000..b087f56
--- /dev/null
+++ b/css/css-multicol/orthogonal-writing-mode-shrink-to-fit.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Orthogonal writing mode root inside shrink-to-fit multicol container</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-sizes" title="4.1. Intrinsic Sizes">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; height:100px; background:red;">
+  <div style="float:left; columns:1; column-gap:0; height:100px; background:green;">
+    <div style="writing-mode:vertical-rl;">
+      <div style="width:100px; height:100px;"></div>
+    </div>
+  </div>
+</div>
diff --git a/css/css-pseudo/first-line-and-placeholder-ref.html b/css/css-pseudo/first-line-and-placeholder-ref.html
new file mode 100644
index 0000000..dbadd36
--- /dev/null
+++ b/css/css-pseudo/first-line-and-placeholder-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+input::placeholder {
+    color: red;
+}
+</style>
+<form>
+  <input placeholder="this text should be red">
+</form>
diff --git a/css/css-pseudo/first-line-and-placeholder.html b/css/css-pseudo/first-line-and-placeholder.html
new file mode 100644
index 0000000..2db3480
--- /dev/null
+++ b/css/css-pseudo/first-line-and-placeholder.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Interaction of ::first-line and ::placeholder</title>
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#first-line-pseudo">
+<link rel="match" href="first-line-and-placeholder-ref.html">
+<meta name="assert" content="Tests ::placeholder interaction with ::first-line pseudo element">
+<style>
+input::first-line {
+    background-color: initial;
+}
+
+input::placeholder {
+    color: red;
+}
+</style>
+<form>
+  <input placeholder="this text should be red">
+</form>
diff --git a/css/css-regions/test-plan/index.html b/css/css-regions/test-plan/index.html
index b37ef4d..388d1c7 100644
--- a/css/css-regions/test-plan/index.html
+++ b/css/css-regions/test-plan/index.html
@@ -163,7 +163,7 @@
         <h3>Big number of tests required</h3>
         <div class="note">
           Add here the estimation of tests required produced by
-          <a href="https://github.com/w3c/web-platform-tests/tree/master/tools/coverage" target="_blank">W3C test coverage</a>
+          <a href="https://github.com/web-platform-tests/wpt/tree/master/tools/coverage" target="_blank">W3C test coverage</a>
           tool. If possible, provide a better informed guess on the number of tests.
         </div>
         <p>
diff --git a/css/css-scoping/resources/host-green-box.css b/css/css-scoping/resources/host-green-box.css
new file mode 100644
index 0000000..a77b3fd
--- /dev/null
+++ b/css/css-scoping/resources/host-green-box.css
@@ -0,0 +1,5 @@
+:host {
+  background: green;
+  width: 100px;
+  height: 100px;
+}
diff --git a/css/css-scoping/shadow-at-import.html b/css/css-scoping/shadow-at-import.html
new file mode 100644
index 0000000..1adf516
--- /dev/null
+++ b/css/css-scoping/shadow-at-import.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<title>CSS Test: @import in Shadow DOM</title>
+<link rel="help" href="https://drafts.csswg.org/css-cascade/#at-import">
+<link rel="match" href="reference/green-box.html"/>
+<p>Test passes if you see a single 100px by 100px green box below.</p>
+<div id="host">FAIL</div>
+<script>
+  host.attachShadow({ mode: "open" }).innerHTML = `
+    <style>
+      @import url("resources/host-green-box.css");
+    </style>
+  `;
+</script>
diff --git a/css/css-scrollbars/OWNERS b/css/css-scrollbars/OWNERS
new file mode 100644
index 0000000..8a5dc67
--- /dev/null
+++ b/css/css-scrollbars/OWNERS
@@ -0,0 +1 @@
+@tantek
diff --git a/css/css-scrollbars/support/viewport-scrollbar-body-frame.html b/css/css-scrollbars/support/viewport-scrollbar-body-frame.html
new file mode 100644
index 0000000..74c02f9
--- /dev/null
+++ b/css/css-scrollbars/support/viewport-scrollbar-body-frame.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<style>
+body {
+  scrollbar-track-color: blue;
+  scrollbar-face-color: yellow;
+}
+html, body {
+  margin: 0;
+  padding: 0;
+}
+#inner {
+  width: 400px;
+  height: 400px;
+}
+</style>
+<body>
+<div id="inner"></div>
+</body>
diff --git a/css/css-scrollbars/support/viewport-scrollbar-frame.html b/css/css-scrollbars/support/viewport-scrollbar-frame.html
new file mode 100644
index 0000000..9510102
--- /dev/null
+++ b/css/css-scrollbars/support/viewport-scrollbar-frame.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<style>
+html {
+  scrollbar-track-color: blue;
+  scrollbar-face-color: yellow;
+}
+html, body {
+  margin: 0;
+  padding: 0;
+}
+#inner {
+  width: 400px;
+  height: 400px;
+}
+</style>
+<div id="inner"></div>
diff --git a/css/css-scrollbars/viewport-scrollbar-body-ref.html b/css/css-scrollbars/viewport-scrollbar-body-ref.html
new file mode 100644
index 0000000..4e07903
--- /dev/null
+++ b/css/css-scrollbars/viewport-scrollbar-body-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>CSS Reference: unstyled scrollbars</title>
+<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color-properties">
+<style>
+#outer {
+  border: 1px solid black;
+  width: 200px; height: 200px;
+  overflow: scroll;
+}
+#inner {
+  width: 400px; height: 400px;
+}
+</style>
+<p>Test passes if the scrollbars in the following box are NOT styled:</p>
+<div id="outer">
+  <div id="inner">
+  </div>
+</div>
diff --git a/css/css-scrollbars/viewport-scrollbar-body.html b/css/css-scrollbars/viewport-scrollbar-body.html
new file mode 100644
index 0000000..a1b3aee
--- /dev/null
+++ b/css/css-scrollbars/viewport-scrollbar-body.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>CSS Test: scrollbar style on body element should not be propagated to the viewport</title>
+<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color-properties">
+<link rel="match" href="viewport-scrollbar-body-ref.html">
+<style>
+iframe {
+  border: 1px solid black;
+  width: 200px; height: 200px;
+}
+</style>
+<p>Test passes if the scrollbars in the following box are NOT styled:</p>
+<iframe src="support/viewport-scrollbar-body-frame.html"></iframe>
diff --git a/css/css-scrollbars/viewport-scrollbar-ref.html b/css/css-scrollbars/viewport-scrollbar-ref.html
new file mode 100644
index 0000000..42463d3
--- /dev/null
+++ b/css/css-scrollbars/viewport-scrollbar-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>CSS Reference: styled scrollbars</title>
+<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color-properties">
+<style>
+#outer {
+  border: 1px solid black;
+  width: 200px; height: 200px;
+  overflow: scroll;
+  scrollbar-track-color: blue;
+  scrollbar-face-color: yellow;
+}
+#inner {
+  width: 400px; height: 400px;
+}
+</style>
+<p>Test passes if the scrollbars in the following box are styled:</p>
+<div id="outer">
+  <div id="inner">
+  </div>
+</div>
diff --git a/css/css-scrollbars/viewport-scrollbar.html b/css/css-scrollbars/viewport-scrollbar.html
new file mode 100644
index 0000000..500da7a
--- /dev/null
+++ b/css/css-scrollbars/viewport-scrollbar.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>CSS Test: scrollbar style on root element should be propagated to the viewport</title>
+<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color-properties">
+<link rel="match" href="viewport-scrollbar-ref.html">
+<style>
+iframe {
+  border: 1px solid black;
+  width: 200px; height: 200px;
+}
+</style>
+<p>Test passes if the scrollbars in the following box are styled:</p>
+<iframe src="support/viewport-scrollbar-frame.html"></iframe>
diff --git a/css/css-shadow-parts/invalidation-change-part-name.html b/css/css-shadow-parts/invalidation-change-part-name.html
new file mode 100644
index 0000000..7e7a310
--- /dev/null
+++ b/css/css-shadow-parts/invalidation-change-part-name.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS Shadow Parts - Invalidation Change Part Name</title>
+    <meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
+    <link href="http://www.google.com/" rel="author" title="Google">
+    <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="support/shadow-helper.js"></script>
+  </head>
+  <body>
+    <style>#c-e::part(partp) { color: red; }</style>
+    <script>installCustomElement("custom-element", "custom-element-template");</script>
+    <template id="custom-element-template">
+      <style>span { color: green; }</style>
+      <span id="part" part="partp">This text</span>
+    </template>
+    The following text should be green:
+    <div><custom-element id="c-e"></custom-element></div>
+    <script type="text/javascript">
+      "use strict";
+      test(function() {
+        var part = getElementByShadowIds(document, ["c-e", "part"]);
+        var before = window.getComputedStyle(part).color;
+        part.setAttribute("part", "new-partp");
+        var after = window.getComputedStyle(part).color;
+        assert_not_equals(before, after);
+      }, "Part in selected host changed color");
+    </script>
+  </body>
+</html>
diff --git a/css/css-shadow-parts/invalidation-complex-selector.html b/css/css-shadow-parts/invalidation-complex-selector.html
new file mode 100644
index 0000000..e1f10e5
--- /dev/null
+++ b/css/css-shadow-parts/invalidation-complex-selector.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS Shadow Parts - Invalidation Complex Selector</title>
+    <meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
+    <link href="http://www.google.com/" rel="author" title="Google">
+    <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="support/shadow-helper.js"></script>
+  </head>
+  <body>
+    <style>#elem #c-e::part(partp) { color: red; }</style>
+    <script>installCustomElement("custom-element", "custom-element-template");</script>
+    <template id="custom-element-template">
+      <style>span { color: green; }</style>
+      <span id="part" part="partp">This text</span>
+    </template>
+    The following text should be green:
+    <div id="elem"><custom-element id="c-e"></custom-element></div>
+    <script type="text/javascript">
+      "use strict";
+      test(function() {
+        var part = getElementByShadowIds(document, ["c-e", "part"]);
+        var before = window.getComputedStyle(part).color;
+        document.getElementById("elem").setAttribute("id", "new-elem");
+        var after = window.getComputedStyle(part).color;
+        assert_not_equals(before, after);
+      }, "Part in selected host changed color");
+    </script>
+  </body>
+</html>
diff --git a/css/css-sizing/whitespace-and-break.html b/css/css-sizing/whitespace-and-break.html
new file mode 100644
index 0000000..f3ea376
--- /dev/null
+++ b/css/css-sizing/whitespace-and-break.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<title>Collapsable whitespace and break after inline-block</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-sizes" title="4.1. Intrinsic Sizes">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:fit-content; background:red;">
+  <div style="display:inline-block; vertical-align:top; width:100px; height:100px; background:green;"></div>
+  <br>
+</div>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-001.html b/css/css-text/i18n/css3-text-line-break-jazh-001.html
deleted file mode 100644
index e66d87d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-001.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-001-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3041 HIRAGANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3041;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-002.html b/css/css-text/i18n/css3-text-line-break-jazh-002.html
deleted file mode 100644
index 3e5cdc6..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-002.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-002-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3043 HIRAGANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3043;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-003.html b/css/css-text/i18n/css3-text-line-break-jazh-003.html
deleted file mode 100644
index 549d248..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-003.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-003-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3045 HIRAGANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3045;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-004.html b/css/css-text/i18n/css3-text-line-break-jazh-004.html
deleted file mode 100644
index 078fc1d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-004.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-004-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3047 HIRAGANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3047;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-005.html b/css/css-text/i18n/css3-text-line-break-jazh-005.html
deleted file mode 100644
index 395f905..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-005.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-005-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3049 HIRAGANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3049;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-006.html b/css/css-text/i18n/css3-text-line-break-jazh-006.html
deleted file mode 100644
index 21c594e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-006.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-006-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3063 HIRAGANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3063;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-007.html b/css/css-text/i18n/css3-text-line-break-jazh-007.html
deleted file mode 100644
index d2baa06..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-007.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-007-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3083 HIRAGANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3083;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-008.html b/css/css-text/i18n/css3-text-line-break-jazh-008.html
deleted file mode 100644
index bffdf99..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-008.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-008-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3085 HIRAGANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3085;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-009.html b/css/css-text/i18n/css3-text-line-break-jazh-009.html
deleted file mode 100644
index 290ee31..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-009.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-009-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3087 HIRAGANA LETTER SMALL YO  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3087;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-010.html b/css/css-text/i18n/css3-text-line-break-jazh-010.html
deleted file mode 100644
index 570b6db..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-010.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-010-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 308E HIRAGANA LETTER SMALL WA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x308E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-011.html b/css/css-text/i18n/css3-text-line-break-jazh-011.html
deleted file mode 100644
index 370da94..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-011.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-011-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3095 HIRAGANA LETTER SMALL KA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3095;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-012.html b/css/css-text/i18n/css3-text-line-break-jazh-012.html
deleted file mode 100644
index 510d268..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-012.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-012-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3096 HIRAGANA LETTER SMALL KE  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3096;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-013.html b/css/css-text/i18n/css3-text-line-break-jazh-013.html
deleted file mode 100644
index b076b3c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-013.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-013-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A1 KATAKANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A1;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-014.html b/css/css-text/i18n/css3-text-line-break-jazh-014.html
deleted file mode 100644
index 2349d5a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-014.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-014-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A3 KATAKANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-015.html b/css/css-text/i18n/css3-text-line-break-jazh-015.html
deleted file mode 100644
index e5b7733..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-015.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-015-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A5 KATAKANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-016.html b/css/css-text/i18n/css3-text-line-break-jazh-016.html
deleted file mode 100644
index 29c1914..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-016.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-016-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A7 KATAKANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-017.html b/css/css-text/i18n/css3-text-line-break-jazh-017.html
deleted file mode 100644
index 7a97acb..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-017.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-017-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A9 KATAKANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A9;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-018.html b/css/css-text/i18n/css3-text-line-break-jazh-018.html
deleted file mode 100644
index 55019a7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-018.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-018-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30C3 KATAKANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30C3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-019.html b/css/css-text/i18n/css3-text-line-break-jazh-019.html
deleted file mode 100644
index 275adf9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-019.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-019-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30E3 KATAKANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-020.html b/css/css-text/i18n/css3-text-line-break-jazh-020.html
deleted file mode 100644
index 7109f5e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-020.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-020-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30E5 KATAKANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-021.html b/css/css-text/i18n/css3-text-line-break-jazh-021.html
deleted file mode 100644
index 72a2437..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-021.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-021-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30E7 KATAKANA LETTER SMALL YO at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-022.html b/css/css-text/i18n/css3-text-line-break-jazh-022.html
deleted file mode 100644
index 7f95315..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-022.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-022-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30EE KATAKANA LETTER SMALL WA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30EE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-023.html b/css/css-text/i18n/css3-text-line-break-jazh-023.html
deleted file mode 100644
index 9064330..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-023.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-023-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30F5 KATAKANA LETTER SMALL KA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-024.html b/css/css-text/i18n/css3-text-line-break-jazh-024.html
deleted file mode 100644
index 99b847b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-024.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-024-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30F6 KATAKANA LETTER SMALL KE at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F6;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-025.html b/css/css-text/i18n/css3-text-line-break-jazh-025.html
deleted file mode 100644
index 5c17b1f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-025.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-025-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FC;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-026.html b/css/css-text/i18n/css3-text-line-break-jazh-026.html
deleted file mode 100644
index 6b5dd2e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-026.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-026-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-027.html b/css/css-text/i18n/css3-text-line-break-jazh-027.html
deleted file mode 100644
index f9514c2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-027.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-027-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-028.html b/css/css-text/i18n/css3-text-line-break-jazh-028.html
deleted file mode 100644
index 0d74635..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-028.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-028-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-029.html b/css/css-text/i18n/css3-text-line-break-jazh-029.html
deleted file mode 100644
index 5002f80..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-029.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-029-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x30A0;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-030.html b/css/css-text/i18n/css3-text-line-break-jazh-030.html
deleted file mode 100644
index a875f7a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-030.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-030-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-031.html b/css/css-text/i18n/css3-text-line-break-jazh-031.html
deleted file mode 100644
index 89595de..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-031.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-031-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-032.html b/css/css-text/i18n/css3-text-line-break-jazh-032.html
deleted file mode 100644
index e1bea31..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-032.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-032-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 309D HIRAGANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-033.html b/css/css-text/i18n/css3-text-line-break-jazh-033.html
deleted file mode 100644
index 40e1dee..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-033.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-033-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 309E HIRAGANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-034.html b/css/css-text/i18n/css3-text-line-break-jazh-034.html
deleted file mode 100644
index a26d75e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-034.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-034-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FD KATAKANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-035.html b/css/css-text/i18n/css3-text-line-break-jazh-035.html
deleted file mode 100644
index 7ba2d56..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-035.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-035-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FE KATAKANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-036.html b/css/css-text/i18n/css3-text-line-break-jazh-036.html
deleted file mode 100644
index 29676f5..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-036.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-036-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003A COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-037.html b/css/css-text/i18n/css3-text-line-break-jazh-037.html
deleted file mode 100644
index 4642fd4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-037.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-037-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003B SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-038.html b/css/css-text/i18n/css3-text-line-break-jazh-038.html
deleted file mode 100644
index e3614dd..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-038.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-038-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FB KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-039.html b/css/css-text/i18n/css3-text-line-break-jazh-039.html
deleted file mode 100644
index 51a7f12..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-039.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-039-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-040.html b/css/css-text/i18n/css3-text-line-break-jazh-040.html
deleted file mode 100644
index 58831ae..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-040.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-040-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-041.html b/css/css-text/i18n/css3-text-line-break-jazh-041.html
deleted file mode 100644
index c8be998..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-041.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-041-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF65 HALFWIDTH KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-042.html b/css/css-text/i18n/css3-text-line-break-jazh-042.html
deleted file mode 100644
index ace3244..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-042.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-042-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0021 EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x0021;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-043.html b/css/css-text/i18n/css3-text-line-break-jazh-043.html
deleted file mode 100644
index 1f1b99a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-043.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-043-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003F QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-044.html b/css/css-text/i18n/css3-text-line-break-jazh-044.html
deleted file mode 100644
index 0c3fe2c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-044.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-044-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-045.html b/css/css-text/i18n/css3-text-line-break-jazh-045.html
deleted file mode 100644
index 89fb717..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-045.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-045-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-046.html b/css/css-text/i18n/css3-text-line-break-jazh-046.html
deleted file mode 100644
index c8da6f6..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-046.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-046-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-047.html b/css/css-text/i18n/css3-text-line-break-jazh-047.html
deleted file mode 100644
index bf5e4f3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-047.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-047-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-048.html b/css/css-text/i18n/css3-text-line-break-jazh-048.html
deleted file mode 100644
index af7b5ff..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-048.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-048-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-049.html b/css/css-text/i18n/css3-text-line-break-jazh-049.html
deleted file mode 100644
index 472e687..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-049.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-049-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-050.html b/css/css-text/i18n/css3-text-line-break-jazh-050.html
deleted file mode 100644
index 2821101..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-050.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-050-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-051.html b/css/css-text/i18n/css3-text-line-break-jazh-051.html
deleted file mode 100644
index c95f342..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-051.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-051-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00A2 CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x00A2;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-052.html b/css/css-text/i18n/css3-text-line-break-jazh-052.html
deleted file mode 100644
index 9453a14..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-052.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-052-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-054.html b/css/css-text/i18n/css3-text-line-break-jazh-054.html
deleted file mode 100644
index a6584c8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-054.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-054-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-055.html b/css/css-text/i18n/css3-text-line-break-jazh-055.html
deleted file mode 100644
index 61d856a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-055.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-055-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-056.html b/css/css-text/i18n/css3-text-line-break-jazh-056.html
deleted file mode 100644
index 12064b5..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-056.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-056-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-057.html b/css/css-text/i18n/css3-text-line-break-jazh-057.html
deleted file mode 100644
index 86d91c0..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-057.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-057-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-058.html b/css/css-text/i18n/css3-text-line-break-jazh-058.html
deleted file mode 100644
index 5ddf00f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-058.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-058-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-059.html b/css/css-text/i18n/css3-text-line-break-jazh-059.html
deleted file mode 100644
index ebc3535..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-059.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-059-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-060.html b/css/css-text/i18n/css3-text-line-break-jazh-060.html
deleted file mode 100644
index e485f21..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-060.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-060-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#xFF70;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-101.html b/css/css-text/i18n/css3-text-line-break-jazh-101.html
deleted file mode 100644
index 9be9b49..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-101.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-101-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3041 HIRAGANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-102.html b/css/css-text/i18n/css3-text-line-break-jazh-102.html
deleted file mode 100644
index bd4660c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-102.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-102-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3043 HIRAGANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-103.html b/css/css-text/i18n/css3-text-line-break-jazh-103.html
deleted file mode 100644
index ca79201..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-103.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-103-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3045 HIRAGANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-104.html b/css/css-text/i18n/css3-text-line-break-jazh-104.html
deleted file mode 100644
index 1445b6f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-104.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-104-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3047 HIRAGANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-105.html b/css/css-text/i18n/css3-text-line-break-jazh-105.html
deleted file mode 100644
index 7aaa5d4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-105.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-105-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3049 HIRAGANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-106.html b/css/css-text/i18n/css3-text-line-break-jazh-106.html
deleted file mode 100644
index 423ccfb..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-106.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-106-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3063 HIRAGANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-107.html b/css/css-text/i18n/css3-text-line-break-jazh-107.html
deleted file mode 100644
index c41577a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-107.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-107-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3083 HIRAGANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-108.html b/css/css-text/i18n/css3-text-line-break-jazh-108.html
deleted file mode 100644
index b3cddf3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-108.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-108-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3085 HIRAGANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-109.html b/css/css-text/i18n/css3-text-line-break-jazh-109.html
deleted file mode 100644
index 240cab5..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-109.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-109-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3087 HIRAGANA LETTER SMALL YO  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-110.html b/css/css-text/i18n/css3-text-line-break-jazh-110.html
deleted file mode 100644
index 5da0726..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-110.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-110-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 308E HIRAGANA LETTER SMALL WA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-111.html b/css/css-text/i18n/css3-text-line-break-jazh-111.html
deleted file mode 100644
index 0a35d8d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-111.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-111-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3095 HIRAGANA LETTER SMALL KA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-112.html b/css/css-text/i18n/css3-text-line-break-jazh-112.html
deleted file mode 100644
index 84aabe4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-112.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-112-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3096 HIRAGANA LETTER SMALL KE  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-113.html b/css/css-text/i18n/css3-text-line-break-jazh-113.html
deleted file mode 100644
index dd2dc22..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-113.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-113-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A1 KATAKANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-114.html b/css/css-text/i18n/css3-text-line-break-jazh-114.html
deleted file mode 100644
index 338f67b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-114.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-114-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A3 KATAKANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-115.html b/css/css-text/i18n/css3-text-line-break-jazh-115.html
deleted file mode 100644
index b99c05f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-115.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-115-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A5 KATAKANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-116.html b/css/css-text/i18n/css3-text-line-break-jazh-116.html
deleted file mode 100644
index f2f66f4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-116.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-116-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A7 KATAKANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-117.html b/css/css-text/i18n/css3-text-line-break-jazh-117.html
deleted file mode 100644
index efea7d4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-117.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-117-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A9 KATAKANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-118.html b/css/css-text/i18n/css3-text-line-break-jazh-118.html
deleted file mode 100644
index 31548df..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-118.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-118-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30C3 KATAKANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-119.html b/css/css-text/i18n/css3-text-line-break-jazh-119.html
deleted file mode 100644
index 1e136f2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-119.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-119-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E3 KATAKANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-120.html b/css/css-text/i18n/css3-text-line-break-jazh-120.html
deleted file mode 100644
index dd0e695..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-120.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-120-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E5 KATAKANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-121.html b/css/css-text/i18n/css3-text-line-break-jazh-121.html
deleted file mode 100644
index b0394f1..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-121.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-121-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E7 KATAKANA LETTER SMALL YO at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-122.html b/css/css-text/i18n/css3-text-line-break-jazh-122.html
deleted file mode 100644
index 82d884b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-122.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-122-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30EE KATAKANA LETTER SMALL WA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-123.html b/css/css-text/i18n/css3-text-line-break-jazh-123.html
deleted file mode 100644
index 45fbf74..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-123.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-123-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30F5 KATAKANA LETTER SMALL KA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-124.html b/css/css-text/i18n/css3-text-line-break-jazh-124.html
deleted file mode 100644
index cdc2732..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-124.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-124-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30F6 KATAKANA LETTER SMALL KE at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-125.html b/css/css-text/i18n/css3-text-line-break-jazh-125.html
deleted file mode 100644
index e8db721..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-125.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-125-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-126.html b/css/css-text/i18n/css3-text-line-break-jazh-126.html
deleted file mode 100644
index 7d5a619..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-126.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-126-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-127.html b/css/css-text/i18n/css3-text-line-break-jazh-127.html
deleted file mode 100644
index efcf54c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-127.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-127-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-128.html b/css/css-text/i18n/css3-text-line-break-jazh-128.html
deleted file mode 100644
index 76ada49..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-128.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-128-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-129.html b/css/css-text/i18n/css3-text-line-break-jazh-129.html
deleted file mode 100644
index ec44b41..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-129.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-129-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-130.html b/css/css-text/i18n/css3-text-line-break-jazh-130.html
deleted file mode 100644
index e00ecd7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-130.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-130-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-131.html b/css/css-text/i18n/css3-text-line-break-jazh-131.html
deleted file mode 100644
index eaf52c3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-131.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-131-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-132.html b/css/css-text/i18n/css3-text-line-break-jazh-132.html
deleted file mode 100644
index 7446e38..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-132.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-132-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 309D HIRAGANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309D;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-133.html b/css/css-text/i18n/css3-text-line-break-jazh-133.html
deleted file mode 100644
index beea9ae..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-133.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-133-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 309E HIRAGANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-134.html b/css/css-text/i18n/css3-text-line-break-jazh-134.html
deleted file mode 100644
index 23324ed..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-134.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-134-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30FD KATAKANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FD;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-135.html b/css/css-text/i18n/css3-text-line-break-jazh-135.html
deleted file mode 100644
index fb3d471..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-135.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-135-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30FE KATAKANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-138.html b/css/css-text/i18n/css3-text-line-break-jazh-138.html
deleted file mode 100644
index 60afbed..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-138.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-138-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30FB KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FB;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-139.html b/css/css-text/i18n/css3-text-line-break-jazh-139.html
deleted file mode 100644
index 816647c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-139.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-139-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-140.html b/css/css-text/i18n/css3-text-line-break-jazh-140.html
deleted file mode 100644
index a713d72..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-140.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-140-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-141.html b/css/css-text/i18n/css3-text-line-break-jazh-141.html
deleted file mode 100644
index 32ab033..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-141.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-141-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF65 HALFWIDTH KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#xFF65;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-144.html b/css/css-text/i18n/css3-text-line-break-jazh-144.html
deleted file mode 100644
index 88adc54..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-144.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-144-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-145.html b/css/css-text/i18n/css3-text-line-break-jazh-145.html
deleted file mode 100644
index 8c1eb40..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-145.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-145-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-146.html b/css/css-text/i18n/css3-text-line-break-jazh-146.html
deleted file mode 100644
index a420d73..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-146.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-146-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-147.html b/css/css-text/i18n/css3-text-line-break-jazh-147.html
deleted file mode 100644
index b425202..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-147.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-147-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-148.html b/css/css-text/i18n/css3-text-line-break-jazh-148.html
deleted file mode 100644
index e38ee2d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-148.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-148-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-149.html b/css/css-text/i18n/css3-text-line-break-jazh-149.html
deleted file mode 100644
index 5b6f374..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-149.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-149-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-152.html b/css/css-text/i18n/css3-text-line-break-jazh-152.html
deleted file mode 100644
index 25391bc..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-152.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-152-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-154.html b/css/css-text/i18n/css3-text-line-break-jazh-154.html
deleted file mode 100644
index 74e86af..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-154.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-154-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-155.html b/css/css-text/i18n/css3-text-line-break-jazh-155.html
deleted file mode 100644
index cc1d9f8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-155.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-155-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-156.html b/css/css-text/i18n/css3-text-line-break-jazh-156.html
deleted file mode 100644
index fb82b5b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-156.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-156-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-157.html b/css/css-text/i18n/css3-text-line-break-jazh-157.html
deleted file mode 100644
index 939d99a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-157.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-157-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-158.html b/css/css-text/i18n/css3-text-line-break-jazh-158.html
deleted file mode 100644
index ff622c0..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-158.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-158-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-159.html b/css/css-text/i18n/css3-text-line-break-jazh-159.html
deleted file mode 100644
index e136dd3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-159.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-159-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中中<br/>&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-160.html b/css/css-text/i18n/css3-text-line-break-jazh-160.html
deleted file mode 100644
index 5b3980da..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-160.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-160-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-201.html b/css/css-text/i18n/css3-text-line-break-jazh-201.html
deleted file mode 100644
index a95a909..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-201.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-201-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3041 HIRAGANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-202.html b/css/css-text/i18n/css3-text-line-break-jazh-202.html
deleted file mode 100644
index 514a056..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-202.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-202-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3043 HIRAGANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-203.html b/css/css-text/i18n/css3-text-line-break-jazh-203.html
deleted file mode 100644
index 0c977e8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-203.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-203-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3045 HIRAGANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-204.html b/css/css-text/i18n/css3-text-line-break-jazh-204.html
deleted file mode 100644
index 553cb1c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-204.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-204-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3047 HIRAGANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-205.html b/css/css-text/i18n/css3-text-line-break-jazh-205.html
deleted file mode 100644
index 8be2b12..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-205.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-205-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3049 HIRAGANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-206.html b/css/css-text/i18n/css3-text-line-break-jazh-206.html
deleted file mode 100644
index 256f7a8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-206.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-206-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3063 HIRAGANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-207.html b/css/css-text/i18n/css3-text-line-break-jazh-207.html
deleted file mode 100644
index 9587653..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-207.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-207-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3083 HIRAGANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-208.html b/css/css-text/i18n/css3-text-line-break-jazh-208.html
deleted file mode 100644
index be138b1..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-208.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-208-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3085 HIRAGANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-209.html b/css/css-text/i18n/css3-text-line-break-jazh-209.html
deleted file mode 100644
index 45344cd..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-209.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-209-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3087 HIRAGANA LETTER SMALL YO  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-210.html b/css/css-text/i18n/css3-text-line-break-jazh-210.html
deleted file mode 100644
index b198bbc..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-210.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-210-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 308E HIRAGANA LETTER SMALL WA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-211.html b/css/css-text/i18n/css3-text-line-break-jazh-211.html
deleted file mode 100644
index abb878e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-211.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-211-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3095 HIRAGANA LETTER SMALL KA  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-212.html b/css/css-text/i18n/css3-text-line-break-jazh-212.html
deleted file mode 100644
index c3e782c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-212.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-212-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3096 HIRAGANA LETTER SMALL KE  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-213.html b/css/css-text/i18n/css3-text-line-break-jazh-213.html
deleted file mode 100644
index b7041a0..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-213.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-213-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A1 KATAKANA LETTER SMALL A at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-214.html b/css/css-text/i18n/css3-text-line-break-jazh-214.html
deleted file mode 100644
index 8f02c6c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-214.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-214-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A3 KATAKANA LETTER SMALL I at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-215.html b/css/css-text/i18n/css3-text-line-break-jazh-215.html
deleted file mode 100644
index d9bad94..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-215.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-215-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A5 KATAKANA LETTER SMALL U at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-216.html b/css/css-text/i18n/css3-text-line-break-jazh-216.html
deleted file mode 100644
index 5d33b53..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-216.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-216-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A7 KATAKANA LETTER SMALL E at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-217.html b/css/css-text/i18n/css3-text-line-break-jazh-217.html
deleted file mode 100644
index 686167b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-217.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-217-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A9 KATAKANA LETTER SMALL O at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-218.html b/css/css-text/i18n/css3-text-line-break-jazh-218.html
deleted file mode 100644
index b383e18..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-218.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-218-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30C3 KATAKANA LETTER SMALL TU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-219.html b/css/css-text/i18n/css3-text-line-break-jazh-219.html
deleted file mode 100644
index adb1bce..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-219.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-219-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E3 KATAKANA LETTER SMALL YA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-220.html b/css/css-text/i18n/css3-text-line-break-jazh-220.html
deleted file mode 100644
index 44d0970..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-220.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-220-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E5 KATAKANA LETTER SMALL YU at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-221.html b/css/css-text/i18n/css3-text-line-break-jazh-221.html
deleted file mode 100644
index e38a1f9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-221.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-221-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30E7 KATAKANA LETTER SMALL YO at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-222.html b/css/css-text/i18n/css3-text-line-break-jazh-222.html
deleted file mode 100644
index c052cd7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-222.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-222-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30EE KATAKANA LETTER SMALL WA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-223.html b/css/css-text/i18n/css3-text-line-break-jazh-223.html
deleted file mode 100644
index b80cfff..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-223.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-223-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30F5 KATAKANA LETTER SMALL KA at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-224.html b/css/css-text/i18n/css3-text-line-break-jazh-224.html
deleted file mode 100644
index b543c7a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-224.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-224-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30F6 KATAKANA LETTER SMALL KE at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-225.html b/css/css-text/i18n/css3-text-line-break-jazh-225.html
deleted file mode 100644
index 548b29a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-225.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-225-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-226.html b/css/css-text/i18n/css3-text-line-break-jazh-226.html
deleted file mode 100644
index 6e22171..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-226.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-226-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-227.html b/css/css-text/i18n/css3-text-line-break-jazh-227.html
deleted file mode 100644
index eb4add9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-227.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-227-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-228.html b/css/css-text/i18n/css3-text-line-break-jazh-228.html
deleted file mode 100644
index 8c617d1..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-228.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-228-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-229.html b/css/css-text/i18n/css3-text-line-break-jazh-229.html
deleted file mode 100644
index 8f7d4b4..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-229.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-229-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-230.html b/css/css-text/i18n/css3-text-line-break-jazh-230.html
deleted file mode 100644
index 69e4eba..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-230.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-230-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-231.html b/css/css-text/i18n/css3-text-line-break-jazh-231.html
deleted file mode 100644
index 1edadfe..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-231.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-231-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-232.html b/css/css-text/i18n/css3-text-line-break-jazh-232.html
deleted file mode 100644
index 6085a92..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-232.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-232-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 309D HIRAGANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-233.html b/css/css-text/i18n/css3-text-line-break-jazh-233.html
deleted file mode 100644
index 573aa29..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-233.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-233-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 309E HIRAGANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-234.html b/css/css-text/i18n/css3-text-line-break-jazh-234.html
deleted file mode 100644
index d4b10bf..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-234.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-234-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FD KATAKANA ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-235.html b/css/css-text/i18n/css3-text-line-break-jazh-235.html
deleted file mode 100644
index 5116116..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-235.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-235-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FE KATAKANA VOICED ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-236.html b/css/css-text/i18n/css3-text-line-break-jazh-236.html
deleted file mode 100644
index 8f07514..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-236.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-236-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003A COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-237.html b/css/css-text/i18n/css3-text-line-break-jazh-237.html
deleted file mode 100644
index 05bee48..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-237.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-237-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003B SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-238.html b/css/css-text/i18n/css3-text-line-break-jazh-238.html
deleted file mode 100644
index 0929f0d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-238.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-238-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 30FB KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-239.html b/css/css-text/i18n/css3-text-line-break-jazh-239.html
deleted file mode 100644
index 3d8447b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-239.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-239-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-240.html b/css/css-text/i18n/css3-text-line-break-jazh-240.html
deleted file mode 100644
index 605515d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-240.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-240-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-241.html b/css/css-text/i18n/css3-text-line-break-jazh-241.html
deleted file mode 100644
index ae99e8d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-241.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-241-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF65 HALFWIDTH KATAKANA MIDDLE DOT at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>カカカ&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-242.html b/css/css-text/i18n/css3-text-line-break-jazh-242.html
deleted file mode 100644
index f43243b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-242.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-242-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0021 EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x0021;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-243.html b/css/css-text/i18n/css3-text-line-break-jazh-243.html
deleted file mode 100644
index a2f3c42..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-243.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-243-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003F QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x003F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-244.html b/css/css-text/i18n/css3-text-line-break-jazh-244.html
deleted file mode 100644
index 1431628..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-244.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-244-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-245.html b/css/css-text/i18n/css3-text-line-break-jazh-245.html
deleted file mode 100644
index 462e805..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-245.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-245-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-246.html b/css/css-text/i18n/css3-text-line-break-jazh-246.html
deleted file mode 100644
index 9c277f8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-246.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-246-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-247.html b/css/css-text/i18n/css3-text-line-break-jazh-247.html
deleted file mode 100644
index c3cb257..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-247.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-247-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-248.html b/css/css-text/i18n/css3-text-line-break-jazh-248.html
deleted file mode 100644
index 8e58a6a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-248.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-248-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-249.html b/css/css-text/i18n/css3-text-line-break-jazh-249.html
deleted file mode 100644
index f2f4d93..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-249.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-249-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-250.html b/css/css-text/i18n/css3-text-line-break-jazh-250.html
deleted file mode 100644
index f7f7959..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-250.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-250-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-251.html b/css/css-text/i18n/css3-text-line-break-jazh-251.html
deleted file mode 100644
index 9a2e401..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-251.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-251-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00A2 CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x00A2;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-252.html b/css/css-text/i18n/css3-text-line-break-jazh-252.html
deleted file mode 100644
index a1903d7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-252.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-252-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-254.html b/css/css-text/i18n/css3-text-line-break-jazh-254.html
deleted file mode 100644
index 67961f1..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-254.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-254-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-255.html b/css/css-text/i18n/css3-text-line-break-jazh-255.html
deleted file mode 100644
index a8a2181..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-255.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-255-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-256.html b/css/css-text/i18n/css3-text-line-break-jazh-256.html
deleted file mode 100644
index 38a0996..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-256.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-256-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-257.html b/css/css-text/i18n/css3-text-line-break-jazh-257.html
deleted file mode 100644
index a6bccf5..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-257.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-257-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-258.html b/css/css-text/i18n/css3-text-line-break-jazh-258.html
deleted file mode 100644
index 228dcb2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-258.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-258-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-259.html b/css/css-text/i18n/css3-text-line-break-jazh-259.html
deleted file mode 100644
index 8080bac..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-259.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-259-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-260.html b/css/css-text/i18n/css3-text-line-break-jazh-260.html
deleted file mode 100644
index 8fc5bf9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-260.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-260-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='ja'>かかか&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-301.html b/css/css-text/i18n/css3-text-line-break-jazh-301.html
deleted file mode 100644
index fc4588a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-301.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-301-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-302.html b/css/css-text/i18n/css3-text-line-break-jazh-302.html
deleted file mode 100644
index a2bf96e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-302.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-302-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-303.html b/css/css-text/i18n/css3-text-line-break-jazh-303.html
deleted file mode 100644
index 0023b1c..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-303.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-303-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-304.html b/css/css-text/i18n/css3-text-line-break-jazh-304.html
deleted file mode 100644
index f616605..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-304.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-304-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-305.html b/css/css-text/i18n/css3-text-line-break-jazh-305.html
deleted file mode 100644
index 29327d5..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-305.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-305-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-306.html b/css/css-text/i18n/css3-text-line-break-jazh-306.html
deleted file mode 100644
index 54505e8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-306.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-306-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003A COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-307.html b/css/css-text/i18n/css3-text-line-break-jazh-307.html
deleted file mode 100644
index 678bcee..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-307.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-307-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003B SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-308.html b/css/css-text/i18n/css3-text-line-break-jazh-308.html
deleted file mode 100644
index 3e1c5b3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-308.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-308-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-309.html b/css/css-text/i18n/css3-text-line-break-jazh-309.html
deleted file mode 100644
index 78f2425..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-309.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-309-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-310.html b/css/css-text/i18n/css3-text-line-break-jazh-310.html
deleted file mode 100644
index b043a4b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-310.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-310-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0021 EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0021;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-311.html b/css/css-text/i18n/css3-text-line-break-jazh-311.html
deleted file mode 100644
index 448020e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-311.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-311-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003F QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-312.html b/css/css-text/i18n/css3-text-line-break-jazh-312.html
deleted file mode 100644
index 45cb49d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-312.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-312-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-313.html b/css/css-text/i18n/css3-text-line-break-jazh-313.html
deleted file mode 100644
index d8617d7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-313.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-313-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-314.html b/css/css-text/i18n/css3-text-line-break-jazh-314.html
deleted file mode 100644
index dd25133..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-314.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-314-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-315.html b/css/css-text/i18n/css3-text-line-break-jazh-315.html
deleted file mode 100644
index 579c2ae..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-315.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-315-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-316.html b/css/css-text/i18n/css3-text-line-break-jazh-316.html
deleted file mode 100644
index dd7489b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-316.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-316-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-317.html b/css/css-text/i18n/css3-text-line-break-jazh-317.html
deleted file mode 100644
index 34407c6..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-317.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-317-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-318.html b/css/css-text/i18n/css3-text-line-break-jazh-318.html
deleted file mode 100644
index ca2006b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-318.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-318-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-319.html b/css/css-text/i18n/css3-text-line-break-jazh-319.html
deleted file mode 100644
index 52b037f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-319.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-319-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00A2 CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x00A2;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-320.html b/css/css-text/i18n/css3-text-line-break-jazh-320.html
deleted file mode 100644
index 9365a82..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-320.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-320-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-321.html b/css/css-text/i18n/css3-text-line-break-jazh-321.html
deleted file mode 100644
index 619119f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-321.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-321-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-322.html b/css/css-text/i18n/css3-text-line-break-jazh-322.html
deleted file mode 100644
index f121866..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-322.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-322-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-323.html b/css/css-text/i18n/css3-text-line-break-jazh-323.html
deleted file mode 100644
index 10ea9d7..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-323.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-323-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-324.html b/css/css-text/i18n/css3-text-line-break-jazh-324.html
deleted file mode 100644
index 745eae2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-324.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-324-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-325.html b/css/css-text/i18n/css3-text-line-break-jazh-325.html
deleted file mode 100644
index 8964578..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-325.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-325-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-326.html b/css/css-text/i18n/css3-text-line-break-jazh-326.html
deleted file mode 100644
index 3662910..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-326.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-326-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-327.html b/css/css-text/i18n/css3-text-line-break-jazh-327.html
deleted file mode 100644
index dcfeec2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-327.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-327-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-351.html b/css/css-text/i18n/css3-text-line-break-jazh-351.html
deleted file mode 100644
index 0288a64..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-351.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-351-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-352.html b/css/css-text/i18n/css3-text-line-break-jazh-352.html
deleted file mode 100644
index 59d57d9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-352.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-352-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-353.html b/css/css-text/i18n/css3-text-line-break-jazh-353.html
deleted file mode 100644
index e54d1ea..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-353.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-353-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-354.html b/css/css-text/i18n/css3-text-line-break-jazh-354.html
deleted file mode 100644
index 90573a2..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-354.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-354-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-355.html b/css/css-text/i18n/css3-text-line-break-jazh-355.html
deleted file mode 100644
index 003bbd6..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-355.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-355-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-358.html b/css/css-text/i18n/css3-text-line-break-jazh-358.html
deleted file mode 100644
index 505a6ce..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-358.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-358-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-359.html b/css/css-text/i18n/css3-text-line-break-jazh-359.html
deleted file mode 100644
index 797f742..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-359.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-359-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-362.html b/css/css-text/i18n/css3-text-line-break-jazh-362.html
deleted file mode 100644
index d9eb2fb..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-362.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-362-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-363.html b/css/css-text/i18n/css3-text-line-break-jazh-363.html
deleted file mode 100644
index f72075e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-363.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-363-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-364.html b/css/css-text/i18n/css3-text-line-break-jazh-364.html
deleted file mode 100644
index 41ff40e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-364.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-364-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-365.html b/css/css-text/i18n/css3-text-line-break-jazh-365.html
deleted file mode 100644
index 3c58f92..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-365.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-365-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-366.html b/css/css-text/i18n/css3-text-line-break-jazh-366.html
deleted file mode 100644
index bb6e1e8..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-366.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-366-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-367.html b/css/css-text/i18n/css3-text-line-break-jazh-367.html
deleted file mode 100644
index 43a5bab..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-367.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-367-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-370.html b/css/css-text/i18n/css3-text-line-break-jazh-370.html
deleted file mode 100644
index cc64573..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-370.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-370-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-372.html b/css/css-text/i18n/css3-text-line-break-jazh-372.html
deleted file mode 100644
index 2239909..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-372.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-372-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-373.html b/css/css-text/i18n/css3-text-line-break-jazh-373.html
deleted file mode 100644
index f48ea99..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-373.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-373-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-374.html b/css/css-text/i18n/css3-text-line-break-jazh-374.html
deleted file mode 100644
index adb1fc9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-374.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-374-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-375.html b/css/css-text/i18n/css3-text-line-break-jazh-375.html
deleted file mode 100644
index 67ab6ce..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-375.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-375-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-376.html b/css/css-text/i18n/css3-text-line-break-jazh-376.html
deleted file mode 100644
index d4894d3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-376.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-376-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-377.html b/css/css-text/i18n/css3-text-line-break-jazh-377.html
deleted file mode 100644
index 7617879..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-377.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-377-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-401.html b/css/css-text/i18n/css3-text-line-break-jazh-401.html
deleted file mode 100644
index e23b742..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-401.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-401-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2010 HYPHEN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2010;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-402.html b/css/css-text/i18n/css3-text-line-break-jazh-402.html
deleted file mode 100644
index 00e446e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-402.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-402-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 2013 EN DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2013;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-403.html b/css/css-text/i18n/css3-text-line-break-jazh-403.html
deleted file mode 100644
index a4db632..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-403.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-403-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will allow 301C WAVE DASH at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x301C;文</div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-404.html b/css/css-text/i18n/css3-text-line-break-jazh-404.html
deleted file mode 100644
index 36f967a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-404.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-404-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 3005 IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x3005;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-405.html b/css/css-text/i18n/css3-text-line-break-jazh-405.html
deleted file mode 100644
index 8bee630..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-405.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-405-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 303B VERTICAL IDEOGRAPHIC ITERATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x303B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-406.html b/css/css-text/i18n/css3-text-line-break-jazh-406.html
deleted file mode 100644
index bc64155..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-406.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-406-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003A COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-407.html b/css/css-text/i18n/css3-text-line-break-jazh-407.html
deleted file mode 100644
index 7c384ed..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-407.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-407-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003B SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-408.html b/css/css-text/i18n/css3-text-line-break-jazh-408.html
deleted file mode 100644
index de17327..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-408.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-408-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1A FULLWIDTH COLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1A;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-409.html b/css/css-text/i18n/css3-text-line-break-jazh-409.html
deleted file mode 100644
index ecaea8a..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-409.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-409-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1B FULLWIDTH SEMICOLON at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1B;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-410.html b/css/css-text/i18n/css3-text-line-break-jazh-410.html
deleted file mode 100644
index 924040d..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-410.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-410-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0021 EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0021;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-411.html b/css/css-text/i18n/css3-text-line-break-jazh-411.html
deleted file mode 100644
index 0fb1df0..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-411.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-411-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 003F QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x003F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-412.html b/css/css-text/i18n/css3-text-line-break-jazh-412.html
deleted file mode 100644
index 557a613..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-412.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-412-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 203C DOUBLE EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x203C;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-413.html b/css/css-text/i18n/css3-text-line-break-jazh-413.html
deleted file mode 100644
index 3664122..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-413.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-413-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2047 DOUBLE QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2047;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-414.html b/css/css-text/i18n/css3-text-line-break-jazh-414.html
deleted file mode 100644
index b63c1e9..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-414.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-414-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2048 QUESTION EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2048;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-415.html b/css/css-text/i18n/css3-text-line-break-jazh-415.html
deleted file mode 100644
index a70d799..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-415.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-415-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2049 EXCLAMATION QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2049;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-416.html b/css/css-text/i18n/css3-text-line-break-jazh-416.html
deleted file mode 100644
index a100744..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-416.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-416-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF01 FULLWIDTH EXCLAMATION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF01;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-417.html b/css/css-text/i18n/css3-text-line-break-jazh-417.html
deleted file mode 100644
index 8323214..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-417.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-417-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF1F FULLWIDTH QUESTION MARK at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF1F;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-418.html b/css/css-text/i18n/css3-text-line-break-jazh-418.html
deleted file mode 100644
index 9c64b7b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-418.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-418-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-419.html b/css/css-text/i18n/css3-text-line-break-jazh-419.html
deleted file mode 100644
index 7d7019b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-419.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-419-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00A2 CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x00A2;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-420.html b/css/css-text/i18n/css3-text-line-break-jazh-420.html
deleted file mode 100644
index 79eb64b..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-420.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-420-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 00B0 DEGREE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x00B0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-421.html b/css/css-text/i18n/css3-text-line-break-jazh-421.html
deleted file mode 100644
index 239efc3..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-421.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-421-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 0025 PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x0025;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-422.html b/css/css-text/i18n/css3-text-line-break-jazh-422.html
deleted file mode 100644
index 89c59de..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-422.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-422-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2030 PER MILLE SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2030;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-423.html b/css/css-text/i18n/css3-text-line-break-jazh-423.html
deleted file mode 100644
index 40f50ca..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-423.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-423-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2032 PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2032;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-424.html b/css/css-text/i18n/css3-text-line-break-jazh-424.html
deleted file mode 100644
index 52c7e0f..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-424.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-424-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2033 DOUBLE PRIME at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2033;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-425.html b/css/css-text/i18n/css3-text-line-break-jazh-425.html
deleted file mode 100644
index 94f3343..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-425.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-425-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow 2103 DEGREE CELSIUS at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#x2103;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-426.html b/css/css-text/i18n/css3-text-line-break-jazh-426.html
deleted file mode 100644
index bc0074e..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-426.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-426-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FF05 FULLWIDTH PERCENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFF05;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/css3-text-line-break-jazh-427.html b/css/css-text/i18n/css3-text-line-break-jazh-427.html
deleted file mode 100644
index 2ef1129..0000000
--- a/css/css-text/i18n/css3-text-line-break-jazh-427.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel='help' href='https://drafts.csswg.org/css-text-3/#line-break'>
-<link rel="match" href="reference/css3-text-line-break-jazh-427-ref.html">
-<meta name='flags' content=''>
-<meta name="assert" content="The browser will NOT allow FFE0 FULLWIDTH CENT SIGN at the beginning of a line.">
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='test' lang='zh'>中中中&#xFFE0;文</div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-<!--Notes:
-<p class='notes'>For more information about expected line break behavior and line break classes, see <a href='http://www.unicode.org/reports/tr14/'>Unicode Standard Annex #14 Line Breaking Properties</a>.
-
-
--->
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cj-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-cj-loose.html
new file mode 100644
index 0000000..6d8fbf9
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cj-loose.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>Line-break:loose, Conditional Japanese Starter (CJ) (ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="The browser allows a conditional Japanese starter at the beginning of a line.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `3041  HIRAGANA LETTER SMALL A
+3043  HIRAGANA LETTER SMALL I
+3045  HIRAGANA LETTER SMALL U
+3047  HIRAGANA LETTER SMALL E
+3049  HIRAGANA LETTER SMALL O
+3063  HIRAGANA LETTER SMALL TU
+3083  HIRAGANA LETTER SMALL YA
+3085  HIRAGANA LETTER SMALL YU
+3087  HIRAGANA LETTER SMALL YO
+308E  HIRAGANA LETTER SMALL WA
+3095  HIRAGANA LETTER SMALL KA
+3096  HIRAGANA LETTER SMALL KE
+30A1  KATAKANA LETTER SMALL A
+30A3  KATAKANA LETTER SMALL I
+30A5  KATAKANA LETTER SMALL U
+30A7  KATAKANA LETTER SMALL E
+30A9  KATAKANA LETTER SMALL O
+30C3  KATAKANA LETTER SMALL TU
+30E3  KATAKANA LETTER SMALL YA
+30E5  KATAKANA LETTER SMALL YU
+30E7  KATAKANA LETTER SMALL YO
+30EE  KATAKANA LETTER SMALL WA
+30F5  KATAKANA LETTER SMALL KA
+30F6  KATAKANA LETTER SMALL KE
+30FC  KATAKANA-HIRAGANA PROLONGED SOUND MARK
+31F0  KATAKANA LETTER SMALL KU
+31F1  KATAKANA LETTER SMALL SI
+31F2  KATAKANA LETTER SMALL SU
+31F3  KATAKANA LETTER SMALL TO
+31F4  KATAKANA LETTER SMALL NU
+31F5  KATAKANA LETTER SMALL HA
+31F6  KATAKANA LETTER SMALL HI
+31F7  KATAKANA LETTER SMALL HU
+31F8  KATAKANA LETTER SMALL HE
+31F9  KATAKANA LETTER SMALL HO
+31FA  KATAKANA LETTER SMALL MU
+31FB  KATAKANA LETTER SMALL RA
+31FC  KATAKANA LETTER SMALL RI
+31FD  KATAKANA LETTER SMALL RU
+31FE  KATAKANA LETTER SMALL RE
+31FF  KATAKANA LETTER SMALL RO
+FF67  HALFWIDTH KATAKANA LETTER SMALL A
+FF68  HALFWIDTH KATAKANA LETTER SMALL I
+FF69  HALFWIDTH KATAKANA LETTER SMALL U
+FF6A  HALFWIDTH KATAKANA LETTER SMALL E
+FF6B  HALFWIDTH KATAKANA LETTER SMALL O
+FF6C  HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D  HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E  HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F  HALFWIDTH KATAKANA LETTER SMALL TU
+FF70  HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cj-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-cj-normal.html
new file mode 100644
index 0000000..38f8e73
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cj-normal.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>Line-break:normal, Conditional Japanese Starter (CJ) (ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="The browser allows a conditional Japanese starter at the beginning of a line.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `3041  HIRAGANA LETTER SMALL A
+3043  HIRAGANA LETTER SMALL I
+3045  HIRAGANA LETTER SMALL U
+3047  HIRAGANA LETTER SMALL E
+3049  HIRAGANA LETTER SMALL O
+3063  HIRAGANA LETTER SMALL TU
+3083  HIRAGANA LETTER SMALL YA
+3085  HIRAGANA LETTER SMALL YU
+3087  HIRAGANA LETTER SMALL YO
+308E  HIRAGANA LETTER SMALL WA
+3095  HIRAGANA LETTER SMALL KA
+3096  HIRAGANA LETTER SMALL KE
+30A1  KATAKANA LETTER SMALL A
+30A3  KATAKANA LETTER SMALL I
+30A5  KATAKANA LETTER SMALL U
+30A7  KATAKANA LETTER SMALL E
+30A9  KATAKANA LETTER SMALL O
+30C3  KATAKANA LETTER SMALL TU
+30E3  KATAKANA LETTER SMALL YA
+30E5  KATAKANA LETTER SMALL YU
+30E7  KATAKANA LETTER SMALL YO
+30EE  KATAKANA LETTER SMALL WA
+30F5  KATAKANA LETTER SMALL KA
+30F6  KATAKANA LETTER SMALL KE
+30FC  KATAKANA-HIRAGANA PROLONGED SOUND MARK
+31F0  KATAKANA LETTER SMALL KU
+31F1  KATAKANA LETTER SMALL SI
+31F2  KATAKANA LETTER SMALL SU
+31F3  KATAKANA LETTER SMALL TO
+31F4  KATAKANA LETTER SMALL NU
+31F5  KATAKANA LETTER SMALL HA
+31F6  KATAKANA LETTER SMALL HI
+31F7  KATAKANA LETTER SMALL HU
+31F8  KATAKANA LETTER SMALL HE
+31F9  KATAKANA LETTER SMALL HO
+31FA  KATAKANA LETTER SMALL MU
+31FB  KATAKANA LETTER SMALL RA
+31FC  KATAKANA LETTER SMALL RI
+31FD  KATAKANA LETTER SMALL RU
+31FE  KATAKANA LETTER SMALL RE
+31FF  KATAKANA LETTER SMALL RO
+FF67  HALFWIDTH KATAKANA LETTER SMALL A
+FF68  HALFWIDTH KATAKANA LETTER SMALL I
+FF69  HALFWIDTH KATAKANA LETTER SMALL U
+FF6A  HALFWIDTH KATAKANA LETTER SMALL E
+FF6B  HALFWIDTH KATAKANA LETTER SMALL O
+FF6C  HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D  HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E  HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F  HALFWIDTH KATAKANA LETTER SMALL TU
+FF70  HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cj-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-cj-strict.html
new file mode 100644
index 0000000..37df9b5
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cj-strict.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>line-break:strict, Conditional Japanese Starter (CJ) (ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="With line-break:strict, a browser will NOT allow a conditional Japanese starter at the beginning of a line.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `3041  HIRAGANA LETTER SMALL A
+3043  HIRAGANA LETTER SMALL I
+3045  HIRAGANA LETTER SMALL U
+3047  HIRAGANA LETTER SMALL E
+3049  HIRAGANA LETTER SMALL O
+3063  HIRAGANA LETTER SMALL TU
+3083  HIRAGANA LETTER SMALL YA
+3085  HIRAGANA LETTER SMALL YU
+3087  HIRAGANA LETTER SMALL YO
+308E  HIRAGANA LETTER SMALL WA
+3095  HIRAGANA LETTER SMALL KA
+3096  HIRAGANA LETTER SMALL KE
+30A1  KATAKANA LETTER SMALL A
+30A3  KATAKANA LETTER SMALL I
+30A5  KATAKANA LETTER SMALL U
+30A7  KATAKANA LETTER SMALL E
+30A9  KATAKANA LETTER SMALL O
+30C3  KATAKANA LETTER SMALL TU
+30E3  KATAKANA LETTER SMALL YA
+30E5  KATAKANA LETTER SMALL YU
+30E7  KATAKANA LETTER SMALL YO
+30EE  KATAKANA LETTER SMALL WA
+30F5  KATAKANA LETTER SMALL KA
+30F6  KATAKANA LETTER SMALL KE
+30FC  KATAKANA-HIRAGANA PROLONGED SOUND MARK
+31F0  KATAKANA LETTER SMALL KU
+31F1  KATAKANA LETTER SMALL SI
+31F2  KATAKANA LETTER SMALL SU
+31F3  KATAKANA LETTER SMALL TO
+31F4  KATAKANA LETTER SMALL NU
+31F5  KATAKANA LETTER SMALL HA
+31F6  KATAKANA LETTER SMALL HI
+31F7  KATAKANA LETTER SMALL HU
+31F8  KATAKANA LETTER SMALL HE
+31F9  KATAKANA LETTER SMALL HO
+31FA  KATAKANA LETTER SMALL MU
+31FB  KATAKANA LETTER SMALL RA
+31FC  KATAKANA LETTER SMALL RI
+31FD  KATAKANA LETTER SMALL RU
+31FE  KATAKANA LETTER SMALL RE
+31FF  KATAKANA LETTER SMALL RO
+FF67  HALFWIDTH KATAKANA LETTER SMALL A
+FF68  HALFWIDTH KATAKANA LETTER SMALL I
+FF69  HALFWIDTH KATAKANA LETTER SMALL U
+FF6A  HALFWIDTH KATAKANA LETTER SMALL E
+FF6B  HALFWIDTH KATAKANA LETTER SMALL O
+FF6C  HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D  HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E  HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F  HALFWIDTH KATAKANA LETTER SMALL TU
+FF70  HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cpm-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-loose.html
new file mode 100644
index 0000000..fb933ab
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-loose.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (loose,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:loose, a browser allows a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cpm-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-normal.html
new file mode 100644
index 0000000..4fb208b
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-normal.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (normal,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:normal, a browser will NOT allow a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-cpm-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-strict.html
new file mode 100644
index 0000000..6a84bdd
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-cpm-strict.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (strict,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-loose.html
new file mode 100644
index 0000000..a8b73b5
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-loose.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (loose,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:loose, a browser allows a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-normal.html
new file mode 100644
index 0000000..fd69a1b
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-normal.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (normal,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:normal, a browser allows a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-strict.html
new file mode 100644
index 0000000..cd30e0e
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-hyphens-strict.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (strict,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-in-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-in-loose.html
new file mode 100644
index 0000000..580862e
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-in-loose.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (loose,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:loose, a browser allows a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-in-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-in-normal.html
new file mode 100644
index 0000000..49f401a
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-in-normal.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (normal,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:normal, a browser will NOT allow a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-in-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-in-strict.html
new file mode 100644
index 0000000..499609c
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-in-strict.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (strict,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-iteration-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-loose.html
new file mode 100644
index 0000000..9401259
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-loose.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (loose,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:loose, a browser allows a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-iteration-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-normal.html
new file mode 100644
index 0000000..b65c7da
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-normal.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (normal,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:normal, a browser will NOT allow a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-iteration-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-strict.html
new file mode 100644
index 0000000..1c022f7
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-iteration-strict.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (strict,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-po-loose.html b/css/css-text/i18n/ja/css-text-line-break-ja-po-loose.html
new file mode 100644
index 0000000..0ffed1f
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-po-loose.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (loose,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:loose, a browser allows a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if ja and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-po-normal.html b/css/css-text/i18n/ja/css-text-line-break-ja-po-normal.html
new file mode 100644
index 0000000..ce3a30f
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-po-normal.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (normal,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:normal, a browser will NOT allow a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/ja/css-text-line-break-ja-po-strict.html b/css/css-text/i18n/ja/css-text-line-break-ja-po-strict.html
new file mode 100644
index 0000000..95ffcf7
--- /dev/null
+++ b/css/css-text/i18n/ja/css-text-line-break-ja-po-strict.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (strict,ja)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if ja and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-001-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-001-ref.html
deleted file mode 100644
index f038e69..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-001-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3041;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-002-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-002-ref.html
deleted file mode 100644
index 695015e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-002-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3043;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-003-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-003-ref.html
deleted file mode 100644
index 5dbbb7f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-003-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3045;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-004-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-004-ref.html
deleted file mode 100644
index 2457628..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-004-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3047;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-005-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-005-ref.html
deleted file mode 100644
index 560b337..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-005-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3049;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-006-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-006-ref.html
deleted file mode 100644
index bec4d8c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-006-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3063;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-007-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-007-ref.html
deleted file mode 100644
index 9af2627..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-007-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3083;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-008-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-008-ref.html
deleted file mode 100644
index a10f72c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-008-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3085;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-009-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-009-ref.html
deleted file mode 100644
index f64c008..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-009-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3087;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-010-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-010-ref.html
deleted file mode 100644
index f9d1390..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-010-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x308E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-011-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-011-ref.html
deleted file mode 100644
index 32cf232..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-011-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3095;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-012-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-012-ref.html
deleted file mode 100644
index 96924df..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-012-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x3096;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-013-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-013-ref.html
deleted file mode 100644
index a7b7384..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-013-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A1;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-014-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-014-ref.html
deleted file mode 100644
index 8a03e58..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-014-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-015-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-015-ref.html
deleted file mode 100644
index f8a4d56..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-015-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-016-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-016-ref.html
deleted file mode 100644
index 8a18c2f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-016-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-017-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-017-ref.html
deleted file mode 100644
index d6afa5f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-017-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30A9;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-018-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-018-ref.html
deleted file mode 100644
index c638c79..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-018-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30C3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-019-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-019-ref.html
deleted file mode 100644
index 70989ad..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-019-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-020-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-020-ref.html
deleted file mode 100644
index c1f6a40..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-020-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-021-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-021-ref.html
deleted file mode 100644
index b61d7d3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-021-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30E7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-022-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-022-ref.html
deleted file mode 100644
index 1345777..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-022-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30EE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-023-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-023-ref.html
deleted file mode 100644
index 5563076..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-023-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-024-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-024-ref.html
deleted file mode 100644
index f98f561..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-024-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30F6;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-025-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-025-ref.html
deleted file mode 100644
index c043885..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-025-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FC;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-026-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-026-ref.html
deleted file mode 100644
index ea625cd..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-026-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-027-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-027-ref.html
deleted file mode 100644
index 32e58c0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-027-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-028-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-028-ref.html
deleted file mode 100644
index cce4731..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-028-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-029-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-029-ref.html
deleted file mode 100644
index 63d518a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-029-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x30A0;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-030-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-030-ref.html
deleted file mode 100644
index d76cbc8..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-030-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-031-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-031-ref.html
deleted file mode 100644
index df860b2..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-031-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-032-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-032-ref.html
deleted file mode 100644
index 8316cf4..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-032-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-033-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-033-ref.html
deleted file mode 100644
index 237c599..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-033-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-034-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-034-ref.html
deleted file mode 100644
index 20a706b..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-034-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-035-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-035-ref.html
deleted file mode 100644
index 0f79550..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-035-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-036-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-036-ref.html
deleted file mode 100644
index 30922c1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-036-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-037-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-037-ref.html
deleted file mode 100644
index 242c27d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-037-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-038-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-038-ref.html
deleted file mode 100644
index 431ed59..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-038-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-039-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-039-ref.html
deleted file mode 100644
index 698bed7..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-039-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-040-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-040-ref.html
deleted file mode 100644
index 0cf77da..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-040-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-041-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-041-ref.html
deleted file mode 100644
index 38a2248..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-041-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-042-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-042-ref.html
deleted file mode 100644
index 51fabf7..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-042-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-043-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-043-ref.html
deleted file mode 100644
index bdf2e68..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-043-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-044-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-044-ref.html
deleted file mode 100644
index a367f67..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-044-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-045-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-045-ref.html
deleted file mode 100644
index adf8122..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-045-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-046-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-046-ref.html
deleted file mode 100644
index 80758ab..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-046-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-047-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-047-ref.html
deleted file mode 100644
index 08b085e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-047-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-048-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-048-ref.html
deleted file mode 100644
index 0e5bd4d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-048-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-049-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-049-ref.html
deleted file mode 100644
index f377e89..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-049-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-050-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-050-ref.html
deleted file mode 100644
index 892012a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-050-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-051-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-051-ref.html
deleted file mode 100644
index 45108e0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-051-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-052-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-052-ref.html
deleted file mode 100644
index 1ea1307..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-052-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-054-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-054-ref.html
deleted file mode 100644
index ad9b0fc..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-054-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-055-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-055-ref.html
deleted file mode 100644
index 258a691..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-055-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-056-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-056-ref.html
deleted file mode 100644
index df6ab01..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-056-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-057-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-057-ref.html
deleted file mode 100644
index 71c6e8b..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-057-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-058-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-058-ref.html
deleted file mode 100644
index 649d1c3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-058-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-059-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-059-ref.html
deleted file mode 100644
index b68f89f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-059-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-060-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-060-ref.html
deleted file mode 100644
index fb2c83a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-060-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (strict,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#xFF70;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-101-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-101-ref.html
deleted file mode 100644
index 7cd7292..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-101-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-102-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-102-ref.html
deleted file mode 100644
index 2246b06..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-102-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-103-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-103-ref.html
deleted file mode 100644
index b2e45e1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-103-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-104-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-104-ref.html
deleted file mode 100644
index 430235e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-104-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-105-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-105-ref.html
deleted file mode 100644
index 87c9256..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-105-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-106-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-106-ref.html
deleted file mode 100644
index 6d076ed..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-106-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-107-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-107-ref.html
deleted file mode 100644
index ffe87c5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-107-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-108-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-108-ref.html
deleted file mode 100644
index e417d16..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-108-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-109-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-109-ref.html
deleted file mode 100644
index b42f93c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-109-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-110-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-110-ref.html
deleted file mode 100644
index 7780e07..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-110-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-111-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-111-ref.html
deleted file mode 100644
index 77b0fbf..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-111-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-112-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-112-ref.html
deleted file mode 100644
index 6e5bf84..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-112-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-113-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-113-ref.html
deleted file mode 100644
index d471eff..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-113-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-114-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-114-ref.html
deleted file mode 100644
index 2e1b8b6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-114-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-115-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-115-ref.html
deleted file mode 100644
index f33e7ec..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-115-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-116-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-116-ref.html
deleted file mode 100644
index 2bd48ed..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-116-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-117-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-117-ref.html
deleted file mode 100644
index 9ac8973..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-117-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-118-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-118-ref.html
deleted file mode 100644
index 637e227..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-118-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-119-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-119-ref.html
deleted file mode 100644
index a3c03a6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-119-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-120-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-120-ref.html
deleted file mode 100644
index 04f0d19..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-120-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-121-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-121-ref.html
deleted file mode 100644
index 10e8458..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-121-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-122-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-122-ref.html
deleted file mode 100644
index 7fd3f1a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-122-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-123-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-123-ref.html
deleted file mode 100644
index 65158df..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-123-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-124-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-124-ref.html
deleted file mode 100644
index 9a934db..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-124-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-125-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-125-ref.html
deleted file mode 100644
index a072368..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-125-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-126-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-126-ref.html
deleted file mode 100644
index 2603949..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-126-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-127-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-127-ref.html
deleted file mode 100644
index c2c1aa0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-127-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-128-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-128-ref.html
deleted file mode 100644
index 1bdf857..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-128-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-129-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-129-ref.html
deleted file mode 100644
index a480560..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-129-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-130-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-130-ref.html
deleted file mode 100644
index 9e6be7a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-130-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-131-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-131-ref.html
deleted file mode 100644
index d574646..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-131-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-132-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-132-ref.html
deleted file mode 100644
index e43edb6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-132-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309D;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-133-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-133-ref.html
deleted file mode 100644
index 7e0449d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-133-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x309E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-134-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-134-ref.html
deleted file mode 100644
index 75b0f59..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-134-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FD;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-135-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-135-ref.html
deleted file mode 100644
index 0135fb0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-135-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-138-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-138-ref.html
deleted file mode 100644
index f7ca6a1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-138-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FB;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-139-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-139-ref.html
deleted file mode 100644
index 8bbcee2..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-139-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-140-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-140-ref.html
deleted file mode 100644
index a0aab3c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-140-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-141-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-141-ref.html
deleted file mode 100644
index 796c8bf..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-141-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#xFF65;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-144-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-144-ref.html
deleted file mode 100644
index ccb6f49..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-144-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-145-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-145-ref.html
deleted file mode 100644
index 136ae62..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-145-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-146-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-146-ref.html
deleted file mode 100644
index 6b8422a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-146-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-147-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-147-ref.html
deleted file mode 100644
index ee6b467..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-147-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-148-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-148-ref.html
deleted file mode 100644
index 3aa5b14..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-148-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-149-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-149-ref.html
deleted file mode 100644
index 00a7f4f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-149-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-152-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-152-ref.html
deleted file mode 100644
index 53d7f2c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-152-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-154-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-154-ref.html
deleted file mode 100644
index a69f361..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-154-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-155-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-155-ref.html
deleted file mode 100644
index 31fe768..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-155-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-156-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-156-ref.html
deleted file mode 100644
index ed10733..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-156-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-157-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-157-ref.html
deleted file mode 100644
index 06bd81a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-157-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-158-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-158-ref.html
deleted file mode 100644
index 2821002..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-158-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-159-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-159-ref.html
deleted file mode 100644
index 82282b7..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-159-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>中中中<br/>&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中中<br/>&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-160-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-160-ref.html
deleted file mode 100644
index 36e446d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-160-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (loose,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-201-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-201-ref.html
deleted file mode 100644
index 0d3abe2..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-201-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3041 HIRAGANA LETTER SMALL A (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3041;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-202-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-202-ref.html
deleted file mode 100644
index b078f52..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-202-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3043 HIRAGANA LETTER SMALL I (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3043;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-203-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-203-ref.html
deleted file mode 100644
index 1da911c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-203-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3045 HIRAGANA LETTER SMALL U (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3045;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-204-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-204-ref.html
deleted file mode 100644
index 8711bd3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-204-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3047 HIRAGANA LETTER SMALL E (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3047;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-205-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-205-ref.html
deleted file mode 100644
index 2aedd5e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-205-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3049 HIRAGANA LETTER SMALL O (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3049;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-206-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-206-ref.html
deleted file mode 100644
index 149310c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-206-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3063 HIRAGANA LETTER SMALL TU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3063;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-207-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-207-ref.html
deleted file mode 100644
index 1041f0c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-207-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3083 HIRAGANA LETTER SMALL YA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3083;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-208-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-208-ref.html
deleted file mode 100644
index d1f68e7..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-208-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3085 HIRAGANA LETTER SMALL YU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3085;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-209-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-209-ref.html
deleted file mode 100644
index 872ed64..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-209-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3087 HIRAGANA LETTER SMALL YO  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3087;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-210-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-210-ref.html
deleted file mode 100644
index c662bec..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-210-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 308E HIRAGANA LETTER SMALL WA  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x308E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-211-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-211-ref.html
deleted file mode 100644
index 6cbaec6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-211-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3095 HIRAGANA LETTER SMALL KA  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3095;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-212-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-212-ref.html
deleted file mode 100644
index 751d21f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-212-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3096 HIRAGANA LETTER SMALL KE  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x3096;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-213-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-213-ref.html
deleted file mode 100644
index 47724ce..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-213-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A1 KATAKANA LETTER SMALL A (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A1;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-214-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-214-ref.html
deleted file mode 100644
index 7408ff8..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-214-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A3 KATAKANA LETTER SMALL I (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-215-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-215-ref.html
deleted file mode 100644
index abf0386..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-215-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A5 KATAKANA LETTER SMALL U (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-216-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-216-ref.html
deleted file mode 100644
index d2de4d9..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-216-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A7 KATAKANA LETTER SMALL E (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-217-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-217-ref.html
deleted file mode 100644
index e482f1b..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-217-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A9 KATAKANA LETTER SMALL O (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30A9;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-218-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-218-ref.html
deleted file mode 100644
index a8e5d27..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-218-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30C3 KATAKANA LETTER SMALL TU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30C3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-219-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-219-ref.html
deleted file mode 100644
index 37dd1a4..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-219-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E3 KATAKANA LETTER SMALL YA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E3;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-220-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-220-ref.html
deleted file mode 100644
index 87fd769..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-220-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E5 KATAKANA LETTER SMALL YU (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-221-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-221-ref.html
deleted file mode 100644
index fb15f73..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-221-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30E7 KATAKANA LETTER SMALL YO (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30E7;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-222-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-222-ref.html
deleted file mode 100644
index 2f872b5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-222-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30EE KATAKANA LETTER SMALL WA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30EE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-223-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-223-ref.html
deleted file mode 100644
index d63772e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-223-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F5 KATAKANA LETTER SMALL KA (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F5;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-224-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-224-ref.html
deleted file mode 100644
index 115118f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-224-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30F6 KATAKANA LETTER SMALL KE (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30F6;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-225-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-225-ref.html
deleted file mode 100644
index bed7290..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-225-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカカ<br/>&#x30FC;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-226-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-226-ref.html
deleted file mode 100644
index 06f98c6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-226-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-227-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-227-ref.html
deleted file mode 100644
index 7581702..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-227-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-228-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-228-ref.html
deleted file mode 100644
index fde791a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-228-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-229-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-229-ref.html
deleted file mode 100644
index 4c35acf..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-229-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#x30A0;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-230-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-230-ref.html
deleted file mode 100644
index 7a2eb9c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-230-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-231-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-231-ref.html
deleted file mode 100644
index f261d27..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-231-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-232-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-232-ref.html
deleted file mode 100644
index 22568be..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-232-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309D HIRAGANA ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309D;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-233-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-233-ref.html
deleted file mode 100644
index fb0ac93..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-233-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 309E HIRAGANA VOICED ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かか<br/>か&#x309E;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-234-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-234-ref.html
deleted file mode 100644
index f4e84bd..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-234-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FD KATAKANA ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FD;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-235-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-235-ref.html
deleted file mode 100644
index 59b00fa..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-235-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FE KATAKANA VOICED ITERATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FE;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-236-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-236-ref.html
deleted file mode 100644
index 5a4d3e1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-236-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-237-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-237-ref.html
deleted file mode 100644
index dca3f05..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-237-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-238-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-238-ref.html
deleted file mode 100644
index cb92b6b1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-238-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 30FB KATAKANA MIDDLE DOT (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#x30FB;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-239-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-239-ref.html
deleted file mode 100644
index 2ee3d26..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-239-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-240-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-240-ref.html
deleted file mode 100644
index d6d2294..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-240-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-241-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-241-ref.html
deleted file mode 100644
index 6fdcd88..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-241-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF65 HALFWIDTH KATAKANA MIDDLE DOT (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-
-
-
-<div class='ref' lang='ja'>カカ<br/>カ&#xFF65;ナ</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-242-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-242-ref.html
deleted file mode 100644
index bf92e87..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-242-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-243-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-243-ref.html
deleted file mode 100644
index 7c52a11..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-243-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-244-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-244-ref.html
deleted file mode 100644
index a6149f1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-244-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-245-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-245-ref.html
deleted file mode 100644
index c2bb165..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-245-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-246-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-246-ref.html
deleted file mode 100644
index 77ef571..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-246-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-247-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-247-ref.html
deleted file mode 100644
index 4725e79..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-247-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-248-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-248-ref.html
deleted file mode 100644
index f2cad74..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-248-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-249-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-249-ref.html
deleted file mode 100644
index bf602c4..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-249-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-250-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-250-ref.html
deleted file mode 100644
index 1b75f33..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-250-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-251-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-251-ref.html
deleted file mode 100644
index 2e96e41..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-251-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-252-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-252-ref.html
deleted file mode 100644
index 088d529..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-252-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-254-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-254-ref.html
deleted file mode 100644
index a0ca36d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-254-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-255-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-255-ref.html
deleted file mode 100644
index c2d854c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-255-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-256-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-256-ref.html
deleted file mode 100644
index aa737fd..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-256-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-257-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-257-ref.html
deleted file mode 100644
index df1dddd..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-257-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-258-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-258-ref.html
deleted file mode 100644
index c7487f0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-258-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-259-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-259-ref.html
deleted file mode 100644
index fb23329..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-259-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref' lang='ja'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-260-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-260-ref.html
deleted file mode 100644
index 62b441f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-260-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  (normal,ja)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-
-
-
-<div class='ref' lang='ja'>かかか<br/>&#xFF70;な</div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-301-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-301-ref.html
deleted file mode 100644
index cc3ad23..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-301-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-302-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-302-ref.html
deleted file mode 100644
index a77e22e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-302-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-303-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-303-ref.html
deleted file mode 100644
index 4492033..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-303-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-304-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-304-ref.html
deleted file mode 100644
index 1fcc220..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-304-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-305-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-305-ref.html
deleted file mode 100644
index 24db183..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-305-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-306-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-306-ref.html
deleted file mode 100644
index 4293032..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-306-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-307-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-307-ref.html
deleted file mode 100644
index de4366f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-307-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-308-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-308-ref.html
deleted file mode 100644
index 613fe43..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-308-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-309-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-309-ref.html
deleted file mode 100644
index 9fb4757..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-309-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-310-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-310-ref.html
deleted file mode 100644
index 0585929..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-310-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-311-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-311-ref.html
deleted file mode 100644
index cc653fb..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-311-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-312-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-312-ref.html
deleted file mode 100644
index e46aa97..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-312-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-313-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-313-ref.html
deleted file mode 100644
index f40a57e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-313-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-314-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-314-ref.html
deleted file mode 100644
index 0bb89b3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-314-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-315-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-315-ref.html
deleted file mode 100644
index 1f08cdc..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-315-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-316-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-316-ref.html
deleted file mode 100644
index 8b599e7..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-316-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-317-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-317-ref.html
deleted file mode 100644
index 8adec79..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-317-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-318-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-318-ref.html
deleted file mode 100644
index f6030d9..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-318-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-319-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-319-ref.html
deleted file mode 100644
index 5f3b9f1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-319-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-320-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-320-ref.html
deleted file mode 100644
index cc54c15..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-320-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-321-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-321-ref.html
deleted file mode 100644
index f6030d9..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-321-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-322-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-322-ref.html
deleted file mode 100644
index c156ff5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-322-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-323-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-323-ref.html
deleted file mode 100644
index 15339ff..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-323-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-324-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-324-ref.html
deleted file mode 100644
index fbcc316..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-324-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-325-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-325-ref.html
deleted file mode 100644
index 1b3e533..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-325-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-326-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-326-ref.html
deleted file mode 100644
index 9ee68d6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-326-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-327-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-327-ref.html
deleted file mode 100644
index 237027a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-327-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (strict,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: strict; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-351-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-351-ref.html
deleted file mode 100644
index 42de27d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-351-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-352-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-352-ref.html
deleted file mode 100644
index c7b9181..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-352-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-353-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-353-ref.html
deleted file mode 100644
index aba0b2f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-353-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-354-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-354-ref.html
deleted file mode 100644
index 3aa60e8..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-354-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-355-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-355-ref.html
deleted file mode 100644
index d452a11..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-355-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-358-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-358-ref.html
deleted file mode 100644
index 99d59db..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-358-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-359-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-359-ref.html
deleted file mode 100644
index 31ce0d6..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-359-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-362-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-362-ref.html
deleted file mode 100644
index b030726..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-362-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-363-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-363-ref.html
deleted file mode 100644
index 94a27b9..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-363-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-364-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-364-ref.html
deleted file mode 100644
index 0d1df47..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-364-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-365-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-365-ref.html
deleted file mode 100644
index 27c15fe..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-365-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-366-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-366-ref.html
deleted file mode 100644
index f22a77c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-366-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-367-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-367-ref.html
deleted file mode 100644
index b2351f4..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-367-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-370-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-370-ref.html
deleted file mode 100644
index 14233e5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-370-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-372-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-372-ref.html
deleted file mode 100644
index 4bd341b..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-372-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-373-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-373-ref.html
deleted file mode 100644
index e7b8abb..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-373-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-374-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-374-ref.html
deleted file mode 100644
index 8280c67..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-374-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-375-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-375-ref.html
deleted file mode 100644
index 1a4098d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-375-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-376-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-376-ref.html
deleted file mode 100644
index 49cdff5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-376-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-377-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-377-ref.html
deleted file mode 100644
index bf848bb..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-377-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (loose,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: loose; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-401-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-401-ref.html
deleted file mode 100644
index 09cbf2f..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-401-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2010 HYPHEN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2010;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-402-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-402-ref.html
deleted file mode 100644
index 0408736..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-402-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2013 EN DASH (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x2013;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-403-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-403-ref.html
deleted file mode 100644
index 286805c..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-403-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 301C WAVE DASH (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中中<br/>&#x301C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-404-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-404-ref.html
deleted file mode 100644
index 02decf3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-404-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 3005 IDEOGRAPHIC ITERATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x3005;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-405-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-405-ref.html
deleted file mode 100644
index 9e9b0c8..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-405-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 303B VERTICAL IDEOGRAPHIC ITERATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x303B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-406-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-406-ref.html
deleted file mode 100644
index 035c77a..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-406-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003A COLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-407-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-407-ref.html
deleted file mode 100644
index 774593d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-407-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003B SEMICOLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-408-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-408-ref.html
deleted file mode 100644
index 8edd279..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-408-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1A FULLWIDTH COLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1A;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-409-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-409-ref.html
deleted file mode 100644
index 801ad7e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-409-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1B FULLWIDTH SEMICOLON (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1B;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-410-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-410-ref.html
deleted file mode 100644
index df70f56..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-410-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0021 EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0021;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-411-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-411-ref.html
deleted file mode 100644
index c865ab0..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-411-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 003F QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x003F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-412-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-412-ref.html
deleted file mode 100644
index dc0f4a5..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-412-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 203C DOUBLE EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x203C;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-413-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-413-ref.html
deleted file mode 100644
index 8069e62..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-413-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2047 DOUBLE QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2047;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-414-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-414-ref.html
deleted file mode 100644
index 09a265e..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-414-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2048 QUESTION EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2048;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-415-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-415-ref.html
deleted file mode 100644
index df22f36..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-415-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2049 EXCLAMATION QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2049;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-416-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-416-ref.html
deleted file mode 100644
index 66477b1..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-416-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF01 FULLWIDTH EXCLAMATION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF01;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-417-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-417-ref.html
deleted file mode 100644
index 5add0af..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-417-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF1F FULLWIDTH QUESTION MARK (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF1F;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-418-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-418-ref.html
deleted file mode 100644
index 4421793..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-418-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-419-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-419-ref.html
deleted file mode 100644
index 7c3ead4..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-419-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00A2 CENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00A2;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-420-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-420-ref.html
deleted file mode 100644
index 0cefda8..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-420-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 00B0 DEGREE SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x00B0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-421-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-421-ref.html
deleted file mode 100644
index 4421793..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-421-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 0025 PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x0025;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-422-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-422-ref.html
deleted file mode 100644
index 206486d..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-422-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2030 PER MILLE SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2030;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-423-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-423-ref.html
deleted file mode 100644
index ebb86a2..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-423-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2032 PRIME (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2032;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-424-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-424-ref.html
deleted file mode 100644
index e1bf2f3..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-424-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2033 DOUBLE PRIME (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2033;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-425-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-425-ref.html
deleted file mode 100644
index 1e3f252..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-425-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: 2103 DEGREE CELSIUS (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#x2103;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-426-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-426-ref.html
deleted file mode 100644
index af31192..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-426-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FF05 FULLWIDTH PERCENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFF05;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/reference/css3-text-line-break-jazh-427-ref.html b/css/css-text/i18n/reference/css3-text-line-break-jazh-427-ref.html
deleted file mode 100644
index 15f99c9..0000000
--- a/css/css-text/i18n/reference/css3-text-line-break-jazh-427-ref.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8"/>
-<title>CSS3 Text, linebreaks: FFE0 FULLWIDTH CENT SIGN (normal,zh)</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<meta name='flags' content=''>
-<style type='text/css'>
-@font-face {
-	font-family: 'mplus-1p-regular';
-	src: url('/fonts/mplus-1p-regular.woff') format('woff');
-	/* filesize: 803K */
-	}
-.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 93px; padding: 0; border: 1px solid orange; line-height: 1em; }
-.name { font-size: 10px; }
-.test { line-break: normal; }
-</style>
-</head>
-<body>
-<p class='instructions'>Test passes if the two orange boxes are identical.</p>
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-
-<div class='ref'>中中<br/>中&#xFFE0;文</div></div>
-
-
-
-
-</body>
-</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html
new file mode 100644
index 0000000..f3eb044
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (loose,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:loose, a browser allows a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-cpm-normal.html b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-normal.html
new file mode 100644
index 0000000..9511727
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-normal.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (normal,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:normal, a browser will NOT allow a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-cpm-strict.html b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-strict.html
new file mode 100644
index 0000000..d1cd8bf
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-cpm-strict.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: centred punctuation (strict,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:strict, a browser will NOT allow a break before one of the centred punctuation characters listed.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `30FB  KATAKANA MIDDLE DOT
+FF1A  FULLWIDTH COLON
+FF1B  FULLWIDTH SEMICOLON
+FF65  HALFWIDTH KATAKANA MIDDLE DOT
+203C  DOUBLE EXCLAMATION MARK
+2047  DOUBLE QUESTION MARK
+2048  QUESTION EXCLAMATION MARK
+2049  EXCLAMATION QUESTION MARK
+FF01  FULLWIDTH EXCLAMATION MARK
+FF1F  FULLWIDTH QUESTION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-loose.html b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-loose.html
new file mode 100644
index 0000000..b897e9b
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-loose.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (loose,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:loose, a browser allows a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-normal.html b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-normal.html
new file mode 100644
index 0000000..30be266
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-normal.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (normal,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:normal, a browser allows a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-strict.html b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-strict.html
new file mode 100644
index 0000000..f3278c3
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-hyphens-strict.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS3 Text, linebreaks: hyphens (strict,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:strict, a browser will NOT allow a break before a hyphen.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `2010 HYPHEN
+2013 EN DASH
+301C WAVE DASH
+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-in-loose.html b/css/css-text/i18n/zh/css-text-line-break-zh-in-loose.html
new file mode 100644
index 0000000..b137a73
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-in-loose.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (loose,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:loose, a browser allows a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-in-normal.html b/css/css-text/i18n/zh/css-text-line-break-zh-in-normal.html
new file mode 100644
index 0000000..d5fb7c9
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-in-normal.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (normal,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:normal, a browser will NOT allow a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-in-strict.html b/css/css-text/i18n/zh/css-text-line-break-zh-in-strict.html
new file mode 100644
index 0000000..fa47a89
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-in-strict.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: IN (strict,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:strict, a browser will NOT allow a break before an inseparable character.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `2024  ONE DOT LEADER
+2025  TWO DOT LEADER
+2026  HORIZONTAL ELLIPSIS
+22EF  MIDLINE HORIZONTAL ELLIPSIS
+FE19  PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-iteration-loose.html b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-loose.html
new file mode 100644
index 0000000..4c802ca
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-loose.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (loose,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:loose, a browser allows a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-iteration-normal.html b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-normal.html
new file mode 100644
index 0000000..d45c784
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-normal.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (normal,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:normal, a browser will NOT allow a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-iteration-strict.html b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-strict.html
new file mode 100644
index 0000000..0c29ec0
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-iteration-strict.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: iteration (strict,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:strict, a browser will NOT allow a break before an iteration mark.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `3005  IDEOGRAPHIC ITERATION MARK
+303B  VERTICAL IDEOGRAPHIC ITERATION MARK
+309D  HIRAGANA ITERATION MARK
+309E  HIRAGANA VOICED ITERATION MARK
+30FD  KATAKANA ITERATION MARK
+30FE  KATAKANA VOICED ITERATION MARK`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-po-loose.html b/css/css-text/i18n/zh/css-text-line-break-zh-po-loose.html
new file mode 100644
index 0000000..ab3c66a
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-po-loose.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (loose,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:loose, a browser allows a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: loose; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文文<br/>&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may appear at line start if zh and loose');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-po-normal.html b/css/css-text/i18n/zh/css-text-line-break-zh-po-normal.html
new file mode 100644
index 0000000..7144f4f
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-po-normal.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (normal,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:normal, a browser will NOT allow a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: normal; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and normal');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-text/i18n/zh/css-text-line-break-zh-po-strict.html b/css/css-text/i18n/zh/css-text-line-break-zh-po-strict.html
new file mode 100644
index 0000000..d1cf515
--- /dev/null
+++ b/css/css-text/i18n/zh/css-text-line-break-zh-po-strict.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html  lang="en" >
+<head>
+<meta charset="utf-8"/>
+<title>CSS text, linebreaks: PO AFW (strict,zh)</title>
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta name="assert" content="When the language is Chinese, and line-break:strict, a browser will NOT allow a break before a PO character with East Asian Width of A, F, or W.">
+<style type="text/css">
+@font-face {
+    font-family: 'mplus-1p-regular';
+    src: url('/fonts/CSSTest/mplus-1p-regular.woff') format('woff');
+    }
+#wrapper { position: relative; }
+.test { color: red; }
+.test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
+</style>
+<style>
+.test { line-break: strict; }
+</style>
+<script>
+var charlist = `00B0  DEGREE SIGN
+2030  PER MILLE SIGN
+2032  PRIME
+2033  DOUBLE PRIME
+2035  REVERSED PRIME
+2103  DEGREE CELSIUS
+2109  DEGREE FAHRENHEIT
+FE6A  SMALL PERCENT SIGN
+FF05  FULLWIDTH PERCENT SIGN
+FFE0  FULLWIDTH CENT SIGN`
+</script>
+</head>
+<body>
+<script>
+var lines = charlist.split('\n')
+var out = '<div id="log"></div>\n'
+for (var i=0;i<lines.length;i++) {
+	// get the data
+	var firstSpace = lines[i].indexOf(' ')
+	var hex = lines[i].substr(0,firstSpace)
+	var name = lines[i].substr(firstSpace)
+	// make a test
+	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
+	'<div class="test" id="test'+i+'" lang="zh">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
+	 '<div class="ref" id="ref'+i+'" lang="zh">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
+	 '</div>'
+	}
+document.querySelector('body').innerHTML = out
+// hide successful tests
+for (i=0;i<lines.length;i++) {
+    if (document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft) document.getElementById('test'+i).parentNode.style.display = 'none'
+    }
+// run the test framework
+ for (i=0;i<lines.length;i++) {
+   test(function() {
+        assert_true(document.getElementById('testSpan'+i).offsetLeft === document.getElementById('refSpan'+i).offsetLeft);
+        }, lines[i]+' may NOT appear at line start if zh and strict');
+   }
+</script>
+<!--Notes:
+The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
+
+It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
+-->
+</body>
+</html>
diff --git a/css/css-transforms/transform-box/view-box-mutation.html b/css/css-transforms/transform-box/view-box-mutation.html
new file mode 100644
index 0000000..0d4a0ec
--- /dev/null
+++ b/css/css-transforms/transform-box/view-box-mutation.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>transform-box: view-box, viewport mutated</title>
+<link rel="match" href="support/greensquare200x200.html">
+<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-box">
+<style>
+#target {
+  transform-box: view-box;
+  transform: translate(-50%, 0);
+}
+</style>
+<p>There should be a green 200x200 rectangle below, and no red.</p>
+<svg width="400" height="200">
+  <rect width="200" height="200" fill="red"/>
+  <rect id="target" x="100" width="200" height="200" fill="green"/>
+</svg>
+<script>
+requestAnimationFrame(function() {
+  requestAnimationFrame(function() {
+    document.querySelector('svg').setAttribute('width', 200);
+    document.documentElement.classList.remove('reftest-wait');
+  });
+});
+</script>
diff --git a/css/css-transitions/zero-duration-multiple-transition.html b/css/css-transitions/zero-duration-multiple-transition.html
new file mode 100644
index 0000000..4268ce7
--- /dev/null
+++ b/css/css-transitions/zero-duration-multiple-transition.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1461070">
+<link rel="author" title="Emilio Cobos Álvarez" href="emilio@crisal.io">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+  #t {
+    color: red;
+    transition-property: color, color;
+    transition-duration: 1s, 0s;
+  }
+</style>
+<div id="t"></div>
+<script>
+test(function() {
+  let div = document.getElementById("t");
+  assert_equals(getComputedStyle(div).color, "rgb(255, 0, 0)");
+
+  div.style.color = "green";
+  assert_equals(
+    div.getAnimations().length,
+    0,
+    "No transition should've started"
+  );
+
+  assert_equals(getComputedStyle(div).color, "rgb(0, 128, 0)");
+}, "transition-duration of 0 prevents earlier transitions with the same property from starting.");
+</script>
diff --git a/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html b/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html
index 6b623c2..80e4f44 100644
--- a/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html
+++ b/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html
@@ -23,4 +23,8 @@
   assert_throws(new SyntaxError(), () => CSSNumericValue.parse('calc(calc(1px * 2s) + 3%)'));
 }, 'Parsing a calc with incompatible units throws a SyntaxError');
 
+test(() => {
+  assert_style_value_equals(new CSSUnitValue(1, 'px'), CSSNumericValue.parse(' 1px  '));
+}, 'Parsing ignores surrounding spaces');
+
 </script>
diff --git a/css/css-ui/outline-020.html b/css/css-ui/outline-020.html
new file mode 100644
index 0000000..457f10a
--- /dev/null
+++ b/css/css-ui/outline-020.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-UI test: outline block with outline inline</title>
+  <link rel="author" title="Aleks Totic <atotic@chromium.org>" href="atotic@">
+  <meta name=assert content="">
+  <link rel=help href="https://drafts.csswg.org/css-ui-3/#outline-props">
+  <link rel="match" href="./reference/outline-020-ref.html">
+<style>
+#container {
+  outline: green solid 5px;
+  width: 100px;
+  height: 30px;
+  padding: 5px;
+}
+#target {
+  outline: blue solid 5px;
+}
+</style>
+
+  <p>Test passes if blue outline touches top left of green outline.</p>
+  <div id="container"><span id="target">x</span></div>
+
diff --git a/css/css-ui/reference/outline-020-ref.html b/css/css-ui/reference/outline-020-ref.html
new file mode 100644
index 0000000..194b633
--- /dev/null
+++ b/css/css-ui/reference/outline-020-ref.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-UI test: outline block with outline inline reference file</title>
+  <link rel="author" title="Aleks Totic <atotic@chromium.org>">
+  <meta name=assert content="inline child displays outline correctly">
+<style>
+#container {
+  border: 5px solid green;
+  width: 110px;
+  height: 40px;
+  position: relative;
+  top: -5px;
+  left: -5px;
+}
+
+#target {
+  border: 5px solid blue;
+  position: relative;
+  top: 5px;
+}
+</style>
+
+  <p>Test passes if blue outline touches top left of green outline.</p>
+  <div id="container"><span id="target">x</span></div>
+
diff --git a/css/css-writing-modes/test-plan/index.html b/css/css-writing-modes/test-plan/index.html
index 95c7cf1..926b62e 100644
--- a/css/css-writing-modes/test-plan/index.html
+++ b/css/css-writing-modes/test-plan/index.html
@@ -298,7 +298,7 @@
         <h3>Big number of tests required</h3>
         <div class="note">
           Add here the estimation of tests required produced by
-          <a href="https://github.com/w3c/web-platform-tests/tree/master/tools/coverage" target="_blank">W3C test coverage</a>
+          <a href="https://github.com/web-platform-tests/wpt/tree/master/tools/coverage" target="_blank">W3C test coverage</a>
           tool. If possible, provide a better informed guess on the number of tests.
         </div>
         <p>
diff --git a/css/cssom-view/elementsFromPoint-svg-text.html b/css/cssom-view/elementsFromPoint-svg-text.html
new file mode 100644
index 0000000..9729724
--- /dev/null
+++ b/css/cssom-view/elementsFromPoint-svg-text.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<title>Document.prototype.elementsFromPoint on SVG text content elements</title>
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-document-elementsfrompoint">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/elementsFromPoint.js"></script>
+<style>
+html, body {
+    margin: 0;
+    padding: 0;
+}
+#svg {
+    margin: 100px;
+    background-color: rgba(0,180,0,0.2);
+}
+text {
+    font-size: 50px;
+}
+</style>
+<div id='sandbox'>
+  <svg id='svg' width='300' height='300'>
+    <defs>
+      <path id="path" d="M10,170h1000"/>
+    </defs>
+    <text id="text1" x="10" y="50">Some text</text>
+    <text id="text2" x="10" y="110"><tspan id="tspan1">Some text</tspan></text>
+    <text id="text3"><textPath id="textpath1" xlink:href="#path">Some text</textPath></text>
+    <text id="text4" x="10" y="230">Text under<tspan id="tspan2" x="10">Text over</tspan></text>
+  </svg>
+</div>
+<script>
+test(function() {
+    assertElementsFromPoint('document', 125, 125,
+        [text1, svg, sandbox, document.body, document.documentElement]);
+}, 'elementsFromPoint for a point inside a <text>');
+
+test(function() {
+    assertElementsFromPoint('document', 125, 185,
+        [tspan1, svg, sandbox, document.body, document.documentElement]);
+}, 'elementsFromPoint for a point inside a <tspan> nested in a <text> without content');
+
+test(function() {
+    assertElementsFromPoint('document', 125, 245,
+        [textpath1, svg, sandbox, document.body, document.documentElement]);
+}, 'elementsFromPoint for a point inside a <textPath> nested in a <text> without content');
+
+test(function() {
+    assertElementsFromPoint('document', 125, 305,
+        [tspan2, text4, svg, sandbox, document.body, document.documentElement]);
+}, 'elementsFromPoint for a point inside an overlapping <tspan> nested in a <text>');
+</script>
diff --git a/css/cssom-view/scrollIntoView-smooth.html b/css/cssom-view/scrollIntoView-smooth.html
index 8799b8b..70343cb 100644
--- a/css/cssom-view/scrollIntoView-smooth.html
+++ b/css/cssom-view/scrollIntoView-smooth.html
@@ -45,13 +45,13 @@
   window.scrollTo(0, 0);
   var expected_x = content.offsetLeft + content_width - window_width;
   var expected_y = content.offsetTop + content_height - window_height;
-  assert_not_equals(window.scrollX, expected_x);
-  assert_not_equals(window.scrollY, expected_y);
+  assert_not_equals(window.scrollX, expected_x, "scrollX");
+  assert_not_equals(window.scrollY, expected_y, "scrollY");
   content.scrollIntoView({behavior: "smooth", block: "nearest", inline:
 "nearest"});
   return waitForScrollEnd().then(() => {
-    assert_approx_equals(window.scrollX, expected_x, 1);
-    assert_approx_equals(window.scrollY, expected_y, 1);
+    assert_approx_equals(window.scrollX, expected_x, 1, "scrollX");
+    assert_approx_equals(window.scrollY, expected_y, 1, "scrollY");
   });
 }, "Smooth scrollIntoView should scroll the element to the 'nearest' position");
 
@@ -59,13 +59,13 @@
   window.scrollTo(0, 0);
   var expected_x = content.offsetLeft;
   var expected_y = content.offsetTop;
-  assert_not_equals(window.scrollX, expected_x);
-  assert_not_equals(window.scrollY, expected_y);
+  assert_not_equals(window.scrollX, expected_x, "scrollX");
+  assert_not_equals(window.scrollY, expected_y, "scrollY");
   content.scrollIntoView({behavior: "smooth", block: "start", inline:
 "start"});
   return waitForScrollEnd().then(() => {
-    assert_approx_equals(window.scrollX, expected_x, 1);
-    assert_approx_equals(window.scrollY, expected_y, 1);
+    assert_approx_equals(window.scrollX, expected_x, 1, "scrollX");
+    assert_approx_equals(window.scrollY, expected_y, 1, "scrollY");
   });
 }, "Smooth scrollIntoView should scroll the element to the 'start' position");
 
@@ -73,13 +73,13 @@
   window.scrollTo(0, 0);
   var expected_x = content.offsetLeft + (content_width - window_width) / 2;
   var expected_y = content.offsetTop + (content_height - window_height) / 2;
-  assert_not_equals(window.scrollX, expected_x);
-  assert_not_equals(window.scrollY, expected_y);
+  assert_not_equals(window.scrollX, expected_x, "scrollX");
+  assert_not_equals(window.scrollY, expected_y, "scrollY");
   content.scrollIntoView({behavior: "smooth", block: "center", inline:
 "center"});
   return waitForScrollEnd().then(() => {
-    assert_approx_equals(window.scrollX, expected_x, 1);
-    assert_approx_equals(window.scrollY, expected_y, 1);
+    assert_approx_equals(window.scrollX, expected_x, 1, "scrollX");
+    assert_approx_equals(window.scrollY, expected_y, 1, "scrollY");
   });
 }, "Smooth scrollIntoView should scroll the element to the 'center' position");
 
@@ -87,15 +87,15 @@
   window.scrollTo(0, 0);
   var expected_x = content.offsetLeft + content_width - window_width;
   var expected_y = content.offsetTop + content_height - window_height;
-  assert_not_equals(window.scrollX, expected_x);
-  assert_not_equals(window.scrollY, expected_y);
+  assert_not_equals(window.scrollX, expected_x, "scrollX");
+  assert_not_equals(window.scrollY, expected_y, "scrollY");
   content.scrollIntoView({behavior: "smooth", block: "end", inline:
 "end"});
   return waitForScrollEnd().then(() => {
-    assert_approx_equals(window.scrollX, expected_x, 1);
-    assert_approx_equals(window.scrollY, expected_y, 1);
+    assert_approx_equals(window.scrollX, expected_x, 1, "scrollX");
+    assert_approx_equals(window.scrollY, expected_y, 1, "scrollY");
   });
 }, "Smooth scrollIntoView should scroll the element to the 'end' position");
 
 });
-</script>
\ No newline at end of file
+</script>
diff --git a/css/cssom/at-namespace.html b/css/cssom/at-namespace.html
new file mode 100644
index 0000000..04a8a22
--- /dev/null
+++ b/css/cssom/at-namespace.html
@@ -0,0 +1,29 @@
+<!doctype html>
+<title>CSS Test: @namespace in CSSOM is not severely broken</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1464865">
+<link rel="help" href="https://drafts.csswg.org/cssom/#insert-a-css-rule">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style id="s">
+  div { color: green }
+</style>
+<div>Should be green</div>
+<script>
+test(function() {
+  assert_throws("InvalidStateError", function() {
+    s.sheet.insertRule('@namespace myhtml url("http://www.w3.org/1999/xhtml")', 0);
+  });
+  assert_equals(s.sheet.cssRules.length, 1, "Shouldn't have been inserted");
+  assert_throws("SyntaxError", function() {
+    s.sheet.insertRule("myhtml|div { color: red !important }", 0);
+  });
+  assert_equals(s.sheet.cssRules.length, 1);
+  assert_equals(
+    getComputedStyle(document.querySelector("div")).color,
+    "rgb(0, 128, 0)",
+    "Namespace shouldn't be registered"
+  );
+});
+</script>
+
diff --git a/css/cssom/computed-style-set-property.html b/css/cssom/computed-style-set-property.html
new file mode 100644
index 0000000..a5fcc15
--- /dev/null
+++ b/css/cssom/computed-style-set-property.html
@@ -0,0 +1,37 @@
+<!DOCTYPE>
+<title>NoModificationAllowedError when mutating read only properties</title>
+<link rel="author" title="Anders Hartvoll Ruud" href="andruud@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/cssom-1/#dom-cssstyledeclaration-setpropertyvalue">
+<meta name="assert" content="This test verifies that NoModificationAllowedError is thrown when mutating read only properties" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body></body>
+<script>
+test(function(t) {
+    assert_equals(document.defaultView.getComputedStyle(document.body, null).parentRule, null);
+}, "Computed style parent (should be null)");
+
+test(function(t) {
+    assert_throws("NoModificationAllowedError", function() {
+        document.defaultView.getComputedStyle(document.body, null).color = "blue";
+    });
+}, "Exception thrown when trying to change a computed style declaration via property");
+
+test(function(t) {
+    assert_throws("NoModificationAllowedError", function() {
+        document.defaultView.getComputedStyle(document.body, null).setProperty("color", "blue");
+    });
+}, "Exception thrown when trying to change a computed style declaration via setProperty");
+
+test(function(t) {
+    assert_throws("NoModificationAllowedError", function() {
+        document.defaultView.getComputedStyle(document.body, null).webkitTransition = "";
+    });
+}, "Exception thrown when trying to change a computed style alias via property");
+
+test(function(t) {
+    assert_throws("NoModificationAllowedError", function() {
+        document.defaultView.getComputedStyle(document.body, null).setProperty("webkitTransition", "");
+    });
+}, "Exception thrown when trying to change a computed style alias via setProperty");
+</script>
diff --git a/css/cssom/getComputedStyle-detached-subtree.html b/css/cssom/getComputedStyle-detached-subtree.html
index 3b59ccb..1cbb92a 100644
--- a/css/cssom/getComputedStyle-detached-subtree.html
+++ b/css/cssom/getComputedStyle-detached-subtree.html
@@ -17,7 +17,7 @@
     assert_true(!!element);
     let style = getComputedStyle(element);
     assert_true(!!style);
-    assert_equals(style.length, 0);
+    assert_true(style.length === 0);
     assert_equals(style.color, "");
   }, `getComputedStyle returns no style for ${description}`);
 }
diff --git a/css/cssom/historical.html b/css/cssom/historical.html
index ddd264c..44f3f6c 100644
--- a/css/cssom/historical.html
+++ b/css/cssom/historical.html
@@ -23,6 +23,28 @@
 });
 
 [
+  "Rect",
+  "RGBColor",
+  "CSSValue",
+  "CSSPrimitiveValue",
+  "CSSValueList",
+].forEach(function(name) {
+  test(function() {
+    assert_false(name in window);
+  }, "Historical interface: " + name);
+});
+
+[
+  "getPropertyCSSValue",
+  "setPropertyValue",
+  "setPropertyPriority",
+].forEach(function(name) {
+  test(function() {
+    assert_false(name in document.body.style);
+  }, "Historical CSSStyleDeclaration member: " + name);
+});
+
+[
   "cascadedStyle",
   "defaultStyle",
   "rawComputedStyle",
diff --git a/css/cssom/insertRule-charset-no-index.html b/css/cssom/insertRule-charset-no-index.html
index b94dc11..16f2358 100644
--- a/css/cssom/insertRule-charset-no-index.html
+++ b/css/cssom/insertRule-charset-no-index.html
@@ -19,7 +19,7 @@
         sheet.insertRule("p { color: green; }");
         assert_equals(sheet.cssRules.length, 1);
         assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }");
-    }, "inserRule with charset and omitted index argument");
+    }, "insertRule with charset and omitted index argument");
 
     test(function() {
         assert_equals(sheet.cssRules.length, 1);
diff --git a/css/cssom/insertRule-import-no-index.html b/css/cssom/insertRule-import-no-index.html
index c97d394..ad3622f 100644
--- a/css/cssom/insertRule-import-no-index.html
+++ b/css/cssom/insertRule-import-no-index.html
@@ -20,7 +20,7 @@
         assert_equals(sheet.cssRules.length, 1);
         assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); });
         assert_equals(sheet.cssRules.length, 1);
-    }, "inserRule with import and omitted index argument");
+    }, "insertRule with import and omitted index argument");
 
     test(function() {
         assert_equals(sheet.cssRules.length, 1);
diff --git a/css/cssom/insertRule-namespace-no-index.html b/css/cssom/insertRule-namespace-no-index.html
index 8a3315d..c1628ee 100644
--- a/css/cssom/insertRule-namespace-no-index.html
+++ b/css/cssom/insertRule-namespace-no-index.html
@@ -22,7 +22,7 @@
         assert_equals(sheet.cssRules.length, 3);
         assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); });
         assert_equals(sheet.cssRules.length, 3);
-    }, "inserRule with namespace and omitted index argument");
+    }, "insertRule with namespace and omitted index argument");
 
     test(function() {
         assert_equals(sheet.cssRules.length, 3);
@@ -34,7 +34,7 @@
         assert_equals(sheet.cssRules.length, 3);
         sheet.insertRule("@import url(\"support/a-green.css\");");
         assert_equals(sheet.cssRules.length, 4);
-    }, "inserRule with namespace and omitted index argument should insert import");
+    }, "insertRule with namespace and omitted index argument should insert import");
 </script>
 </body>
 </html>
diff --git a/css/cssom/insertRule-no-index.html b/css/cssom/insertRule-no-index.html
index c9704b7..b4370bd 100644
--- a/css/cssom/insertRule-no-index.html
+++ b/css/cssom/insertRule-no-index.html
@@ -22,7 +22,7 @@
         sheet.insertRule("p { color: green; }");
         assert_equals(sheet.cssRules.length, 2);
         assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }");
-    }, "inserRule with omitted index argument");
+    }, "insertRule with omitted index argument");
 
     test(function() {
         assert_equals(sheet.cssRules.length, 2);
diff --git a/css/geometry/DOMMatrix-003.html b/css/geometry/DOMMatrix-003.html
index dee19e7..9b77f19 100644
--- a/css/geometry/DOMMatrix-003.html
+++ b/css/geometry/DOMMatrix-003.html
@@ -57,7 +57,7 @@
           }
 
           // The 3D rotation matrix is described in CSS Transforms with alpha.
-          // Please see: https://drafts.csswg.org/css-transforms-1/#Rotate3dDefined
+          // Please see: https://drafts.csswg.org/css-transforms-2/#Rotate3dDefined
           var alpha_in_radians = deg2rad(alpha_in_degrees / 2);
           var sc = Math.sin(alpha_in_radians) * Math.cos(alpha_in_radians);
           var sq = Math.sin(alpha_in_radians) * Math.sin(alpha_in_radians);
diff --git a/css/selectors/focus-visible-001-manual.html b/css/selectors/focus-visible-001-manual.html
index 956b1a9..ab3754e 100644
--- a/css/selectors/focus-visible-001-manual.html
+++ b/css/selectors/focus-visible-001-manual.html
@@ -8,21 +8,21 @@
   <script src="/resources/testharness.js"></script>
   <script src="/resources/testharnessreport.js"></script>
   <style>
-    :focus-visible { color: rgb(0, 128, 0); }
+    :focus-visible { background-color: rgb(128, 196, 128); }
   </style>
 </head>
 <body>
   <ol id="instructions">
     <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
     <li>Use the TAB key on the keyboard to focus the element below that says "Focus me."</li>
-    <li>If the element does not have green text, then the test result is FAILURE. If the element has green text, then the test result is SUCCESS.</li>
+    <li>If the element does not have a green background, then the test result is FAILURE. If the element has a green background, then the test result is SUCCESS.</li>
   </ol>
   <br />
   <div id="el" tabindex="0">Focus me.</div>
   <script>
     async_test(function(t) {
       el.addEventListener("focus", t.step_func(function() {
-        assert_equals(getComputedStyle(el).color, "rgb(0, 128, 0)");
+          assert_equals(getComputedStyle(el).backgroundColor, "rgb(128, 196, 128)");
         t.done();
       }));
     }, "Keyboard focus should match :focus-visible");
diff --git a/css/selectors/focus-visible-002-manual.html b/css/selectors/focus-visible-002-manual.html
new file mode 100644
index 0000000..20dc2b0
--- /dev/null
+++ b/css/selectors/focus-visible-002-manual.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    :focus-visible { background-color: rgb(128, 196, 128); }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li><strong>Click</strong> each form element below to focus it.</li>
+    <li>If the element does not have a green background, then the test result is FAILURE. If the element has a green background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <div>
+    <input data-tested="false" id="input1" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input2" type="text" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input3" type="email" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input4" type="password" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input5" type="search" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input6" type="telephone" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input7" type="url" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input8" type="number" value="10000"></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input9" type="date"></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input10" type="datetime-local"></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input11" type="month"></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input12" type="time"></input>
+  </div>
+  <div>
+    <input data-tested="false" id="input13" type="week"></input>
+  </div>
+  <div>
+    <textarea data-tested="false" id="input14">Focus me.</textarea>
+  </div>
+  <div>
+    <select data-tested="false" id="input15">
+      <option>Focus me.</option>
+      <option>Focus me.</option>
+    </select>
+  </div>
+  <script>
+    async_test(function(t) {
+        function testNextTarget(e) {
+            let el = e.target;
+            assert_equals(getComputedStyle(el).backgroundColor,
+                          "rgb(128, 196, 128)");
+            el.dataset.tested = true;
+            let nextTarget = document.querySelector("[data-tested=false]");
+            if (nextTarget) {
+                nextTarget.addEventListener("click", testNextTarget);
+                mouseClickInTarget("[data-tested=false]");
+            } else {
+                t.done();
+            }
+        }
+        input1.addEventListener("click", t.step_func(testNextTarget));
+    }, "Mouse focus on elements which would show a virtual keyboard should match :focus-visible");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/focus-visible-003-manual.html b/css/selectors/focus-visible-003-manual.html
new file mode 100644
index 0000000..6d87b4b
--- /dev/null
+++ b/css/selectors/focus-visible-003-manual.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    :focus:not(:focus-visible) { background-color: rgb(128, 196, 128); }
+    label:focus-within:not(:focus-visible) { background-color: rgb(128, 196, 128); }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li>Click each element element below to focus it.</li>
+    <li>If the element does not have a green background, then the test result is FAILURE. If the element has a green background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <div>
+    <span data-tested="false" id="el-1" tabindex="1">Focus me</span>
+  </div>
+  <div>
+    <span data-tested="false" id="el-2" tabindex="-1">Focus me</span>
+  </div>
+  <div>
+    <span data-tested="false" id="el-3" tabindex="0">Focus me</span>
+  </div>
+  <div>
+    <button data-tested="false" id="el-4">Focus me</span>
+  </div>
+  <div>
+    <input data-tested="false" id="el-5" type="button" value="Focus me"</input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-6" type="image" alt="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-7" type="reset" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-8" type="submit" value="Focus me."></input>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-9" type="checkbox"></input> Focus me.</label>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-10" type="radio"></input> Focus me.</label>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-11" type="color"></input> Focus me.</label>
+  </div>
+  <div>
+    <!-- Focusing file input triggers a modal, so only test manually -->
+    <input id="el-12" type="file" value="Focus me."></input>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-13" type="range"></input> Focus me.</label>
+  </div>
+  <script>
+    async_test(function(t) {
+        document.querySelectorAll("[data-tested]").forEach((el) => {
+            el.addEventListener("click", t.step_func((e) => {
+                let el = e.target;
+                assert_equals(getComputedStyle(el).backgroundColor,
+                              "rgb(128, 196, 128)");
+                el.dataset.tested = true;
+                if (document.querySelector("[data-tested=false]")) {
+                    mouseClickInTarget("[data-tested=false]");
+                } else {
+                    t.done();
+                }
+            }));
+        });
+    }, "Mouse focus on input elements which do not show a virtual keyboard should NOT match :focus-visible");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/focus-visible-004-manual.html b/css/selectors/focus-visible-004-manual.html
new file mode 100644
index 0000000..734e19d
--- /dev/null
+++ b/css/selectors/focus-visible-004-manual.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Rob Dodson" href="robdodson@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    :focus:not(:focus-visible) { background-color: rgb(128, 196, 128); }
+    label:focus-within:not(:focus-visible) { background-color: rgb(128, 196, 128); }
+    * { -webkit-appearance: none }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li>Click each element element below to focus it.</li>
+    <li>If the element does not have a green background, then the test result is FAILURE. If the element has a green background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <div>
+    <span data-tested="false" id="el-1" tabindex="1">Focus me</span>
+  </div>
+  <div>
+    <span data-tested="false" id="el-2" tabindex="-1">Focus me</span>
+  </div>
+  <div>
+    <span data-tested="false" id="el-3" tabindex="0">Focus me</span>
+  </div>
+  <div>
+    <button data-tested="false" id="el-4">Focus me</span>
+  </div>
+  <div>
+    <input data-tested="false" id="el-5" type="button" value="Focus me"</input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-6" type="image" alt="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-7" type="reset" value="Focus me."></input>
+  </div>
+  <div>
+    <input data-tested="false" id="el-8" type="submit" value="Focus me."></input>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-9" type="checkbox"></input> Focus me.</label>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-10" type="radio"></input> Focus me.</label>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-11" type="color"></input> Focus me.</label>
+  </div>
+  <div>
+    <!-- Focusing file input triggers a modal, so only test manually -->
+    <input id="el-12" type="file" value="Focus me."></input>
+  </div>
+  <div>
+    <label><input data-tested="false" id="el-13" type="range"></input> Focus me.</label>
+  </div>
+  <script>
+    async_test(function(t) {
+        document.querySelectorAll("[data-tested]").forEach((el) => {
+            el.addEventListener("click", t.step_func((e) => {
+                let el = e.target;
+                assert_equals(getComputedStyle(el).backgroundColor,
+                              "rgb(128, 196, 128)");
+                el.dataset.tested = true;
+                if (document.querySelector("[data-tested=false]")) {
+                    mouseClickInTarget("[data-tested=false]");
+                } else {
+                    t.done();
+                }
+            }));
+        });
+    }, "Mouse focus on input elements which do not show a virtual keyboard should NOT match :focus-visible - not affected by -webkit-appearance");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/focus-visible-005-manual.html b/css/selectors/focus-visible-005-manual.html
new file mode 100644
index 0000000..ba8a9dd
--- /dev/null
+++ b/css/selectors/focus-visible-005-manual.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Rob Dodson" href="robdodson@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    :focus-visible { background-color: rgb(128, 196, 128); }
+    :focus:not(:focus-visible) { background-color: rgb(196, 128, 128); }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li>Click the button below that says "Click me."</li>
+    <li>If the element that says "I will be focused programmatically." does not have a green background, then the test result is FAILURE. If the element has green background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <button id="button">Click me.</button>
+  <div id="el" tabindex="-1">I will be focused programmatically.</el>
+  <script>
+    button.addEventListener("click", () => {
+        el.focus();
+    });
+    async_test(function(t) {
+        el.addEventListener("focus", t.step_func(() => {
+            assert_equals(getComputedStyle(el).backgroundColor,
+                          "rgb(128, 196, 128)");
+            t.done();
+        }));
+        el.focus();
+    }, "Programmatic focus should always match :focus-visible");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/focus-visible-005.html b/css/selectors/focus-visible-005.html
new file mode 100644
index 0000000..25387d0
--- /dev/null
+++ b/css/selectors/focus-visible-005.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Rob Dodson" href="robdodson@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    :focus-visible { background-color: rgb(128, 196, 128); }
+    :focus:not(:focus-visible) { background-color: rgb(196, 128, 128); }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li>Click the button below that says "Click me."</li>
+    <li>If the element that says "I will be focused programmatically." does not have a <strong>green</strong> background, then the test result is FAILURE. If the element <em>has</em> a <strong>green</strong> background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <button id="button">Click me.</button>
+  <div id="el" tabindex="-1">I will be focused programmatically.</el>
+  <script>
+    button.addEventListener("click", () => {
+        el.focus();
+    });
+    async_test(function(t) {
+        el.addEventListener("focus", t.step_func(() => {
+            assert_equals(getComputedStyle(el).backgroundColor,
+                          "rgb(128, 196, 128)");
+            t.done();
+        }));
+        el.focus();
+    }, "Programmatic focus should always match :focus-visible");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/focus-visible-006-manual.html b/css/selectors/focus-visible-006-manual.html
new file mode 100644
index 0000000..1e0f407
--- /dev/null
+++ b/css/selectors/focus-visible-006-manual.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8" />
+  <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+  <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" />
+  <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    span[contenteditable] {
+        border: 1px solid black;
+        background-color: white;
+        padding: 2px 5px;
+    }
+    span[contenteditable]:focus-visible { background-color: rgb(128, 196, 128); }
+  </style>
+</head>
+<body>
+  <ol id="instructions">
+    <li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li>
+    <li><strong>Click</strong> the content editable span below to focus it.</li>
+    <li>If the element does not have a green background, then the test result is FAILURE. If the element has a green background, then the test result is SUCCESS.</li>
+  </ol>
+  <br />
+  <div>
+    <span id="el" contenteditable>Focus me</span>
+  </div>
+  <script>
+    async_test(function(t) {
+      el.addEventListener("focus", t.step_func(function() {
+        assert_equals(getComputedStyle(el).backgroundColor, "rgb(128, 196, 128)");
+        t.done();
+      }));
+    }, "Focus should always match :focus-visible on content editable divs");
+  </script>
+</body>
+</html>
diff --git a/css/selectors/invalidation/matches.html b/css/selectors/invalidation/matches.html
index ae5531a..634ded3 100644
--- a/css/selectors/invalidation/matches.html
+++ b/css/selectors/invalidation/matches.html
@@ -36,6 +36,9 @@
       .a+.c>.e {
         color: black;
       }
+      .c>.a+.e {
+        color: black;
+      }
       .a+:matches(.b+.f, :matches(.c>.e, .g)) {
         color: red;
       }
@@ -74,6 +77,7 @@
       </div>
     </div>
     <div class="c" id="c2">
+      <div id="a2"></div>
       <div class="e" id="e2">
         Red
       </div>
@@ -120,6 +124,8 @@
 
       test(() => {
         a1.className = "a";
+        assert_equals(getComputedStyle(e2).color, black);
+        a2.className = "a";
         assert_equals(getComputedStyle(e2).color, red);
       }, "Invalidate nested :matches().");
 
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html b/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html
index d14234b..8f99ea1 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html
@@ -10,6 +10,6 @@
   <meta charset="utf-8">
 </head>
 <body>
-  a ab bx x
+  a a<div style="display:inline-block">b b</div>x x
 </body>
 </html>
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-056.html b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-056.html
index 056d40b..ad9806d 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-056.html
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-056.html
@@ -17,6 +17,10 @@
                                      its containing block.">
     </head>
     <style>
+    @font-face {
+        font-family: Ahem;
+        src: url(support/Ahem.ttf);
+    }
     body {
         margin: 0;
     }
@@ -41,7 +45,7 @@
         padding: 10px;
         border: 10px solid transparent;
         shape-margin: 10px;
-        shape-outside: margin-box circle(99% at top left);
+        shape-outside: margin-box circle(70px at 90px 90px);
     }
     #line {
         position: absolute;
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-ellipse-052.html b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-ellipse-052.html
index 831b101..5441493 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-ellipse-052.html
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-ellipse-052.html
@@ -15,6 +15,10 @@
                                      is offset from its containing block.">
     </head>
     <style>
+    @font-face {
+        font-family: Ahem;
+        src: url(support/Ahem.ttf);
+    }
     body {
         margin: 0;
     }
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html
index 126e0b9..2b555be 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html
@@ -16,6 +16,10 @@
                                      offset from its containing block.">
     </head>
     <style>
+        @font-face {
+            font-family: Ahem;
+            src: url(support/Ahem.ttf);
+        }
         body {
             margin: 0;
         }
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/support/Ahem.ttf b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/support/Ahem.ttf
new file mode 100644
index 0000000..ac81cb0
--- /dev/null
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/support/Ahem.ttf
Binary files differ
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context-ref.html b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context-ref.html
new file mode 100644
index 0000000..31be3d0
--- /dev/null
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS transforms: 'perspective' on a non-transformable element doesn't create a stacking context</title>
+<link rel="author" title="Matt Woodrow" href="mailto:mwoodrow@mozilla.com">
+<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+<style>
+  html, body { margin: 0; padding: 0 }
+  #fixedmoves {
+    position: absolute;
+    background: green;
+    height: 100px;
+    width: 100px;
+  }
+</style>
+<body>
+  <div id="fixedmoves"></div>
+</body>
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context.html b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context.html
new file mode 100644
index 0000000..8916a39
--- /dev/null
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-untransformable-no-stacking-context.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS transforms: 'perspective' on a non-transformable element doesn't create a stacking context</title>
+<link rel="author" title="Matt Woodrow" href="mailto:mwoodrow@mozilla.com">
+<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#perspective-property">
+<link rel="match" href="perspective-untransformable-no-stacking-context-ref.html">
+<meta name="assert" content="Perspective on a non-transformable element shouldn't create a stacking context.">
+<style>
+* { margin: 0; padding: 0; }
+div, span { width: 100px; height: 100px }
+#perspective { background: green; padding-top: 100px; perspective: 100px; }
+#child { display:inline-block; z-index: -1; position:absolute; background: red; }
+#spacer { display:inline-block; }
+#wrapper { overflow:hidden }
+</style>
+<body>
+  <div id="wrapper">
+    <span id="perspective">
+      <div id="child">
+      </div>
+      <span id="spacer"></span>
+    </span>
+  </div>
+</body>
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list
index f398b1b..33773a4 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list
@@ -4,6 +4,7 @@
 == perspective-containing-block-dynamic-1b.html containing-block-dynamic-1-ref.html
 == perspective-zero.html reference/green.html
 == perspective-zero-2.html perspective-zero-2-ref.html
+== perspective-untransformable-no-stacking-context.html perspective-untransformable-no-stacking-context-ref.html
 
 == individual-transform-1.html individual-transform-1-ref.html
 == individual-transform-2a.html individual-transform-2-ref.html
diff --git a/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/reftest.list b/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/reftest.list
index cdbd971..be4eea1 100644
--- a/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/reftest.list
+++ b/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/reftest.list
@@ -1,4 +1,3 @@
-
 == text-combine-upright-break-inside-001.html text-combine-upright-break-inside-001-ref.html
 == text-combine-upright-break-inside-001a.html text-combine-upright-break-inside-001-ref.html
 == text-combine-upright-compression-001.html text-combine-upright-compression-001-ref.html
diff --git a/custom-elements/connected-callbacks-html-fragment-parsing.html b/custom-elements/connected-callbacks-html-fragment-parsing.html
new file mode 100644
index 0000000..f24cc20
--- /dev/null
+++ b/custom-elements/connected-callbacks-html-fragment-parsing.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Custom Elements: the HTML fragment parsing algorithm must not create a custom element synchronously</title>
+<meta name="author" title="Rob Buis" href="mailto:rbuis@igalia.com">
+<meta name="assert" content="The HTML fragment parsing algorithm must enqueue a custom element upgrade reaction instead of synchronously invoking its constructor">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/parsing.html#create-an-element-for-the-token">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/custom-elements-helpers.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+
+let iteration = 0;
+
+document_types().forEach(function (entry) {
+    var documentName = entry.name;
+    var getDocument = entry.create;
+    let calls = 0;
+
+    promise_test(function () {
+        class Parenter extends HTMLElement {
+            connectedCallback() {
+                const child = this.firstChild;
+                this.removeChild(child);
+                this.appendChild(child);
+            }
+        }
+        class Child extends HTMLElement {
+            connectedCallback() { calls++; }
+        }
+        iteration++;
+        let parenter = 'x-parenter' + iteration;
+        let child = 'x-child' + iteration;
+        customElements.define(parenter, Parenter);
+        customElements.define(child, Child);
+        return getDocument().then(function (doc) {
+            document.documentElement.innerHTML = `<${parenter}><${child}></${child}></${parenter}>`;
+            doc.documentElement.appendChild(document.documentElement.firstChild);
+            assert_equals(calls, 1);
+        });
+    }, `Inserting a custom element into ${documentName} using HTML fragment parsing must enqueue a custom element upgrade reaction, not synchronously invoke its constructor`);
+});
+
+</script>
+</body>
+</html>
diff --git a/docs/_appendix/github-intro.md b/docs/_appendix/github-intro.md
index 6ed68ed..06b2a39 100644
--- a/docs/_appendix/github-intro.md
+++ b/docs/_appendix/github-intro.md
@@ -48,7 +48,7 @@
 The test repository that you contribute to will depend on the specification
 that you are testing.
 
-**Main W3C test repository**: [github.com/w3c/web-platform-tests][main-repo]
+**Main W3C test repository**: [github.com/web-platform-tests/wpt][main-repo]
 
 ## Fork
 
@@ -111,7 +111,7 @@
 3.  Next, add the remote of the repository your forked.  This assigns the
     original repository to a remote called "upstream":
 
-        $ git remote add upstream https://github.com/w3c/web-platform-tests.git
+        $ git remote add upstream https://github.com/web-platform-tests/wpt.git
 
 4.  To pull in changes in the original repository that are not present in your
     local repository first fetch them:
@@ -219,7 +219,7 @@
     of the UI, then click the ![new pull request][pullrequestbtn] button.
 
     2.  On the left, you should see the base repo is the
-        w3c/web-platform-tests. On the right, you should see your fork of that
+        web-platform-tests/wpt. On the right, you should see your fork of that
         repo. In the branch menu of your forked repo, switch to `topic`
 
         **Note:** If you see _'There isn't anything to compare'_, click
@@ -323,8 +323,8 @@
 but the reviewer still wants to make some simple tweaks to the tests before merging,
 it is possible to do so via the Github web UI.
 
-1. Open the pull request. E.g. https://github.com/w3c/web-platform-tests/pull/1234
-2. Go to the ![Files changed][files-changed] view (e.g. https://github.com/w3c/web-platform-tests/pull/1234/files)
+1. Open the pull request. E.g. https://github.com/web-platform-tests/wpt/pull/1234
+2. Go to the ![Files changed][files-changed] view (e.g. https://github.com/web-platform-tests/wpt/pull/1234/files)
 3. Locate the files you wish to change, and click the ![pencil][pencil-icon] icon in the upper right corner
 4. Make the desired change
 5. Write a commit message (including a good title) at the bottom
@@ -393,7 +393,7 @@
 [github-fork-docs]: https://help.github.com/articles/fork-a-repo
 [github-createpr]: https://help.github.com/articles/creating-a-pull-request
 [help]: https://help.github.com/
-[main-repo]: https://github.com/w3c/web-platform-tests
+[main-repo]: https://github.com/web-platform-tests/wpt
 [password-caching]: https://help.github.com/articles/caching-your-github-password-in-git
 [pullrequestlink]: {{ site.baseurl }}{% link /assets/pullrequestlink.png %}
 [pullrequestbtn]: {{ site.baseurl }}{% link /assets/pullrequestbtn.png %}
diff --git a/docs/_includes/header.html b/docs/_includes/header.html
index 6c96640..055271d 100644
--- a/docs/_includes/header.html
+++ b/docs/_includes/header.html
@@ -1,6 +1,6 @@
 <header class="site-header" role="banner">
 
-  <a class="github-fork-ribbon left-top" href="https://github.com/w3c/web-platform-tests/blob/master/docs/{{ page.path }}" data-ribbon="Edit on GitHub">Edit on GitHub</a>
+  <a class="github-fork-ribbon left-top" href="https://github.com/web-platform-tests/wpt/blob/master/docs/{{ page.path }}" data-ribbon="Edit on GitHub">Edit on GitHub</a>
 
   <div class="wrapper">
 
diff --git a/docs/_reviewing-tests/checklist.md b/docs/_reviewing-tests/checklist.md
index ffb86c1..23b2642 100644
--- a/docs/_reviewing-tests/checklist.md
+++ b/docs/_reviewing-tests/checklist.md
@@ -7,7 +7,7 @@
 The following checklist is provided as a guideline to assist in reviewing
 tests; in case of any contradiction with requirements stated elsewhere in the
 documentation it should be ignored
-(please [file a bug](https://github.com/w3c/web-platform-tests/issues/new)!).
+(please [file a bug](https://github.com/web-platform-tests/wpt/issues/new)!).
 
 As noted on the [reviewing tests][review index] page, nits need not block PRs
 from landing.
diff --git a/docs/_running-tests/chrome.md b/docs/_running-tests/chrome.md
index b3b9874..dcbc86f 100644
--- a/docs/_running-tests/chrome.md
+++ b/docs/_running-tests/chrome.md
@@ -31,7 +31,7 @@
 ./wpt run --binary-arg=--use-fake-ui-for-media-stream --binary-arg=--use-fake-device-for-media-stream chrome mediacapture-streams/
 ```
 
-Note: there's an [open issue for doing this using WebDriver](https://github.com/w3c/web-platform-tests/issues/7424).
+Note: there's an [open issue for doing this using WebDriver](https://github.com/web-platform-tests/wpt/issues/7424).
 
 Some of the above are most useful in combination, e.g., to run all tests in
 Chrome Dev with experimental web platform features enabled:
diff --git a/docs/_running-tests/chrome_android.md b/docs/_running-tests/chrome_android.md
index 8af8aae..adb662d 100644
--- a/docs/_running-tests/chrome_android.md
+++ b/docs/_running-tests/chrome_android.md
@@ -24,7 +24,7 @@
 ## CA certificate
 
 In order to run HTTPS tests, we need to add
-[WPT's CA](https://github.com/w3c/web-platform-tests/blob/master/tools/certs/cacert.pem)
+[WPT's CA](https://github.com/web-platform-tests/wpt/blob/master/tools/certs/cacert.pem)
 to the phone. First, convert the certificate from PEM to CRT:
 
 ```
@@ -36,6 +36,9 @@
 Encryption & credentials -> Install from storage. Find and install `cacert.crt`.
 (The setting entries might be slightly different based your Android version.)
 
+Note that having this CA installed on your device outside of a test
+environment represents a security risk.
+
 
 Finally, we may run wpt with the `chrome_android` product
 
diff --git a/docs/_running-tests/safari.md b/docs/_running-tests/safari.md
index b36f6d7..e6cedd9 100644
--- a/docs/_running-tests/safari.md
+++ b/docs/_running-tests/safari.md
@@ -14,7 +14,7 @@
 
   * Set `OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES` in your environment. This is a
     workaround for a known
-    [macOS High Sierra issue](https://github.com/w3c/web-platform-tests/issues/9007).
+    [macOS High Sierra issue](https://github.com/web-platform-tests/wpt/issues/9007).
 
 Now, run the tests using the `safari` product:
 ```
diff --git a/docs/_writing-tests/ahem.md b/docs/_writing-tests/ahem.md
index f0980a8..97e5b26 100644
--- a/docs/_writing-tests/ahem.md
+++ b/docs/_writing-tests/ahem.md
@@ -86,4 +86,4 @@
 `fc-cache`.
 
 [ahem-readme]: https://www.w3.org/Style/CSS/Test/Fonts/Ahem/README
-[download-ahem]: https://github.com/w3c/web-platform-tests/raw/master/fonts/Ahem.ttf
+[download-ahem]: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
diff --git a/docs/_writing-tests/submission-process.md b/docs/_writing-tests/submission-process.md
index 9bbd0a4..27abf74 100644
--- a/docs/_writing-tests/submission-process.md
+++ b/docs/_writing-tests/submission-process.md
@@ -41,7 +41,7 @@
 no need to announce your review request, as soon as you make a Pull Request
 GitHub will inform interested parties.
 
-[repo]: https://github.com/w3c/web-platform-tests/
+[repo]: https://github.com/web-platform-tests/wpt/
 [github-intro]: {{ site.baseurl }}{% link _appendix/github-intro.md %}
 [github flow]: https://guides.github.com/introduction/flow/
 [public-test-infra]: https://lists.w3.org/Archives/Public/public-test-infra/
diff --git a/docs/_writing-tests/testdriver-tutorial.md b/docs/_writing-tests/testdriver-tutorial.md
new file mode 100644
index 0000000..2318e0e
--- /dev/null
+++ b/docs/_writing-tests/testdriver-tutorial.md
@@ -0,0 +1,317 @@
+# Adding new commands to testdriver.js
+
+## Assumptions
+We assume the following in this writeup:
+ - You know what web-platform-tests is and you have a working checkout and can run tests
+ - You know what WebDriver or Selenium is
+ - Familiarity with JavaScript and Python
+
+## Introduction!
+
+Let's implement window resizing. We can do this via the [Set Window Rect](https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-window-rect) command in WebDriver.
+
+First, we need to think of what the API will look like a little. We will be using Selenium and Marionette for this, so we can look and see that they take in x, y coordinates, width and height integers.
+
+The first part of this will be browser agnostic, but later we will need to implement a specific layer for each browser (here we will do Firefox and Chrome).
+
+## Code!
+
+### [resources/testdriver.js](resources/testdriver.js)
+
+This is the main entry point the tests get. Here we need to add a function to the `test_driver` object that will call the `test_driver_internal` object.
+
+```javascript
+window.test_driver = {
+
+    // other commands...
+
+    /**
+    * Triggers browser window to be resized and relocated
+    *
+    * This matches the behaviour of the {@link
+    * https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-window-rect|WebDriver
+    * Set Window Rect command}.
+    *
+    * @param {Integer} x - The x coordinate of the top left of the window
+    * @param {Integer} y - The x coordinate of the top left of the window
+    * @param {Integer} width - The width of the window
+    * @param {Integer} height - The width of the window
+    * @returns {Promise} fulfilled after window rect is set occurs, or rejected in
+    *                    the cases the WebDriver command errors
+    */
+    set_window_rect: function(x, y, width, height) {
+        return window.test_driver_internal.set_element_rect(x, y, width, height);
+    }
+```
+
+In the same file, lets add to the internal object. ( do we need to do this?) (make sure to do this if the internal call has different arguments than the external call, especially if it calls multiple internal calls)
+
+```javascript
+window.test_driver_internal = {
+
+    // other commands...
+
+    /**
+     * Triggers browser window to be resized and relocated
+     *
+     * This matches the behaviour of the {@link
+     * https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-window-rect|WebDriver
+     * Set Window Rect command}.
+     *
+     * @param {Integer} x - The x coordinate of the top left of the window
+     * @param {Integer} y - The x coordinate of the top left of the window
+     * @param {Integer} width - The width of the window
+     * @param {Integer} height - The width of the window
+     * @returns {Promise} fulfilled after window rect is set occurs, or rejected in
+     *                    the cases the WebDriver command errors
+     */
+    set_window_rect: function(x, y, width, height) {
+        return Promise.reject(new Error("unimplemented"))
+    }
+```
+We will leave this unimplemented and override it in another file. Lets do that now!
+
+### [wptrunner/wptrunner/testdriver-extra.js](tools/wptrunner/wptrunner/testdriver-extra.js)
+
+This will be the default function called when invoking the test driver commands (sometimes it is overridden by testdriver-vendor.js, but this is outside the scope of this writeup).
+
+```javascript
+window.test_driver_internal.set_element_rect = function(x, y, width, height) {
+    const pending_promise = new Promise(function(resolve, reject) {
+        pending_resolve = resolve;
+        pending_reject = reject;
+    });
+    window.opener.postMessage(
+        {"type": "action", "action": "set_window_rect", "x": x, "y": y, "width": width, "height": height}, "*");
+    return pending_promise;
+};
+```
+The main thing here is the `postMessage` argument. The first argument is an object with properties
+ - `type`: this always has to be the string `"action"`
+ - `action`: the name of the testdriver command this defines (in this case, `set_window_rect`)
+ - any other things you want to pass to the next point of execution (in this case, the x, y coordinates and the width and height)
+
+<!-- The pending promise needs to be there as it is resolved when the window recieves a completion message from the executor. -->
+The pending promise is out of scope of this function and is resolved when the window recieves a completion message from the executor.
+This happens here in the same file:
+
+```javascript
+    let pending_resolve = null;
+    let pending_reject = null;
+    window.addEventListener("message", function(event) {
+        const data = event.data;
+
+        if (typeof data !== "object" && data !== null) {
+            return;
+        }
+
+        if (data.type !== "testdriver-complete") {
+            return;
+        }
+
+        if (data.status === "success") {
+            pending_resolve();
+        } else {
+            pending_reject();
+        }
+    });
+```
+
+One limitation this introduces is that only one testdriver call can be made at one time since the `pending_resolve` and `pending_reject` variables are in an outer scope.
+
+Next, this is passed to the executor and protocol in wptrunner. Time to switch to Python!
+
+[tools/wptrunner/wptrunner/executors/protocol.py](tools/wptrunner/wptrunner/executors/protocol.py)
+
+```python
+class SetWindowRectProtocolPart(ProtocolPart):
+    """Protocol part for resizing and changing location of window"""
+    __metaclass__ = ABCMeta
+
+    name = "set_window_rect"
+
+    @abstractmethod
+    def set_window_rect(self, x, y, width, height):
+        """Change the window rect
+
+        :param x: The x coordinate of the top left of the window.
+        :param y: The y coordinate of the top left of the window.
+        :param width: The width of the window.
+        :param height: The height of the window."""
+        pass
+```
+
+Next we change the base executor.
+
+[tools/wptrunner/wptrunner/executors/base.py](tools/wptrunner/wptrunner/executors/base.py)
+
+```python
+class CallbackHandler(object):
+    """Handle callbacks from testdriver-using tests.
+
+    The default implementation here makes sense for things that are roughly like
+    WebDriver. Things that are more different to WebDriver may need to create a
+    fully custom implementation."""
+
+    def __init__(self, logger, protocol, test_window):
+        self.protocol = protocol
+        self.test_window = test_window
+        self.logger = logger
+        self.callbacks = {
+            "action": self.process_action,
+            "complete": self.process_complete
+        }
+
+        self.actions = {
+            "click": ClickAction(self.logger, self.protocol),
+            "send_keys": SendKeysAction(self.logger, self.protocol),
+            {other actions},
+            "set_window_rect": SetWindowRectAction(self.logger, self.protocol) # add this!
+        }
+```
+
+```python
+class SetWindowRectAction(object):
+    def __init__(self, logger, protocol):
+        self.logger = logger
+        self.protocol = protocol
+
+    def __call__(self, payload):
+        x, y, width, height = payload["x"], payload["y"], payload["width"], payload["height"]
+        self.logger.debug("Setting window rect to be: x=%s, y=%s, width=%s, height=%s"
+                          .format(x, y, width, height))
+        self.protocol.set_window_rect.set_window_rect(x, y, width, height)
+```
+
+Don't forget to write docs in ```testdriver.md```.
+Now we write the browser specific implementations.
+
+### Chrome
+
+We will use [executorselenium](tools/wptrunner/wptrunner/executors/executorselenium.py) and use the Selenium API (in the future there are plans to use the WebDriver API directly).
+
+There isn't too much work to do here, we just need to define a subclass of the protocol part we defined earlier.
+
+```python
+class SeleniumSetWindowRectProtocolPart(SetWindowRectProtocolPart):
+    def setup(self):
+        self.webdriver = self.parent.webdriver
+
+    def set_window_rect(self, x, y, width, height):
+        return self.webdriver.set_window_rect(x, y, width, height)
+```
+
+Make sure to import the protocol part too!
+
+```python
+from .protocol import (BaseProtocolPart,
+                       TestharnessProtocolPart,
+                       Protocol,
+                       SelectorProtocolPart,
+                       ClickProtocolPart,
+                       SendKeysProtocolPart,
+                       {... other protocol parts}
+                       SetWindowRectProtocolPart, # add this!
+                       TestDriverProtocolPart)
+```
+
+Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will be call the Selenium API for [set window rect](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.set_window_rect) (`self.webdriver` is a Selenium WebDriver instance here).
+
+Finally, we just need to tell the SeleniumProtocol to implement this part.
+
+```python
+class SeleniumProtocol(Protocol):
+    implements = [SeleniumBaseProtocolPart,
+                  SeleniumTestharnessProtocolPart,
+                  SeleniumSelectorProtocolPart,
+                  SeleniumClickProtocolPart,
+                  SeleniumSendKeysProtocolPart,
+                  {... other protocol parts}
+                  SeleniumSetWindowRectProtocolPart,
+                  SeleniumTestDriverProtocolPart]
+```
+
+
+### Firefox
+We use the [set window rect](http://marionette-client.readthedocs.io/en/master/reference.html#marionette_driver.marionette.Marionette.set_window_rect) Marionette command.
+
+We will use [executormarionette](tools/wptrunner/wptrunner/executors/executormarionette.py) and use the Marionette Python API.
+
+We have little actual work to do here! We just need to define a subclass of the protocol part we defined earlier.
+
+```python
+class MarionetteSetWindowRectProtocolPart(SetWindowRectProtocolPart):
+    def setup(self):
+        self.marionette = self.parent.marionette
+
+    def set_window_rect(self, x, y, width, height):
+        return self.marionette.set_window_rect(x, y, width, height)
+```
+
+Make sure to import the protocol part too!
+
+```python
+from .protocol import (BaseProtocolPart,
+                       TestharnessProtocolPart,
+                       Protocol,
+                       SelectorProtocolPart,
+                       ClickProtocolPart,
+                       SendKeysProtocolPart,
+                       {... other protocol parts}
+                       SetWindowRectProtocolPart, # add this!
+                       TestDriverProtocolPart)
+```
+
+Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will be call the Marionette API for [set window rect](http://marionette-client.readthedocs.io/en/master/reference.html#marionette_driver.marionette.Marionette.set_window_rect) (`self.marionette` is a marionette instance here).
+
+Finally, we just need to tell the SeleniumProtocol to implement this part.
+
+```python
+class MarionetteProtocol(Protocol):
+    implements = [MarionetteBaseProtocolPart,
+                  MarionetteTestharnessProtocolPart,
+                  MarionettePrefsProtocolPart,
+                  MarionetteStorageProtocolPart,
+                  MarionetteSelectorProtocolPart,
+                  MarionetteClickProtocolPart,
+                  MarionetteSendKeysProtocolPart,
+                  {... other protocol parts}
+                  MarionetteSetWindowRectProtocolPart # add this
+                  MarionetteTestDriverProtocolPart]
+```
+
+### Other Browsers
+
+Other browsers may also use executorselenium (such as safari), or a completely new executor (such as servo). For these, you must change the executor in the same way as we did with chrome and firefox.
+
+### Write an infra test
+
+Make sure to add a test to `infrastructure/testdriver` :)
+
+Here is some template code!
+
+```html
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>TestDriver set window rect method</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<script>
+promise_test(async t => {
+  await test_driver.set_window_rect(100, 100, 100, 100);
+  // do something
+}
+</script>
+```
+### What about testdriver-vendor.js?
+
+The file [testdriver-vendor.js](resources/testdriver-vendor.js) is the equivalent to testdriver-extra.js above, except is
+run instead of testdriver-extra.js in browser specific test environments. For example, in [Chromium LayoutTests](https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/?q=LayoutTests&sq=package:chromium&dr).
+
+### What if I need to return a value from my testdriver API?
+
+We currently don't have this capability, but it is coming soon and will be documented. The bug is [here](https://github.com/web-platform-tests/wpt/issues/10716)
+
diff --git a/docs/introduction.md b/docs/introduction.md
index d021663..1b2f7f6 100644
--- a/docs/introduction.md
+++ b/docs/introduction.md
@@ -76,7 +76,7 @@
 
 ## GitHub
 
-[GitHub](https://github.com/w3c/web-platform-tests/) is used both for [issue tracking](https://github.com/w3c/web-platform-tests/issues) and [test submissions](https://github.com/w3c/web-platform-tests/pulls); we
+[GitHub](https://github.com/web-platform-tests/wpt/) is used both for [issue tracking](https://github.com/web-platform-tests/wpt/issues) and [test submissions](https://github.com/web-platform-tests/wpt/pulls); we
 provide [a limited introduction][github-intro] to both git and
 GitHub.
 
@@ -148,7 +148,7 @@
 http://web-platform.test:8000/<br>
 https://web-platform.test:8443/ *
 
-\**See [Trusting Root CA](https://github.com/w3c/web-platform-tests/blob/master/README.md#trusting-root-ca)*
+\**See [Trusting Root CA](https://github.com/web-platform-tests/wpt/blob/master/README.md#trusting-root-ca)*
 
 ## Running tests automatically
 
diff --git a/dom/nodes/query-target-in-load-event.html b/dom/nodes/query-target-in-load-event.html
new file mode 100644
index 0000000..2835286
--- /dev/null
+++ b/dom/nodes/query-target-in-load-event.html
@@ -0,0 +1,13 @@
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<iframe></iframe>
+
+<script>
+  let test = async_test('document.querySelector(":target") must work when called in the window.load event');
+  let iframe = document.querySelector("iframe");
+  window.addEventListener("message", test.step_func_done(event => {
+    assert_equals(event.data, "PASS");
+  }));
+  iframe.src = "./query-target-in-load-event.part.html#target";
+</script>
diff --git a/dom/nodes/query-target-in-load-event.part.html b/dom/nodes/query-target-in-load-event.part.html
new file mode 100644
index 0000000..7eb1baf
--- /dev/null
+++ b/dom/nodes/query-target-in-load-event.part.html
@@ -0,0 +1,10 @@
+<!-- Used by ./query-target-in-load-event.html -->
+<script>
+  window.onload = function() {
+    let target = document.querySelector(":target");
+    let expected = document.querySelector("#target");
+    window.parent.postMessage(target == expected ? "PASS" : "FAIL", "*");
+  };
+</script>
+
+<div id="target"></div>
diff --git a/domparsing/interfaces.any.js b/domparsing/interfaces.any.js
new file mode 100644
index 0000000..4eaeabe
--- /dev/null
+++ b/domparsing/interfaces.any.js
@@ -0,0 +1,16 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+'use strict';
+
+// https://w3c.github.io/DOM-Parsing/
+
+promise_test(async () => {
+  const dom = await fetch('/interfaces/dom.idl').then(r => r.text());
+  const idl = await fetch('/interfaces/DOM-Parsing.idl').then(r => r.text());
+  const idlArray = new IdlArray();
+  idlArray.add_untested_idls(dom);
+  idlArray.add_idls(idl);
+  idlArray.test();
+  done();
+}, 'Test driver');
diff --git a/encoding/big5-encoder.html b/encoding/big5-encoder.html
index 58d60d5..7260b6b 100644
--- a/encoding/big5-encoder.html
+++ b/encoding/big5-encoder.html
@@ -15,8 +15,8 @@
 
  encode("ab", "ab", "very basic")
  // edge cases
- encode("\u9EA6", "&%2340614;", "Highest-pointer BMP character excluded from encoder");
- encode("\uD858\uDE6B", "&%23156267;", "Highest-pointer character excluded from encoder");
+ encode("\u9EA6", "%26%2340614%3B", "Highest-pointer BMP character excluded from encoder");
+ encode("\uD858\uDE6B", "%26%23156267%3B", "Highest-pointer character excluded from encoder");
  encode("\u3000", "%A1@", "Lowest-pointer character included in encoder");
  encode("\u20AC", "%A3%E1", "Euro; the highest-pointer character before a range of 30 unmapped pointers");
  encode("\u4E00", "%A4@", "The lowest-pointer character after the range of 30 unmapped pointers");
@@ -24,8 +24,8 @@
  encode("\uFFE2", "%C8%CD", "The lowest-pointer character after the range of 41 unmapped pointers");
  encode("\u79D4", "%FE%FE", "The last character in the index");
  // not in index
- encode("\u2603", "&%239731;", "The canonical BMP test character that is not in the index");
- encode("\uD83D\uDCA9", "&%23128169;", "The canonical astral test character that is not in the index");
+ encode("\u2603", "%26%239731%3B", "The canonical BMP test character that is not in the index");
+ encode("\uD83D\uDCA9", "%26%23128169%3B", "The canonical astral test character that is not in the index");
  // duplicate low bits
  encode("\uD840\uDFB5", "%FDj", "A Plane 2 character whose low 16 bits match a BMP character that has a lower pointer");
  // prefer last
diff --git a/encoding/gbk-encoder.html b/encoding/gbk-encoder.html
index 90d0824..a6074f9 100644
--- a/encoding/gbk-encoder.html
+++ b/encoding/gbk-encoder.html
@@ -17,5 +17,5 @@
  encode("\u4E02", "%81@", "character")
  encode("\uE4C6", "%A1@", "PUA")
  encode("\uE4C5", "%FE%FE", "PUA #2")
- encode("\ud83d\udca9", "&%23128169;", "poo")
+ encode("\ud83d\udca9", "%26%23128169%3B", "poo")
 </script>
diff --git a/encoding/iso-2022-jp-encoder.html b/encoding/iso-2022-jp-encoder.html
index d3124e5..81bd180 100644
--- a/encoding/iso-2022-jp-encoder.html
+++ b/encoding/iso-2022-jp-encoder.html
@@ -15,4 +15,5 @@
  encode("s", "s", "very basic")
  encode("\u00A5\u203Es\\\uFF90\u4F69", "%1B(J\\~s%1B(B\\%1B$B%_PP%1B(B", "basics")
  encode("\x0E\x0F\x1Bx", "%0E%0F%1Bx", "SO/SI ESC")
+ encode("\uFFFD", "%26%2365533%3B", "U+FFFD");
 </script>
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
index 6812998..f79178a 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html
@@ -170,10 +170,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
index 945c5c6..0f9ecff 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html
@@ -135,10 +135,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
index 0050e35..54da3eb 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html
@@ -179,10 +179,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
index 1f98ce3..c0519e8 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
index fc12def..29c9f22 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
index 0b0f31b..1456b94 100644
--- a/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
+++ b/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
index efb493b..13d4b96 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html
@@ -170,10 +170,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
index ab61d60..1f1cce2 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html
@@ -135,10 +135,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
index 6ffb620..54acbe4 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html
@@ -179,10 +179,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
index a135563..f12da70 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
index 78090e7..04dc69d 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
index 2c0a2be..5fee8bb 100644
--- a/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
+++ b/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html
@@ -21,7 +21,7 @@
         var a = document.createElement("a"); // <a> uses document encoding for URL's query
         a.href = "https://example.com/?" + input;
         result = a.search.substr(1); // remove leading "?"
-        assert_equals(normalizeStr(result), normalizeStr(expected));
+        assert_equals(result, expected);
     }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
index 4193e2e..8f80243 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html
@@ -165,10 +165,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
index ae2db16..b2a953e 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html
@@ -135,10 +135,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
index ca0cfa3..0dc90d1 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html
@@ -175,10 +175,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
index b396a7d..1f70550 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
index 42dd93f..29ec1a5 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html
@@ -21,7 +21,7 @@
     var a = document.createElement("a"); // <a> uses document encoding for URL's query
     a.href = "https://example.com/?" + input;
     result = a.search.substr(1); // remove leading "?"
-    assert_equals(normalizeStr(result), normalizeStr(expected));
+    assert_equals(result, expected);
   }, desc);
 }
 
diff --git a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
index 113dbd7..8341d83 100644
--- a/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
+++ b/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html b/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
index ecf3157..033362d 100644
--- a/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
+++ b/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html
@@ -166,10 +166,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html b/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
index 6290de6..130980f 100644
--- a/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
+++ b/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html
@@ -175,10 +175,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html b/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
index abfddb4..ad334f9 100644
--- a/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
+++ b/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html b/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
index 6c9f4af..5185963 100644
--- a/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
+++ b/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
index 10e3316..752956f 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html
@@ -136,10 +136,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
index 9db97dc..186c7dc 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html
@@ -136,10 +136,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
index 25e20e8..0698ed5 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html
@@ -178,10 +178,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
index be9cfa4..106d9d1 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html
@@ -135,10 +135,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
index 9ad9b63..98d6861 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html
@@ -175,10 +175,7 @@
     for (var j = 0; j < cplist[i].length; j++) {
       var t = tests[i][j];
       t.step(function() {
-        assert_equals(
-          normalizeStr(results[j]),
-          normalizeStr(cplist[i][j].expected)
-        );
+        assert_equals(results[j], cplist[i][j].expected);
       });
       t.done();
     }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
index d60363b..fd037d1 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html
@@ -135,10 +135,7 @@
         for (var j = 0; j < cplist[i].length; j++) {
             var t = tests[i][j];
             t.step(function() {
-                assert_equals(
-                    normalizeStr(results[j]),
-                    normalizeStr(cplist[i][j].expected)
-                );
+                assert_equals(results[j], cplist[i][j].expected);
             });
             t.done();
         }
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
index c7b1a2d..c538cf4 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
index ed4033d..48a23f0 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html
@@ -21,7 +21,7 @@
     var a = document.createElement("a"); // <a> uses document encoding for URL's query
     a.href = "https://example.com/?" + input;
     result = a.search.substr(1); // remove leading "?"
-    assert_equals(normalizeStr(result), normalizeStr(expected));
+    assert_equals(result, expected);
   }, desc);
 }
 
diff --git a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
index 488eec5..0ff27f4 100644
--- a/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
+++ b/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html
@@ -21,7 +21,7 @@
 		var a = document.createElement("a"); // <a> uses document encoding for URL's query
 		a.href = "https://example.com/?" + input;
 		result = a.search.substr(1); // remove leading "?"
-		assert_equals(normalizeStr(result), normalizeStr(expected));
+		assert_equals(result, expected);
 	}, desc);
 }
 
diff --git a/eventsource/resources/status-error.py b/eventsource/resources/status-error.py
index 5eaedcd..f0a1504 100644
--- a/eventsource/resources/status-error.py
+++ b/eventsource/resources/status-error.py
@@ -6,7 +6,7 @@
   # not specify a body. The expected browser behavior for this condition is not
   # currently defined--see the following for further discussion:
   #
-  # https://github.com/w3c/web-platform-tests/pull/5227
+  # https://github.com/web-platform-tests/wpt/pull/5227
   if status[0] in ["204", "205"]:
       body = ""
   else:
diff --git a/feature-policy/experimental-features/document-stream-insertion.tentative.html b/feature-policy/experimental-features/document-stream-insertion.tentative.html
new file mode 100644
index 0000000..12b844c
--- /dev/null
+++ b/feature-policy/experimental-features/document-stream-insertion.tentative.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<title>'document-stream-insertion' tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/feature-policy/experimental-features/resources/common.js"></script>
+<style>
+html, body {
+  height: 100%;
+  width: 100%;
+}
+</style>
+<iframe></iframe>
+<script>
+  "use strict";
+
+  let iframeElement = document.querySelector("iframe");
+  let url = url_base + "document-stream-insertion.html";
+
+  let text_to_write = "<div>FOO<\/div>";
+  let test_cases = [{
+                      api: "open",
+                      query: "body",
+                      expected_value_enabled: false,
+                    },
+                    {
+                      api: "close"
+                    },
+                    {
+                      api: "write",
+                      args: text_to_write,
+                      query: "div",
+                      expected_value_enabled: "FOO"
+                    },
+                    {
+                      api: "writeln",
+                      args: text_to_write,
+                      query: "div",
+                      expected_value_enabled: "FOO"
+                    }];
+
+  // The feature 'document-stream-insertion' is enabled by default and when it
+  // is enabled, all dynamic markup insertion API work as intended.
+  test_cases.forEach((tc) => {
+    promise_test(async() => {
+      await loadUrlInIframe(iframeElement, url);
+      await sendMessageAndGetResponse(iframeElement.contentWindow, tc).then((response) => {
+        assert_false(
+          response.did_throw_exception,
+          `When feature is disabled, invoking 'document.${tc.api}' should not` +
+          " throw an exception.");
+        if (tc.query) {
+          assert_equals(
+            response.value,
+            tc.expected_value_enabled,
+            `The added script tag by 'document.${tc.api}' must have run.`);
+        }
+      });
+    }, `Verify 'document.${tc.api}' is not normally blocked.` );
+  });
+
+
+  // Disabling 'document-stream-insertion' throws exception on the included API.
+  test_cases.forEach((tc) => {
+    promise_test(async() => {
+      setFeatureState(iframeElement, "document-stream-insertion", "'none'");
+      await loadUrlInIframe(iframeElement, url);
+      await sendMessageAndGetResponse(iframeElement.contentWindow, tc).then((response) => {
+        assert_true(
+          response.did_throw_exception,
+          `When feature is enabled, invoking 'document.${tc.api}' should ` +
+          " throw an exception.");
+        if (tc.query) {
+          assert_not_equals(
+            response.value,
+            tc.expected_value_enabled,
+            `The added script tag by 'document.${tc.api}' must not have run.`);
+        }
+      });
+    }, `Verify 'document.${tc.api}' is blocked when the feature is disabled.` );
+  });
+
+</script>
diff --git a/feature-policy/experimental-features/resources/common.js b/feature-policy/experimental-features/resources/common.js
new file mode 100644
index 0000000..08d3aef
--- /dev/null
+++ b/feature-policy/experimental-features/resources/common.js
@@ -0,0 +1,34 @@
+const url_base = "/feature-policy/experimental-features/resources/";
+window.messageResponseCallback = null;
+
+function setFeatureState(iframe, feature, origins) {
+    iframe.setAttribute("allow", `${feature} ${origins};`);
+}
+
+// Returns a promise which is resolved when the <iframe> is navigated to |url|
+// and "load" handler has been called.
+function loadUrlInIframe(iframe, url) {
+  return new Promise((resolve) => {
+    iframe.addEventListener("load", resolve);
+    iframe.src = url;
+  });
+}
+
+// Posts |message| to |target| and resolves the promise with the response coming
+// back from |target|.
+function sendMessageAndGetResponse(target, message) {
+  return new Promise((resolve) => {
+    window.messageResponseCallback = resolve;
+    target.postMessage(message, "*");
+  });
+}
+
+
+function onMessage(e) {
+  if (window.messageResponseCallback) {
+    window.messageResponseCallback(e.data);
+    window.messageResponseCallback = null;
+  }
+}
+
+window.addEventListener("message", onMessage);
diff --git a/feature-policy/experimental-features/resources/document-stream-insertion.html b/feature-policy/experimental-features/resources/document-stream-insertion.html
new file mode 100644
index 0000000..633fa85
--- /dev/null
+++ b/feature-policy/experimental-features/resources/document-stream-insertion.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<style>
+#spacer {
+  width: 200%;
+  height: 200%;
+}
+</style>
+<body>
+<script>
+  window.addEventListener("message", onMessageReceived);
+
+  function test(api, args) {
+    let did_throw = false;
+    try {
+     document[api](args);
+    } catch(e) {
+      did_throw = true;
+    }
+    return did_throw;
+  }
+
+  function onMessageReceived(e) {
+    let msg = e.data;
+
+    msg.did_throw_exception = test(msg.api, msg.args);
+    if (msg.query) {
+      let el = document.querySelector(msg.query);
+      msg.value = el ? el.innerHTML : false;
+    }
+    ackMessage(msg, e.source);
+  }
+
+  function ackMessage(msg, source) {
+    source.postMessage(msg, "*");
+  }
+</script>
+</body>
diff --git a/feature-policy/experimental-features/resources/vertical-scroll-touch-block.html b/feature-policy/experimental-features/resources/vertical-scroll-touch-block.html
new file mode 100644
index 0000000..4c20405
--- /dev/null
+++ b/feature-policy/experimental-features/resources/vertical-scroll-touch-block.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<style>
+body, div, html {
+  height: 100%;
+  width: 100%;
+  overflow: hidden;
+}
+p {
+  margin-bottom: 1000px;
+  margin-right: 1000px;
+}
+</style>
+<body>
+  <div id="blocker">
+    <p>This page blocks 'touchstart' and 'touchmove'.</p>
+  </div>
+  <script>
+    function doSomethingUnimportant(e) {
+      return false !== e;
+    }
+
+    function preventDefault(e) {
+      e.preventDefault();
+    }
+
+    document.addEventListener("touchstart", doSomethingUnimportant, {passive: false});
+    document.addEventListener("touchmove", doSomethingUnimportant, {passive: false});
+
+    function messageHandler(e) {
+      let msg = e.data;
+      let element = document.querySelector(msg.query);
+      if (msg.prevent) {
+        element.addEventListener(msg.event_type, preventDefault, {passive: false});
+      } else {
+        element.addEventListener(msg.event_type, doSomethingUnimportant);
+      }
+      e.source.postMessage(msg, "*");
+    }
+
+    window.addEventListener("message", messageHandler);
+  </script>
+</body>
diff --git a/feature-policy/experimental-features/resources/vertical-scroll.js b/feature-policy/experimental-features/resources/vertical-scroll.js
index bbae658..88835cc 100644
--- a/feature-policy/experimental-features/resources/vertical-scroll.js
+++ b/feature-policy/experimental-features/resources/vertical-scroll.js
@@ -1,6 +1,3 @@
-const url_base = "/feature-policy/experimental-features/resources/";
-window.messageResponseCallback = null;
-
 function rectMaxY(rect) {
   return rect.height + rect.y;
 }
@@ -23,33 +20,6 @@
          rect2.y < rectMaxY(rect1);
 }
 
-// Returns a promise which is resolved when the <iframe> is navigated to |url|
-// and "load" handler has been called.
-function loadUrlInIframe(iframe, url) {
-  return new Promise((resolve) => {
-    iframe.addEventListener("load", resolve);
-    iframe.src = url;
-  });
-}
-
-// Posts |message| to |target| and resolves the promise with the response coming
-// back from |target|.
-function sendMessageAndGetResponse(target, message) {
-  return new Promise((resolve) => {
-    window.messageResponseCallback = resolve;
-    target.postMessage(message, "*");
-  });
-}
-
 function rectToString(rect) {
   return `Location: (${rect.x}, ${rect.y}) Size: (${rect.width}, ${rect.height})`;
 }
-
-function onMessage(e) {
-  if (window.messageResponseCallback) {
-    window.messageResponseCallback(e.data);
-    window.messageResponseCallback = null;
-  }
-}
-
-window.addEventListener("message", onMessage);
diff --git a/feature-policy/experimental-features/vertical-scroll-scrollintoview.tentative.html b/feature-policy/experimental-features/vertical-scroll-scrollintoview.tentative.html
index e9c7cba..689685a 100644
--- a/feature-policy/experimental-features/vertical-scroll-scrollintoview.tentative.html
+++ b/feature-policy/experimental-features/vertical-scroll-scrollintoview.tentative.html
@@ -1,6 +1,7 @@
 <!DOCTYPE html>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
+<script src="/feature-policy/experimental-features/resources/common.js"></script>
 <script src="/feature-policy/experimental-features/resources/vertical-scroll.js"></script>
 <style>
 html, body {
@@ -73,7 +74,7 @@
   // of disabled frames (does not propagate to main frame).
   promise_test(async() => {
     window.scrollTo(0, 0);
-    iframeElement.allow = "vertical-scroll 'none';";
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
     await loadUrlInIframe(iframeElement, url);
 
     await sendMessageAndGetResponse(
diff --git a/feature-policy/experimental-features/vertical-scroll-touch-action-manual.tentative.html b/feature-policy/experimental-features/vertical-scroll-touch-action-manual.tentative.html
index 761c0d7..ed6bff1 100644
--- a/feature-policy/experimental-features/vertical-scroll-touch-action-manual.tentative.html
+++ b/feature-policy/experimental-features/vertical-scroll-touch-action-manual.tentative.html
@@ -2,6 +2,7 @@
 <title>vertical-scroll test for touch-action</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
+<script src="/feature-policy/experimental-features/resources/common.js"></script>
 <script src="/feature-policy/experimental-features/resources/vertical-scroll.js"></script>
 <style>
 html, body {
@@ -81,7 +82,7 @@
     window.scrollTo(0, 0);
 
     // Disallow vertical scroll and reload the <iframe>.
-    iframeElement.setAttribute("allow", "vertical-scroll 'none';");
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
     await loadUrlInIframe(iframeElement, url);
 
     // Apply the scroll gesture. Main frame should scroll vertically.
diff --git a/feature-policy/experimental-features/vertical-scroll-touch-block-manual.tentative.html b/feature-policy/experimental-features/vertical-scroll-touch-block-manual.tentative.html
new file mode 100644
index 0000000..b14423f
--- /dev/null
+++ b/feature-policy/experimental-features/vertical-scroll-touch-block-manual.tentative.html
@@ -0,0 +1,237 @@
+<!doctype html>
+<title>vertical-scroll test for touch-action</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/feature-policy/experimental-features/resources/common.js"></script>
+<script src="/feature-policy/experimental-features/resources/vertical-scroll.js"></script>
+<style>
+html, body {
+  height: 100%;
+  width: 100%;
+}
+
+iframe {
+  width: 90%;
+  height: 90%;
+  margin: 0;
+  padding: 0;
+}
+
+.spacer {
+  width: 100%;
+  height: 100%;
+  margin: 100%;
+}
+</style>
+<iframe></iframe>
+<br/>
+<p>Spacers below to make page scrollable</p>
+<br/>
+<div class="spacer"></div>
+<div class="spacer"></div>
+<p> EOF </p>
+
+<script>
+  "use strict";
+
+  let url = url_base + "vertical-scroll-touch-block.html";
+  let iframeElement = document.querySelector("iframe");
+
+  // Wait for the helper scripts to load.
+  promise_test(async() => {
+    if (window.touch_scroll_api_ready)
+      return Promise.resolve();
+    await new Promise( (r) => {
+      window.resolve_on_touch_scroll_api_ready = r;
+    });
+
+  }, "Make sure input injection API is ready.");
+
+  // Sanity-check: Verify we can scroll using the test-API. The <iframe> with no
+  // query arguments would not preventDefault() any events.
+  promise_test(async() => {
+    window.scrollTo(0, 0);
+    await loadUrlInIframe(iframeElement, url);
+
+    await inject_scroll("down");
+    assert_greater_than(window.scrollY, 0, "Page must have scrolled down.");
+
+    await inject_scroll("right");
+    assert_greater_than(window.scrollX, 0, "Page must have scrolled right.");
+  }, "Verify that the page normally scrolls.");
+
+  // Enable 'vertical-scroll': Blocking "touchstart" can block scrolling.
+  promise_test(async() => {
+    window.scrollTo(0, 0);
+    setFeatureState(iframeElement, "vertical-scroll", "*");
+    await loadUrlInIframe(iframeElement, url);
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+
+    await inject_scroll("down");
+    assert_equals(window.scrollY,
+                  0,
+                  "Main frame must not scroll vertically.");
+  }, "Calling 'preventDefault' on 'touchstart' blocks vertical scroll when " +
+     " the feature is enabled.");
+
+  // Disable 'vertical-scroll': Blocking "touchstart" cannot block vertical
+  // scroll.
+  promise_test(async() => {
+    window.scrollTo(0, 0);
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
+    await loadUrlInIframe(iframeElement, url);
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+
+    await inject_scroll("down");
+    assert_greater_than(window.scrollY,
+                        0,
+                        "Main frame must scroll vertically.");
+
+    // Horizontal scrolling must still be blocked.
+    window.scrollTo(0, 0);
+    await inject_scroll("right");
+    assert_equals(window.scrollX,
+                  0,
+                  "Main frame must not scroll horizontally.");
+  }, "When feature is disabled, calling 'preventDefault' on 'touchstart' does" +
+     " not block vertical scroll, but still bocks horizontal scroll.");
+
+  // Enable 'vertical-scroll': Blocking "touchmove" can block scrolling.
+  promise_test(async() => {
+    // Make sure <window> can scroll both towards right and bottom.
+    window.scrollTo(0, 0);
+    setFeatureState(iframeElement, "vertical-scroll", "*");
+    await loadUrlInIframe(iframeElement, url);
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchmove",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+
+    await inject_scroll("down");
+    assert_equals(window.scrollY,
+                  0,
+                  "Main frame must not scroll vertically");
+  }, "Calling 'preventDefault' on 'touchmove' blocks vertical scroll when " +
+     "the feature is enabled.");
+
+  // Disable 'vertical-scroll': Blocking "touchmove" cannot block vertical
+  // scroll.
+  promise_test(async() => {
+    window.scrollTo(0, 0);
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
+    await loadUrlInIframe(iframeElement, url);
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchmove",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+    await new Promise((r) => {
+      window.setTimeout(r, 100);
+    });
+
+    await inject_scroll("down");
+    assert_greater_than(window.scrollY,
+                        0,
+                        "Main frame must scroll vertically.");
+  }, "When feature is disabled, calling 'preventDefault' on 'touchmove' does" +
+     " not block vertical scroll.");
+
+  // Disable 'vertical-scroll': Add a non-preventing handler, and then a
+  // preventing handler and verify vertical scroll is possible and horizontal
+  // is blocked.
+  promise_test(async() => {
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
+    await loadUrlInIframe(iframeElement, url);
+
+    // Add a non-blocking handler.
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: false
+                                    });
+
+    window.scrollTo(0, 0);
+    await inject_scroll("down");
+    assert_greater_than(window.scrollY, 0, "Page must have scrolled down.");
+
+    window.scrollTo(0, 0);
+    await inject_scroll("right");
+    assert_greater_than(window.scrollX, 0, "Page must have scrolled right.");
+
+    // Add a blocking handler.
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+    window.scrollTo(0, 0);
+    await inject_scroll("down");
+    assert_greater_than(window.scrollY,
+                        0,
+                        "Page must have scrolled down (preventing handler).");
+
+    window.scrollTo(0, 0);
+    await inject_scroll("right");
+    assert_equals(window.scrollX,
+                  0,
+                  "Page must not have scrolled horizontally.");
+  }, "Verify that starting with a non-preventing listener and then switching" +
+     " to a preventing one works as intended.");
+
+  // Disable 'vertical-scroll': A preventing 'touchstart' handler does not allow
+  // other multi-touch actions such as 'pinch-zoom'.
+  promise_test(async() => {
+    assert_true(!!window.visualViewport,
+                "'visualViewport' is needed for this test.");
+
+    setFeatureState(iframeElement, "vertical-scroll", "'none'");
+    await loadUrlInIframe(iframeElement, url);
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: false
+                                    });
+
+    // Sanity check: Pinch zoom in should work since 'touchstart' is not
+    // preventing.
+    let current_scale_factor = window.visualViewport.scale;
+    await inject_zoom("in");
+    let new_scale_factor = window.visualViewport.scale;
+    assert_greater_than(
+        new_scale_factor,
+        current_scale_factor,
+        "Pinch zoom should work since 'touchstart' is not prevented.");
+
+    // Add a preventing handler and verify pinch zoom is now blocked.
+    await sendMessageAndGetResponse(iframeElement.contentWindow,
+                                    {
+                                      event_type: "touchstart",
+                                      query: "#blocker",
+                                      prevent: true
+                                    });
+    current_scale_factor = new_scale_factor;
+    await inject_zoom("out");
+    new_scale_factor = window.visualViewport.scale;
+    assert_equals(
+        new_scale_factor,
+        current_scale_factor,
+        "Pinch zoom must be blocked.")
+  }, "Verify that pinch zoom is blocked in frames with 'vertical-scroll' none'" +
+     " where 'touchstart' is prevent defaulted.");
+</script>
diff --git a/fetch/OWNERS b/fetch/OWNERS
index e2f2428..40c8334 100644
--- a/fetch/OWNERS
+++ b/fetch/OWNERS
@@ -3,3 +3,4 @@
 @annevk
 @mnot
 @yutakahirano
+@domfarolino
diff --git a/fetch/api/request/request-consume-empty.html b/fetch/api/request/request-consume-empty.html
index c84d2ce..c3b8bc4 100644
--- a/fetch/api/request/request-consume-empty.html
+++ b/fetch/api/request/request-consume-empty.html
@@ -106,7 +106,7 @@
     checkRequestWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), true);
     checkRequestWithEmptyBody("text", "", true);
     checkRequestWithEmptyBody("URLSearchParams", new URLSearchParams(""), true);
-    // FIXME: This test assumes that the empty string be returned but it is not clear whether that is right. See https://github.com/w3c/web-platform-tests/pull/3950.
+    // FIXME: This test assumes that the empty string be returned but it is not clear whether that is right. See https://github.com/web-platform-tests/wpt/pull/3950.
     checkRequestWithEmptyBody("FormData", new FormData(), true);
     checkRequestWithEmptyBody("ArrayBuffer", new ArrayBuffer(), true);
     </script>
diff --git a/fetch/api/request/request-reset-attributes.https.html b/fetch/api/request/request-reset-attributes.https.html
index ba04d19..7be3608 100644
--- a/fetch/api/request/request-reset-attributes.https.html
+++ b/fetch/api/request/request-reset-attributes.https.html
@@ -7,6 +7,10 @@
 <script>
 const worker = 'resources/request-reset-attributes-worker.js';
 
+function wait(ms) {
+  return new Promise(resolve => step_timeout(resolve, ms));
+}
+
 promise_test(async (t) => {
     const scope = 'resources/hello.txt?name=isReloadNavigation';
     let frame;
@@ -33,4 +37,60 @@
       }
     }
   }, 'Request.isReloadNavigation is reset with non-empty RequestInit');
+
+promise_test(async (t) => {
+    const scope = 'resources/hello.html?name=isHistoryNavigation';
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'old: false, new: false');
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.onload = resolve;
+        frame.src = 'resources/hello.html?ignore';
+      });
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.onload = resolve;
+        frame.contentWindow.history.go(-1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'old: true, new: false');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+}, 'Request.isHistoryNavigation is reset with non-empty RequestInit');
+
+promise_test(async (t) => {
+    const scope = 'resources/hello.txt?name=mode';
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'old: navigate, new: same-origin');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'Request.mode is reset with non-empty RequestInit when it\'s "navigate"');
 </script>
diff --git a/fetch/api/request/request-structure.html b/fetch/api/request/request-structure.html
index 3f82e9c..e137a7e 100644
--- a/fetch/api/request/request-structure.html
+++ b/fetch/api/request/request-structure.html
@@ -30,6 +30,8 @@
                         "cache",
                         "redirect",
                         "integrity",
+                        "isReloadNavigation",
+                        "isHistoryNavigation",
                         //Request implements Body
                         "bodyUsed"
                        ];
@@ -45,7 +47,7 @@
 
           case "url":
             //default value is base url
-            //i.e http://web-platform.test:8000/fetch/api/request-structure.html
+            //i.e http://example.com/fetch/api/request-structure.html
             newValue = "http://url.test";
             break;
 
@@ -104,6 +106,11 @@
             newValue = true;
             break;
 
+          case "isHistoryNavigation":
+            defaultValue = false;
+            newValue = true;
+            break;
+
           default:
             return;
         }
diff --git a/fetch/api/request/resources/cache.py b/fetch/api/request/resources/cache.py
index e0b058b..10122f6 100644
--- a/fetch/api/request/resources/cache.py
+++ b/fetch/api/request/resources/cache.py
@@ -49,10 +49,10 @@
 
     # The only-if-cached redirect tests wants CORS to be okay, the other tests
     # are all same-origin anyways and don't care.
-    response.headers.set("Access-Control-Allow-Origin", "*");
+    response.headers.set("Access-Control-Allow-Origin", "*")
 
     if redirect:
-        response.headers.set("Location", redirect);
+        response.headers.set("Location", redirect)
         response.status = (302, "Redirect")
         return ""
     elif ((inm is not None and inm == tag) or
diff --git a/fetch/api/resources/authentication.py b/fetch/api/resources/authentication.py
index a06d179..b65047d 100644
--- a/fetch/api/resources/authentication.py
+++ b/fetch/api/resources/authentication.py
@@ -12,4 +12,3 @@
     return ((401, "Unauthorized"),
             [("WWW-Authenticate", 'Basic realm="' + realm + '"')],
             "Please login with credentials 'user' and 'password'")
-
diff --git a/fetch/api/resources/bad-chunk-encoding.py b/fetch/api/resources/bad-chunk-encoding.py
index 3135403..23c7b3f 100644
--- a/fetch/api/resources/bad-chunk-encoding.py
+++ b/fetch/api/resources/bad-chunk-encoding.py
@@ -6,7 +6,7 @@
     time.sleep(delay)
     response.headers.set("Transfer-Encoding", "chunked")
     response.write_status_headers()
-    time.sleep(delay);
+    time.sleep(delay)
     for i in xrange(count):
         response.writer.write_content("a\r\nTEST_CHUNK\r\n")
         time.sleep(delay)
diff --git a/fetch/api/resources/inspect-headers.py b/fetch/api/resources/inspect-headers.py
index d53038c..b6840cf 100644
--- a/fetch/api/resources/inspect-headers.py
+++ b/fetch/api/resources/inspect-headers.py
@@ -4,8 +4,8 @@
     if "headers" in request.GET:
         checked_headers = request.GET.first("headers").split("|")
         for header in checked_headers:
-          if header in request.headers:
-              headers.append(("x-request-" + header, request.headers.get(header, "") ))
+            if header in request.headers:
+                headers.append(("x-request-" + header, request.headers.get(header, "")))
 
     if "cors" in request.GET:
         if "Origin" in request.headers:
diff --git a/fetch/api/resources/preflight.py b/fetch/api/resources/preflight.py
index 6263eae..5f4076a 100644
--- a/fetch/api/resources/preflight.py
+++ b/fetch/api/resources/preflight.py
@@ -59,12 +59,12 @@
     headers.append(("Access-Control-Expose-Headers", "x-did-preflight, x-control-request-headers, x-referrer, x-preflight-referrer, x-origin"))
     headers.append(("x-did-preflight", stashed_data['preflight']))
     if stashed_data['control_request_headers'] != None:
-      headers.append(("x-control-request-headers", stashed_data['control_request_headers']))
+        headers.append(("x-control-request-headers", stashed_data['control_request_headers']))
     headers.append(("x-preflight-referrer", stashed_data['preflight_referrer']))
-    headers.append(("x-referrer", request.headers.get("Referer", "") ))
-    headers.append(("x-origin", request.headers.get("Origin", "") ))
+    headers.append(("x-referrer", request.headers.get("Referer", "")))
+    headers.append(("x-origin", request.headers.get("Origin", "")))
 
     if token:
-      request.server.stash.put(token, stashed_data)
+        request.server.stash.put(token, stashed_data)
 
     return headers, ""
diff --git a/fetch/api/resources/redirect.py b/fetch/api/resources/redirect.py
index 40c1b99..8e6f9c2 100644
--- a/fetch/api/resources/redirect.py
+++ b/fetch/api/resources/redirect.py
@@ -28,7 +28,7 @@
         #Preflight is not redirected: return 200
         if not "redirect_preflight" in request.GET:
             if token:
-              request.server.stash.put(request.GET.first("token"), stashed_data)
+                request.server.stash.put(request.GET.first("token"), stashed_data)
             return 200, headers, ""
 
     if "redirect_status" in request.GET:
@@ -59,7 +59,7 @@
     if token:
         request.server.stash.put(request.GET.first("token"), stashed_data)
         if "max_count" in request.GET:
-            max_count =  int(request.GET['max_count'])
+            max_count = int(request.GET['max_count'])
             #stop redirecting and return count
             if stashed_data['count'] > max_count:
                 # -1 because the last is not a redirection
diff --git a/fetch/api/resources/trickle.py b/fetch/api/resources/trickle.py
index 319ecd2..e2c9bee 100644
--- a/fetch/api/resources/trickle.py
+++ b/fetch/api/resources/trickle.py
@@ -8,7 +8,7 @@
     time.sleep(delay)
     response.headers.set("Content-type", "text/plain")
     response.write_status_headers()
-    time.sleep(delay);
+    time.sleep(delay)
     for i in xrange(count):
         response.writer.write_content("TEST_TRICKLE\n")
         time.sleep(delay)
diff --git a/fetch/corb/README.md b/fetch/corb/README.md
index 48fc4ad..f131b5a 100644
--- a/fetch/corb/README.md
+++ b/fetch/corb/README.md
@@ -12,20 +12,22 @@
 algorithm.
 
 
-### Disclaimer: CORB is not standardized yet
+### CORB is not universally implemented yet
 
-Note that CORB is currently in very early stages of standardization path.  At
-the same time, some tests in this directory (e.g.
+CORB has been included
+in the [Fetch spec](https://fetch.spec.whatwg.org/#corb)
+since [May 2018](https://github.com/whatwg/fetch/pull/686).
+
+Some tests in this directory (e.g.
 `css-with-json-parser-breaker`) cover behavior spec-ed outside of CORB (making
 sure that CORB doesn't change the existing web behavior) and therefore are
-valuable independently from CORB's standardization efforts.
+valuable independently from CORB's standardization efforts and should already
+be passing across all browsers.
 
-Tests that cover behavior that is changed by CORB have to be marked as
+Tests that cover behavior that is changed by CORB are currently marked as
 [tentative](https://web-platform-tests.org/writing-tests/file-names.html)
-(using `.tentative` substring in their filename) until CORB
-is included in the official
-[Fetch spec](https://fetch.spec.whatwg.org/).  Such tests may fail unless
-CORB is enabled.  In practice this means that:
+(using `.tentative` substring in their filename).
+Such tests may fail unless CORB is enabled.  In practice this means that:
 * Such tests will pass in Chromium
   (where CORB is enabled by default [since M68](https://crrev.com/553830)).
 * Such tests may fail in other browsers.
@@ -53,12 +55,13 @@
   * blocking of CORB-protected documents can prevent triggering
     syntax errors in scripts -
     `script-html-via-cross-origin-blob-url.tentative.sub.html`
+* Helping verify which MIME types are protected by CORB.
 
 Examples of aspects that WPT tests cannot cover (these aspects have to be
 covered in other, browser-specific tests):
 * Verifying that CORB doesn't affect things that are only indirectly
   observable by the web (like
   [prefetch](https://html.spec.whatwg.org/#link-type-prefetch).
-* Verifying that CORB strips non-safe-listed headers of blocked responses.
+* Verifying that CORB strips headers of blocked responses.
 * Verifying that CORB blocks responses before they reach the process hosting
   a cross-origin execution context.
diff --git a/fetch/corb/img-html-correctly-labeled.sub.html b/fetch/corb/img-html-correctly-labeled.sub.html
index 78fc09f..844cd0c 100644
--- a/fetch/corb/img-html-correctly-labeled.sub.html
+++ b/fetch/corb/img-html-correctly-labeled.sub.html
@@ -6,6 +6,6 @@
 -->
 <meta charset="utf-8">
 <!-- Reference page uses same-origin resources, which are not CORB-eligible. -->
-<link rel="match" href="img-png-mislabeled-as-html.sub-ref.html">
+<link rel="match" href="img-html-correctly-labeled.sub-ref.html">
 <!-- www1 is cross-origin, so the HTTP response is CORB-eligible -->
 <img src="http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/html-correctly-labeled.html">
diff --git a/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html b/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html
index a4e519d..82adc47 100644
--- a/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html
+++ b/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html
@@ -6,6 +6,6 @@
 -->
 <meta charset="utf-8">
 <!-- Reference page uses same-origin resources, which are not CORB-eligible. -->
-<link rel="match" href="img-png-mislabeled-as-html.sub-ref.html">
+<link rel="match" href="img-png-mislabeled-as-html-nosniff.tentative.sub-ref.html">
 <!-- www1 is cross-origin, so the HTTP response is CORB-eligible -->
 <img src="http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/png-mislabeled-as-html-nosniff.png">
diff --git a/fetch/http-cache/resources/http-cache.py b/fetch/http-cache/resources/http-cache.py
index aedd52e..4410500 100644
--- a/fetch/http-cache/resources/http-cache.py
+++ b/fetch/http-cache/resources/http-cache.py
@@ -30,7 +30,7 @@
             noted_headers[header[0].lower()] = header[1]
 
     if "access-control-allow-origin" not in noted_headers:
-        response.headers.set("Access-Control-Allow-Origin", "*");
+        response.headers.set("Access-Control-Allow-Origin", "*")
     if "content-type" not in noted_headers:
         response.headers.set("Content-Type", "text/plain")
     response.headers.set("Server-Request-Count", len(server_state))
diff --git a/fetch/nosniff/resources/css.py b/fetch/nosniff/resources/css.py
index 55712c5..f283e78 100644
--- a/fetch/nosniff/resources/css.py
+++ b/fetch/nosniff/resources/css.py
@@ -6,18 +6,18 @@
 
     response.add_required_headers = False
     if is_revalidation is not None:
-      response.writer.write_status(304)
-      response.writer.write_header("x-content-type-options", "nosniff")
-      response.writer.write_header("content-length", 0)
-      if(type != None):
-        response.writer.write_header("content-type", type)
-      response.writer.end_headers()
-      response.writer.write("")
+        response.writer.write_status(304)
+        response.writer.write_header("x-content-type-options", "nosniff")
+        response.writer.write_header("content-length", 0)
+        if(type != None):
+            response.writer.write_header("content-type", type)
+        response.writer.end_headers()
+        response.writer.write("")
     else:
-      response.writer.write_status(200)
-      response.writer.write_header("x-content-type-options", "nosniff")
-      response.writer.write_header("content-length", len(content))
-      if(type != None):
-        response.writer.write_header("content-type", type)
-      response.writer.end_headers()
-      response.writer.write(content)
+        response.writer.write_status(200)
+        response.writer.write_header("x-content-type-options", "nosniff")
+        response.writer.write_header("content-length", len(content))
+        if(type != None):
+            response.writer.write_header("content-type", type)
+        response.writer.end_headers()
+        response.writer.write(content)
diff --git a/fetch/nosniff/resources/image.py b/fetch/nosniff/resources/image.py
index 623a40d..a19ff1f 100644
--- a/fetch/nosniff/resources/image.py
+++ b/fetch/nosniff/resources/image.py
@@ -4,9 +4,9 @@
     type = request.GET.first("type", None)
 
     if type != None and "svg" in type:
-      filename = "green-96x96.svg"
+        filename = "green-96x96.svg"
     else:
-      filename = "blue96x96.png"
+        filename = "blue96x96.png"
 
     path = os.path.join(os.path.dirname(__file__), "../../../images", filename)
     body = open(path, "rb").read()
@@ -16,7 +16,7 @@
     response.writer.write_header("x-content-type-options", "nosniff")
     response.writer.write_header("content-length", len(body))
     if(type != None):
-      response.writer.write_header("content-type", type)
+        response.writer.write_header("content-type", type)
     response.writer.end_headers()
 
     response.writer.write(body)
diff --git a/fetch/nosniff/resources/js.py b/fetch/nosniff/resources/js.py
index 0c06d9c..4fb7fb6 100644
--- a/fetch/nosniff/resources/js.py
+++ b/fetch/nosniff/resources/js.py
@@ -11,7 +11,7 @@
     response.writer.write_header("x-content-type-options", "nosniff")
     response.writer.write_header("content-length", len(content))
     if(type != "Content-Type missing"):
-      response.writer.write_header("content-type", type)
+        response.writer.write_header("content-type", type)
     response.writer.end_headers()
 
     response.writer.write(content)
diff --git a/fetch/nosniff/resources/worker.py b/fetch/nosniff/resources/worker.py
index 3903ba3..a06a3a2 100644
--- a/fetch/nosniff/resources/worker.py
+++ b/fetch/nosniff/resources/worker.py
@@ -10,7 +10,7 @@
     response.writer.write_header("x-content-type-options", "nosniff")
     response.writer.write_header("content-length", len(content))
     if(type != None):
-      response.writer.write_header("content-type", type)
+        response.writer.write_header("content-type", type)
     response.writer.end_headers()
 
     response.writer.write(content)
diff --git a/fetch/origin/no-cors.any.js b/fetch/origin/no-cors.any.js
new file mode 100644
index 0000000..c9d1d3b
--- /dev/null
+++ b/fetch/origin/no-cors.any.js
@@ -0,0 +1,20 @@
+// META: script=/common/utils.js
+// META: script=/common/get-host-info.sub.js
+
+promise_test(async function() {
+  const stash = token(),
+        origins = get_host_info(),
+        redirectPath = "/fetch/origin/resources/redirect-and-stash.py";
+
+  // Cross-origin -> same-origin will result in setting the tainted origin flag for the second
+  // request.
+  let url = origins.HTTP_ORIGIN + redirectPath + "?stash=" + stash;
+  url = origins.HTTP_REMOTE_ORIGIN + redirectPath + "?stash=" + stash + "&location=" + encodeURIComponent(url);
+
+  await fetch(url, { mode: "no-cors", method: "POST" });
+
+  const json = await (await fetch(redirectPath + "?dump&stash=" + stash)).json();
+
+  assert_equals(json[0], origins.HTTP_ORIGIN, "first origin should equal this origin");
+  assert_equals(json[1], "null", "second origin should be opaque and therefore null");
+}, "Origin header and 308 redirect");
diff --git a/fetch/origin/resources/redirect-and-stash.py b/fetch/origin/resources/redirect-and-stash.py
new file mode 100644
index 0000000..1b1b46b
--- /dev/null
+++ b/fetch/origin/resources/redirect-and-stash.py
@@ -0,0 +1,29 @@
+import json
+
+def main(request, response):
+    key = request.GET.first("stash")
+    origin = request.headers.get("origin")
+    if origin is None:
+        origin = "no Origin header"
+
+    origin_list = request.server.stash.take(key)
+
+    if "dump" in request.GET:
+        response.headers.set("content-Type", "application/json")
+        response.content = json.dumps(origin_list)
+        return
+
+    if origin_list is None:
+        origin_list = [origin]
+    else:
+        origin_list.append(origin)
+
+    request.server.stash.put(key, origin_list)
+
+    if "location" in request.GET:
+        response.status = 308
+        response.headers.set("Location", request.GET.first("location"))
+        return
+
+    response.headers.set("content-Type", "text/plain")
+    response.content = "Fix https://github.com/whatwg/fetch/issues/737..."
diff --git a/fetch/range/general.any.js b/fetch/range/general.any.js
new file mode 100644
index 0000000..2e49ed1
--- /dev/null
+++ b/fetch/range/general.any.js
@@ -0,0 +1,60 @@
+// Helpers that return headers objects with a particular guard
+function headersGuardNone(fill) {
+  if (fill) return new Headers(fill);
+  return new Headers();
+}
+
+function headersGuardResponse(fill) {
+  const opts = {};
+  if (fill) opts.headers = fill;
+  return new Response('', opts).headers;
+}
+
+function headersGuardRequest(fill) {
+  const opts = {};
+  if (fill) opts.headers = fill;
+  return new Request('./', opts).headers;
+}
+
+function headersGuardRequestNoCors(fill) {
+  const opts = { mode: 'no-cors' };
+  if (fill) opts.headers = fill;
+  return new Request('./', opts).headers;
+}
+
+const headerGuardTypes = [
+  ['none', headersGuardNone],
+  ['response', headersGuardResponse],
+  ['request', headersGuardRequest]
+];
+
+for (const [guardType, createHeaders] of headerGuardTypes) {
+  test(() => {
+    // There are three ways to set headers.
+    // Filling, appending, and setting. Test each:
+    let headers = createHeaders({ Range: 'foo' });
+    assert_equals(headers.get('Range'), 'foo');
+
+    headers = createHeaders();
+    headers.append('Range', 'foo');
+    assert_equals(headers.get('Range'), 'foo');
+
+    headers = createHeaders();
+    headers.set('Range', 'foo');
+    assert_equals(headers.get('Range'), 'foo');
+  }, `Range header setting allowed for guard type: ${guardType}`);
+}
+
+test(() => {
+  let headers = headersGuardRequestNoCors({ Range: 'foo' });
+  assert_false(headers.has('Range'));
+
+  headers = headersGuardRequestNoCors();
+  headers.append('Range', 'foo');
+  assert_false(headers.has('Range'));
+
+  headers = headersGuardRequestNoCors();
+  headers.set('Range', 'foo');
+  assert_false(headers.has('Range'));
+}, `Privileged header not allowed for guard type: request-no-cors`);
+
diff --git a/fetch/range/partial-script.window.js b/fetch/range/partial-script.window.js
new file mode 100644
index 0000000..36b4bba
--- /dev/null
+++ b/fetch/range/partial-script.window.js
@@ -0,0 +1,7 @@
+// META: script=resources/utils.js
+
+// It's weird that browsers do this, but it should continue to work.
+promise_test(async t => {
+  await loadScript('resources/partial-script.py?pretend-offset=90000');
+  assert_true(self.scriptExecuted);
+}, `Script executed from partial response`);
diff --git a/fetch/range/resources/basic.html b/fetch/range/resources/basic.html
new file mode 100644
index 0000000..0e76edd
--- /dev/null
+++ b/fetch/range/resources/basic.html
@@ -0,0 +1 @@
+<!DOCTYPE html>
diff --git a/fetch/range/resources/long-wav.py b/fetch/range/resources/long-wav.py
new file mode 100644
index 0000000..d510767
--- /dev/null
+++ b/fetch/range/resources/long-wav.py
@@ -0,0 +1,111 @@
+"""
+This generates a 30 minute silent wav, and is capable of
+responding to Range requests.
+"""
+import time
+import re
+import struct
+
+
+def create_wav_header(sample_rate, bit_depth, channels, duration):
+    bytes_per_sample = bit_depth / 8
+    block_align = bytes_per_sample * channels
+    byte_rate = sample_rate * block_align
+    sub_chunk_2_size = duration * byte_rate
+
+    data = b''
+    # ChunkID
+    data += b'RIFF'
+    # ChunkSize
+    data += struct.pack('<L', 36 + sub_chunk_2_size)
+    # Format
+    data += b'WAVE'
+    # Subchunk1ID
+    data += b'fmt '
+    # Subchunk1Size
+    data += struct.pack('<L', 16)
+    # AudioFormat
+    data += struct.pack('<H', 1)
+    # NumChannels
+    data += struct.pack('<H', channels)
+    # SampleRate
+    data += struct.pack('<L', sample_rate)
+    # ByteRate
+    data += struct.pack('<L', byte_rate)
+    # BlockAlign
+    data += struct.pack('<H', block_align)
+    # BitsPerSample
+    data += struct.pack('<H', bit_depth)
+    # Subchunk2ID
+    data += b'data'
+    # Subchunk2Size
+    data += struct.pack('<L', sub_chunk_2_size)
+
+    return data
+
+
+def main(request, response):
+    response.headers.set("Content-Type", "audio/wav")
+    response.headers.set("Accept-Ranges", "bytes")
+    response.headers.set("Cache-Control", "no-cache")
+
+    range_header = request.headers.get('Range', '')
+    range_received_key = request.GET.first('range-received-key', '')
+
+    if range_received_key and range_header:
+        # This is later collected using stash-take.py
+        request.stash.put(range_received_key, 'range-header-received', '/fetch/range/')
+
+    # Audio details
+    sample_rate = 8000
+    bit_depth = 8
+    channels = 1
+    duration = 60 * 5
+
+    total_length = (sample_rate * bit_depth * channels * duration) / 8
+    bytes_remaining_to_send = total_length
+    initial_write = ''
+
+    if range_header:
+        response.status = 206
+        start, end = re.search(r'^bytes=(\d*)-(\d*)$', range_header).groups()
+
+        start = int(start)
+        end = int(end) if end else 0
+
+        if end:
+            bytes_remaining_to_send = (end + 1) - start
+        else:
+            bytes_remaining_to_send = total_length - start
+
+        wav_header = create_wav_header(sample_rate, bit_depth, channels, duration)
+
+        if start < len(wav_header):
+            initial_write = wav_header[start:]
+
+            if bytes_remaining_to_send < len(initial_write):
+                initial_write = initial_write[0:bytes_remaining_to_send]
+
+        content_range = "bytes {}-{}/{}".format(start, end or total_length - 1, total_length)
+
+        response.headers.set("Content-Range", content_range)
+    else:
+        initial_write = create_wav_header(sample_rate, bit_depth, channels, duration)
+
+    response.headers.set("Content-Length", bytes_remaining_to_send)
+
+    response.write_status_headers()
+    response.writer.write(initial_write)
+
+    bytes_remaining_to_send -= len(initial_write)
+
+    while bytes_remaining_to_send > 0:
+        if not response.writer.flush():
+            break
+
+        to_send = b'\x00' * min(bytes_remaining_to_send, sample_rate)
+        bytes_remaining_to_send -= len(to_send)
+
+        response.writer.write(to_send)
+        # Throttle the stream
+        time.sleep(0.5)
diff --git a/fetch/range/resources/partial-script.py b/fetch/range/resources/partial-script.py
new file mode 100644
index 0000000..5b642c6
--- /dev/null
+++ b/fetch/range/resources/partial-script.py
@@ -0,0 +1,30 @@
+"""
+This generates a partial response containing valid JavaScript.
+"""
+
+
+def main(request, response):
+    require_range = request.GET.first('require-range', '')
+    pretend_offset = int(request.GET.first('pretend-offset', '0'))
+    range_header = request.headers.get('Range', '')
+
+    if require_range and not range_header:
+        response.set_error(412, "Range header required")
+        response.write()
+        return
+
+    response.headers.set("Content-Type", "text/plain")
+    response.headers.set("Accept-Ranges", "bytes")
+    response.headers.set("Cache-Control", "no-cache")
+    response.status = 206
+
+    to_send = 'self.scriptExecuted = true;'
+    length = len(to_send)
+
+    content_range = "bytes {}-{}/{}".format(
+        pretend_offset, pretend_offset + length - 1, pretend_offset + length)
+
+    response.headers.set("Content-Range", content_range)
+    response.headers.set("Content-Length", length)
+
+    response.content = to_send
diff --git a/fetch/range/resources/range-sw.js b/fetch/range/resources/range-sw.js
new file mode 100644
index 0000000..1dfee58
--- /dev/null
+++ b/fetch/range/resources/range-sw.js
@@ -0,0 +1,142 @@
+importScripts('/resources/testharness.js');
+
+setup({ explicit_done: true });
+
+function assert_range_request(request, expectedRangeHeader, name) {
+  assert_equals(request.headers.get('Range'), expectedRangeHeader, name);
+}
+
+async function broadcast(msg) {
+  for (const client of await clients.matchAll()) {
+    client.postMessage(msg);
+  }
+}
+
+addEventListener('fetch', event => {
+  /** @type Request */
+  const request = event.request;
+  const url = new URL(request.url);
+  const action = url.searchParams.get('action');
+
+  switch (action) {
+    case 'range-header-filter-test':
+      rangeHeaderFilterTest(request);
+      return;
+    case 'range-header-passthrough-test':
+      rangeHeaderPassthroughTest(event);
+      return;
+    case 'store-ranged-response':
+      storeRangedResponse(event);
+      return;
+    case 'use-stored-ranged-response':
+      useStoredRangeResponse(event);
+      return;
+  }
+});
+
+/**
+ * @param {Request} request
+ */
+function rangeHeaderFilterTest(request) {
+  const rangeValue = request.headers.get('Range');
+
+  test(() => {
+    assert_range_request(new Request(request), rangeValue, `Untampered`);
+    assert_range_request(new Request(request, {}), rangeValue, `Untampered (no init props set)`);
+    assert_range_request(new Request(request, { __foo: 'bar' }), rangeValue, `Untampered (only invalid props set)`);
+    assert_range_request(new Request(request, { mode: 'cors' }), rangeValue, `More permissive mode`);
+    assert_range_request(request.clone(), rangeValue, `Clone`);
+  }, "Range headers correctly preserved");
+
+  test(() => {
+    assert_range_request(new Request(request, { headers: { Range: 'foo' } }), null, `Tampered - range header set`);
+    assert_range_request(new Request(request, { headers: {} }), null, `Tampered - empty headers set`);
+    assert_range_request(new Request(request, { mode: 'no-cors' }), null, `Tampered – mode set`);
+    assert_range_request(new Request(request, { cache: 'no-cache' }), null, `Tampered – cache mode set`);
+  }, "Range headers correctly removed");
+
+  test(() => {
+    let headers;
+
+    headers = new Request(request).headers;
+    headers.delete('does-not-exist');
+    assert_equals(headers.get('Range'), rangeValue, `Preserved if no header actually removed`);
+
+    headers = new Request(request).headers;
+    headers.append('foo', 'bar');
+    assert_equals(headers.get('Range'), rangeValue, `Preserved if silent-failure on append (due to request-no-cors guard)`);
+
+    headers = new Request(request).headers;
+    headers.set('foo', 'bar');
+    assert_equals(headers.get('Range'), rangeValue, `Preserved if silent-failure on set (due to request-no-cors guard)`);
+
+    headers = new Request(request).headers;
+    headers.append('Range', 'foo');
+    assert_equals(headers.get('Range'), rangeValue, `Preserved if silent-failure on append (due to request-no-cors guard)`);
+
+    headers = new Request(request).headers;
+    headers.set('Range', 'foo');
+    assert_equals(headers.get('Range'), rangeValue, `Preserved if silent-failure on set (due to request-no-cors guard)`);
+
+    headers = new Request(request).headers;
+    headers.append('Accept', 'whatever');
+    assert_equals(headers.get('Range'), null, `Stripped if header successfully appended`);
+
+    headers = new Request(request).headers;
+    headers.set('Accept', 'whatever');
+    assert_equals(headers.get('Range'), null, `Stripped if header successfully set`);
+
+    headers = new Request(request).headers;
+    headers.delete('Accept');
+    assert_equals(headers.get('Range'), null, `Stripped if header successfully deleted`);
+
+    headers = new Request(request).headers;
+    headers.delete('Range');
+    assert_equals(headers.get('Range'), null, `Stripped if range header successfully deleted`);
+  }, "Headers correctly filtered");
+
+  done();
+}
+
+function rangeHeaderPassthroughTest(event) {
+  /** @type Request */
+  const request = event.request;
+  const url = new URL(request.url);
+  const key = url.searchParams.get('range-received-key');
+
+  event.waitUntil(new Promise(resolve => {
+    promise_test(async () => {
+      await fetch(event.request);
+      const response = await fetch('stash-take.py?key=' + key);
+      assert_equals(await response.json(), '"range-header-received"');
+      resolve();
+    }, `Include range header in network request`);
+
+    done();
+  }));
+
+  // Just send back any response, it isn't important for the test.
+  event.respondWith(new Response(''));
+}
+
+let storedRangeResponseP;
+
+function storeRangedResponse(event) {
+  /** @type Request */
+  const request = event.request;
+  const id = new URL(request.url).searchParams.get('id');
+
+  storedRangeResponseP = fetch(event.request);
+  broadcast({ id });
+
+  // Just send back any response, it isn't important for the test.
+  event.respondWith(new Response(''));
+}
+
+function useStoredRangeResponse(event) {
+  event.respondWith(async function() {
+    const response = await storedRangeResponseP;
+    if (!response) throw Error("Expected stored range response");
+    return response.clone();
+  }());
+}
diff --git a/fetch/range/resources/stash-take.py b/fetch/range/resources/stash-take.py
new file mode 100644
index 0000000..4ec1fe5
--- /dev/null
+++ b/fetch/range/resources/stash-take.py
@@ -0,0 +1,7 @@
+from wptserve.handlers import json_handler
+
+
+@json_handler
+def main(request, response):
+    key = request.GET.first("key")
+    return request.server.stash.take(key, '/fetch/range/')
diff --git a/fetch/range/resources/utils.js b/fetch/range/resources/utils.js
new file mode 100644
index 0000000..567f231
--- /dev/null
+++ b/fetch/range/resources/utils.js
@@ -0,0 +1,9 @@
+function loadScript(url, { doc = document }={}) {
+  return new Promise((resolve, reject) => {
+    const script = doc.createElement('script');
+    script.onload = () => resolve();
+    script.onerror = () => reject(Error("Script load failed"));
+    script.src = url;
+    doc.body.appendChild(script);
+  })
+}
diff --git a/fetch/range/sw.https.window.js b/fetch/range/sw.https.window.js
new file mode 100644
index 0000000..aa3d2c4
--- /dev/null
+++ b/fetch/range/sw.https.window.js
@@ -0,0 +1,128 @@
+// META: script=../../../service-workers/service-worker/resources/test-helpers.sub.js
+// META: script=/common/utils.js
+// META: script=/common/get-host-info.sub.js
+// META: script=resources/utils.js
+
+const { REMOTE_HOST } = get_host_info();
+const SCOPE = 'resources/basic.html' + Math.random();
+
+function appendAudio(document, url) {
+  const audio = document.createElement('audio');
+  audio.muted = true;
+  audio.src = url;
+  audio.preload = true;
+  document.body.appendChild(audio);
+}
+
+async function cleanup() {
+  for (const iframe of document.querySelectorAll('.test-iframe')) {
+    iframe.parentNode.removeChild(iframe);
+  }
+
+  const reg = await navigator.serviceWorker.getRegistration(SCOPE);
+  if (reg) await reg.unregister();
+}
+
+async function setupRegistration(t) {
+  await cleanup();
+  const reg = await navigator.serviceWorker.register('resources/range-sw.js', { scope: SCOPE });
+  await wait_for_state(t, reg.installing, 'activated');
+  return reg;
+}
+
+function awaitMessage(obj, id) {
+  return new Promise(resolve => {
+    obj.addEventListener('message', function listener(event) {
+      if (event.data.id !== id) return;
+      obj.removeEventListener('message', listener);
+      resolve();
+    });
+  });
+}
+
+promise_test(async t => {
+  const reg = await setupRegistration(t);
+  const iframe = await with_iframe(SCOPE);
+  const w = iframe.contentWindow;
+
+  // Trigger a cross-origin range request using media
+  const url = new URL('long-wav.py?action=range-header-filter-test', w.location);
+  url.hostname = REMOTE_HOST;
+  appendAudio(w.document, url);
+
+  // See rangeHeaderFilterTest in resources/range-sw.js
+  await fetch_tests_from_worker(reg.active);
+}, `Defer range header filter tests to service worker`);
+
+promise_test(async t => {
+  const reg = await setupRegistration(t);
+  const iframe = await with_iframe(SCOPE);
+  const w = iframe.contentWindow;
+
+  // Trigger a cross-origin range request using media
+  const url = new URL('long-wav.py', w.location);
+  url.searchParams.set('action', 'range-header-passthrough-test');
+  url.searchParams.set('range-received-key', token());
+  url.hostname = REMOTE_HOST;
+  appendAudio(w.document, url);
+
+  // See rangeHeaderPassthroughTest in resources/range-sw.js
+  await fetch_tests_from_worker(reg.active);
+}, `Defer range header passthrough tests to service worker`);
+
+promise_test(async t => {
+  await setupRegistration(t);
+  const iframe = await with_iframe(SCOPE);
+  const w = iframe.contentWindow;
+  const id = Math.random() + '';
+  const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id);
+
+  // Trigger a cross-origin range request using media
+  const url = new URL('partial-script.py', w.location);
+  url.searchParams.set('require-range', '1');
+  url.searchParams.set('action', 'store-ranged-response');
+  url.searchParams.set('id', id);
+  url.hostname = REMOTE_HOST;
+
+  appendAudio(w.document, url);
+
+  await storedRangeResponse;
+
+  // Fetching should reject
+  const fetchPromise = w.fetch('?action=use-stored-ranged-response', { mode: 'no-cors' });
+  promise_rejects(t, new TypeError(), fetchPromise);
+
+  // Script loading should error too
+  const loadScriptPromise = loadScript('?action=use-stored-ranged-response', { doc: w.document });
+  promise_rejects(t, new Error(), loadScriptPromise);
+
+  await loadScriptPromise.catch(() => {});
+
+  assert_false(!!w.scriptExecuted, `Partial response shouldn't be executed`);
+}, `Ranged response not allowed following no-cors ranged request`);
+
+promise_test(async t => {
+  await setupRegistration(t);
+  const iframe = await with_iframe(SCOPE);
+  const w = iframe.contentWindow;
+  const id = Math.random() + '';
+  const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id);
+
+  // Trigger a range request using media
+  const url = new URL('partial-script.py', w.location);
+  url.searchParams.set('require-range', '1');
+  url.searchParams.set('action', 'store-ranged-response');
+  url.searchParams.set('id', id);
+
+  appendAudio(w.document, url);
+
+  await storedRangeResponse;
+
+  // This should not throw
+  await w.fetch('?action=use-stored-ranged-response');
+
+  // This shouldn't throw either
+  await loadScript('?action=use-stored-ranged-response', { doc: w.document });
+
+  assert_true(w.scriptExecuted, `Partial response should be executed`);
+}, `Non-opaque ranged response executed`);
diff --git a/fetch/sec-metadata/README.md b/fetch/sec-metadata/README.md
new file mode 100644
index 0000000..c460aa1
--- /dev/null
+++ b/fetch/sec-metadata/README.md
@@ -0,0 +1,11 @@
+`Sec-Metadata` Tests
+====================
+
+This directory contains tests related to the `Sec-Metadata` proposal:
+
+:   Explainer
+::  <https://github.com/mikewest/sec-metadata>
+:   "Spec"
+::  <https://mikewest.github.io/sec-metadata/>
+
+Note: All of this is tentative, and will change (rapidly).
diff --git a/fetch/sec-metadata/fetch.tentative.https.sub.html b/fetch/sec-metadata/fetch.tentative.https.sub.html
new file mode 100644
index 0000000..1128218
--- /dev/null
+++ b/fetch/sec-metadata/fetch.tentative.https.sub.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script>
+  promise_test(t => {
+    return fetch("https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-json.py")
+        .then(r => r.json())
+        .then(j => {
+          assert_header_equals(j.header, {
+            "cause": "forced",
+            "destination": "\"\"",
+            "target": "subresource",
+            "site": "same-origin"
+          });
+        });
+  }, "Same-origin fetch");
+
+  promise_test(t => {
+    return fetch("https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-json.py")
+        .then(r => r.json())
+        .then(j => {
+          assert_header_equals(j.header, {
+            "cause": "forced",
+            "destination": "\"\"",
+            "target": "subresource",
+            "site": "same-site"
+          });
+        });
+  }, "Same-site fetch");
+
+  promise_test(t => {
+    return fetch("https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-json.py")
+        .then(r => r.json())
+        .then(j => {
+          assert_header_equals(j.header, {
+            "cause": "forced",
+            "destination": "\"\"",
+            "target": "subresource",
+            "site": "cross-site"
+          });
+        });
+  }, "Cross-site fetch");
+</script>
diff --git a/fetch/sec-metadata/iframe.tentative.https.sub.html b/fetch/sec-metadata/iframe.tentative.https.sub.html
new file mode 100644
index 0000000..5b56c62
--- /dev/null
+++ b/fetch/sec-metadata/iframe.tentative.https.sub.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/fetch/sec-metadata/resources/helper.js></script>
+<body>
+<script>
+  async_test(t => {
+    let i = document.createElement('iframe');
+    i.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py";
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != i.contentWindow)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "nested",
+        "site": "same-origin"
+      });
+      t.done();
+    }));
+
+    document.body.appendChild(i);
+  }, "Same-origin iframe");
+
+  async_test(t => {
+    let i = document.createElement('iframe');
+    i.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py";
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != i.contentWindow)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "nested",
+        "site": "same-site"
+      });
+      t.done();
+    }));
+
+    document.body.appendChild(i);
+  }, "Same-site iframe");
+
+  async_test(t => {
+    let i = document.createElement('iframe');
+    i.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py";
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != i.contentWindow)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "nested",
+        "site": "cross-site"
+      });
+      t.done();
+    }));
+
+    document.body.appendChild(i);
+  }, "Cross-site iframe");
+</script>
diff --git a/fetch/sec-metadata/img.tentative.https.sub.html b/fetch/sec-metadata/img.tentative.https.sub.html
new file mode 100644
index 0000000..9d17462
--- /dev/null
+++ b/fetch/sec-metadata/img.tentative.https.sub.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/referrer-policy/generic/common.js></script>
+<script src=/fetch/sec-metadata/resources/helper.js></script>
+<body>
+<script>
+  // These tests reuse the `referrer-policy` infrastructure to load images that
+  // encode their request headers in their pixels. Fun stuff!
+  async_test(t => {
+    loadImageInWindow(
+      "https://{{host}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
+      t.step_func_done(img => {
+        assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], {
+          "cause": "forced",
+          "destination": "image",
+          "target": "subresource",
+          "site": "same-origin"
+        });
+      }),
+      [],
+      window);
+  }, "Same-origin image");
+
+  async_test(t => {
+    loadImageInWindow(
+      "https://{{hosts[][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
+      t.step_func_done(img => {
+        assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], {
+          "cause": "forced",
+          "destination": "image",
+          "target": "subresource",
+          "site": "same-site"
+        });
+      }),
+      [],
+      window);
+  }, "Same-site image");
+
+  async_test(t => {
+    loadImageInWindow(
+      "https://{{hosts[alt][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
+      t.step_func_done(img => {
+        assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], {
+          "cause": "forced",
+          "destination": "image",
+          "target": "subresource",
+          "site": "cross-site"
+        });
+      }),
+      [],
+      window);
+  }, "Cross-site image");
+</script>
diff --git a/fetch/sec-metadata/resources/echo-as-json.py b/fetch/sec-metadata/resources/echo-as-json.py
new file mode 100644
index 0000000..a45bb68
--- /dev/null
+++ b/fetch/sec-metadata/resources/echo-as-json.py
@@ -0,0 +1,12 @@
+import json
+
+def main(request, response):
+    headers = [("Content-Type", "application/json"),
+               ("Access-Control-Allow-Credentials", "true")]
+
+    if "origin" in request.headers:
+        headers.append(("Access-Control-Allow-Origin", request.headers["origin"]))
+
+
+    body = json.dumps({ "header": request.headers["sec-metadata"] })
+    return headers, body
diff --git a/fetch/sec-metadata/resources/echo-as-script.py b/fetch/sec-metadata/resources/echo-as-script.py
new file mode 100644
index 0000000..c503822
--- /dev/null
+++ b/fetch/sec-metadata/resources/echo-as-script.py
@@ -0,0 +1,8 @@
+import json
+
+def main(request, response):
+    headers = [("Content-Type", "text/javascript")]
+
+    body = "var header = %s;" % json.dumps(request.headers["sec-metadata"]);
+
+    return headers, body
diff --git a/fetch/sec-metadata/resources/helper.js b/fetch/sec-metadata/resources/helper.js
new file mode 100644
index 0000000..5754b50
--- /dev/null
+++ b/fetch/sec-metadata/resources/helper.js
@@ -0,0 +1,16 @@
+function parse_metadata(value) {
+  let result = {};
+  value.split(',').forEach(item => {
+    let parsed = item.trim().split('=');
+    result[parsed[0]] = parsed[1];
+  });
+  return result;
+}
+
+function assert_header_equals(value, expected) {
+  let result = parse_metadata(value);
+  assert_equals(result.cause, expected.cause, "cause");
+  assert_equals(result.destination, expected.destination, "destination");
+  assert_equals(result.target, expected.target, "target");
+  assert_equals(result.site, expected.site, "site");
+}
diff --git a/fetch/sec-metadata/resources/post-to-owner.py b/fetch/sec-metadata/resources/post-to-owner.py
new file mode 100644
index 0000000..fe08cd1
--- /dev/null
+++ b/fetch/sec-metadata/resources/post-to-owner.py
@@ -0,0 +1,16 @@
+import json
+
+def main(request, response):
+    headers = [("Content-Type", "text/html")]
+
+    body = """
+        <!DOCTYPE html>
+        <script>
+            var data = %s;
+            if (window.opener)
+                window.opener.postMessage(data, "*");
+            if (window.top != window)
+                window.top.postMessage(data, "*");
+        </script>
+    """ % json.dumps(request.headers["sec-metadata"])
+    return headers, body
diff --git a/fetch/sec-metadata/script.tentative.https.sub.html b/fetch/sec-metadata/script.tentative.https.sub.html
new file mode 100644
index 0000000..1916f67
--- /dev/null
+++ b/fetch/sec-metadata/script.tentative.https.sub.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/fetch/sec-metadata/resources/helper.js></script>
+
+<!-- Same-origin script -->
+<script src="https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-script.py"></script>
+<script>
+  test(t => {
+    t.add_cleanup(_ => header = null);
+
+    assert_header_equals(header, {
+      "cause": "forced",
+      "destination": "script",
+      "target": "subresource",
+      "site": "same-origin"
+    });
+  }, "Same-origin script");
+</script>
+
+<!-- Same-site script -->
+<script src="https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-script.py"></script>
+<script>
+  test(t => {
+    t.add_cleanup(_ => header = null);
+
+    assert_header_equals(header, {
+      "cause": "forced",
+      "destination": "script",
+      "target": "subresource",
+      "site": "same-site"
+    });
+  }, "Same-site script");
+</script>
+
+<!-- Cross-site script -->
+<script src="https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/echo-as-script.py"></script>
+<script>
+  test(t => {
+    t.add_cleanup(_ => header = null);
+
+    assert_header_equals(header, {
+      "cause": "forced",
+      "destination": "script",
+      "target": "subresource",
+      "site": "cross-site"
+    });
+  }, "Cross-site script");
+</script>
diff --git a/fetch/sec-metadata/window-open.tentative.https.sub.html b/fetch/sec-metadata/window-open.tentative.https.sub.html
new file mode 100644
index 0000000..1f9df66
--- /dev/null
+++ b/fetch/sec-metadata/window-open.tentative.https.sub.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/testdriver.js></script>
+<script src=/resources/testdriver-vendor.js></script>
+<script src=/fetch/sec-metadata/resources/helper.js></script>
+<body>
+<script>
+  // Forced navigations:
+  async_test(t => {
+    let w = window.open("https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+    t.add_cleanup(_ => w.close());
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != w)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "top-level",
+        "site": "same-origin"
+      });
+      t.done();
+    }));
+  }, "Same-origin window, forced");
+
+  async_test(t => {
+    let w = window.open("https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+    t.add_cleanup(_ => w.close());
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != w)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "top-level",
+        "site": "same-site"
+      });
+      t.done();
+    }));
+  }, "Same-site window, forced");
+
+  async_test(t => {
+    let w = window.open("https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+    t.add_cleanup(_ => w.close());
+    window.addEventListener('message', t.step_func(e => {
+      if (e.source != w)
+        return;
+
+      assert_header_equals(e.data, {
+        "cause": "forced",
+        "destination": "document",
+        "target": "top-level",
+        "site": "cross-site"
+      });
+      t.done();
+    }));
+  }, "Cross-site window, forced");
+
+  // User-activated navigations:
+  async_test(t => {
+    let b = document.createElement('button');
+    b.onclick = t.step_func(_ => {
+      let w = window.open("https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+      t.add_cleanup(_ => w.close());
+      window.addEventListener('message', t.step_func(e => {
+        if (e.source != w)
+          return;
+
+        assert_header_equals(e.data, {
+          "cause": "user-activated",
+          "destination": "document",
+          "target": "top-level",
+          "site": "same-origin"
+        });
+        t.done();
+      }));
+    });
+    document.body.appendChild(b);
+    test_driver.click(b);
+  }, "Same-origin window, user-activated");
+
+  async_test(t => {
+    let b = document.createElement('button');
+    b.onclick = t.step_func(_ => {
+      let w = window.open("https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+      t.add_cleanup(_ => w.close());
+      window.addEventListener('message', t.step_func(e => {
+        if (e.source != w)
+          return;
+
+        assert_header_equals(e.data, {
+          "cause": "user-activated",
+          "destination": "document",
+          "target": "top-level",
+          "site": "same-site"
+        });
+        t.done();
+      }));
+    });
+    document.body.appendChild(b);
+    test_driver.click(b);
+  }, "Same-site window, user-activated");
+
+  async_test(t => {
+    let b = document.createElement('button');
+    b.onclick = t.step_func(_ => {
+      let w = window.open("https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py");
+      t.add_cleanup(_ => w.close());
+      window.addEventListener('message', t.step_func(e => {
+        if (e.source != w)
+          return;
+
+        assert_header_equals(e.data, {
+          "cause": "user-activated",
+          "destination": "document",
+          "target": "top-level",
+          "site": "cross-site"
+        });
+        t.done();
+      }));
+    });
+    document.body.appendChild(b);
+    test_driver.click(b);
+  }, "Cross-site window, user-activated");
+</script>
diff --git a/gamepad/idlharness.html b/gamepad/idlharness.html
index 9719d02..02737fc 100644
--- a/gamepad/idlharness.html
+++ b/gamepad/idlharness.html
@@ -9,21 +9,22 @@
 <script src="/resources/WebIDLParser.js"></script>
 <script src="/resources/idlharness.js"></script>
 <script>
-"use strict";
+  "use strict";
 
-promise_test(async () => {
-  const idl_array = new IdlArray();
-  const gamepad_idl = await fetch("/interfaces/gamepad.idl").then(r => r.text());
-  const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
+  promise_test(async () => {
+    const idl_array = new IdlArray();
+    const gamepad_idl = await fetch("/interfaces/gamepad.idl").then(r => r.text());
+    const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
+    const html = await fetch("/interfaces/html.idl").then(r => r.text());
 
-  idl_array.add_untested_idls(dom, {only: ['Event', 'EventInit']});
-  idl_array.add_untested_idls('interface Navigator {};');
-  idl_array.add_idls(gamepad_idl);
+    idl_array.add_idls(gamepad_idl);
+    idl_array.add_dependency_idls(dom);
+    idl_array.add_dependency_idls(html);
 
-  idl_array.add_objects({
-    GamepadEvent: [new GamepadEvent("something")],
-    Navigator: ["navigator"]
-  });
-  idl_array.test();
-}, "Test IDL implementation of Gamepad API");
+    idl_array.add_objects({
+      GamepadEvent: [new GamepadEvent("something")],
+      Navigator: ["navigator"]
+    });
+    idl_array.test();
+  }, "Test IDL implementation of Gamepad API");
 </script>
diff --git a/generic-sensor/README.md b/generic-sensor/README.md
index 993e0c5..28227b0 100644
--- a/generic-sensor/README.md
+++ b/generic-sensor/README.md
@@ -15,6 +15,6 @@
 Other browser vendors should provide their own implementations of
 the `GenericSensorTest` interface.
 
-[Known issue](https://github.com/w3c/web-platform-tests/issues/9686): a
+[Known issue](https://github.com/web-platform-tests/wpt/issues/9686): a
 WebDriver extension is a better approach for the Generic Sensor tests
 automation.
diff --git a/generic-sensor/generic-sensor-tests.js b/generic-sensor/generic-sensor-tests.js
index da2e65d..a3896e7 100644
--- a/generic-sensor/generic-sensor-tests.js
+++ b/generic-sensor/generic-sensor-tests.js
@@ -355,7 +355,7 @@
 
     await sensorWatcher.wait_for("reading");
     //TODO use mock data to verify sensor readings, blocked by issue:
-    // https://github.com/w3c/web-platform-tests/issues/9686
+    // https://github.com/web-platform-tests/wpt/issues/9686
     assert_reading_not_null(sensor);
 
     sensor.stop();
diff --git a/geolocation-API/OWNERS b/geolocation-API/OWNERS
index 9bebfba..f95e64e 100644
--- a/geolocation-API/OWNERS
+++ b/geolocation-API/OWNERS
@@ -1,3 +1,3 @@
 @jdm
-@mcasas
+@yellowdoge
 @zqzhang
diff --git a/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-2.html b/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-2.html
new file mode 100644
index 0000000..cd2502a
--- /dev/null
+++ b/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-2.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<meta charset=windows-1252>
+<title>Fragment navigation: encoding</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<div style=height:10000px></div>
+<div id=&#xFFFD;></div>
+<div id=&#xFEFF;&#xFFFD;></div>
+<script>
+function goToTop() {
+  location.hash = "top";
+  assert_equals(self.scrollY, 0, "#top");
+}
+
+test(() => {
+  assert_equals(location.hash, "", "Page must be loaded with no hash");
+
+  location.hash = "%C2";
+  assert_equals(location.hash, "#%C2");
+  assert_greater_than(self.scrollY, 1000, "#%C2");
+}, "Invalid percent-encoded UTF-8 byte should decode as U+FFFD");
+
+test(() => {
+  goToTop();
+
+  location.hash = "%EF%BB%BF%C2";
+  assert_equals(location.hash, "#%EF%BB%BF%C2");
+  assert_greater_than(self.scrollY, 1000, "#%EF%BB%BF%C2");
+}, "Percent-encoded UTF-8 BOM followed by invalid UTF-8 byte should decode as U+FEFF U+FFFD");
+
+test(() => {
+  goToTop();
+
+  location.hash = "%EF%BF%BD";
+  assert_equals(location.hash, "#%EF%BF%BD");
+  assert_greater_than(self.scrollY, 1000, "#%EF%BF%BD");
+
+  goToTop();
+}, "Percent-encoded UTF-8 byte sequence for U+FFFD should decode as U+FFFD");
+</script>
diff --git a/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding.html b/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding.html
new file mode 100644
index 0000000..c971911
--- /dev/null
+++ b/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<meta charset=windows-1252>
+<title>Fragment navigation: encoding</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<div style=height:10000px></div>
+<div id=&#xFF;></div>
+<div id=&#xFEFF;></div>
+<script>
+function goToTop() {
+  location.hash = "top";
+  assert_equals(self.scrollY, 0, "#top");
+}
+
+test(() => {
+  assert_equals(location.hash, "", "Page must be loaded with no hash");
+
+  location.hash = "\u00FF";
+  assert_equals(location.hash, "#%C3%BF");
+  assert_greater_than(self.scrollY, 1000, "#%C3%BF");
+}, "U+00FF should find U+00FF");
+
+test(() => {
+  goToTop();
+
+  location.hash = "%EF%BB%BF";
+  assert_greater_than(self.scrollY, 1000, "#%EF%BB%BF");
+}, "Percent-encoded UTF-8 BOM should find U+FEFF as BOM is not stripped when decoding");
+
+test(() => {
+  goToTop();
+
+  location.hash = "%FF";
+  assert_equals(self.scrollY, 0, "#%FF");
+}, "%FF should not find U+00FF as decoding it gives U+FFFD");
+</script>
diff --git a/html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload.html b/html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload.html
index d7131b0..d6ecf5d 100644
--- a/html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload.html
+++ b/html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload.html
@@ -15,7 +15,10 @@
 
   iframe.onload = function() {
                     setTimeout(function() {iframe.contentWindow.location="navigation-within-beforeunload-2.html";}, 100);
-                    iframe.onload = t.step_func(function() {assert_equals(counter, 1000); t.done()});
+                    // Step 4 of https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigating-across-documents
+                    // doesn't seem to allow navigation within a beforeunload handler,
+                    // so the counter should not go beyond 1.
+                    iframe.onload = t.step_func(function() {assert_equals(counter, 1); t.done()});
                   };
 
   iframe.src = "navigation-within-beforeunload-1.html?" + Math.random();
diff --git a/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html b/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html
index 6ffea4f..c687906 100644
--- a/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html
+++ b/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html
@@ -11,17 +11,17 @@
     <script>
       var host_info = get_host_info();
       var HTTP_PORT = host_info.HTTP_PORT;
-      var ORIGINAL_HOST = host_info.ORIGINAL_HOST; // e.g. "web-platform.test"
+      var ORIGINAL_HOST = host_info.ORIGINAL_HOST;
       var SUFFIX_HOST = ORIGINAL_HOST.substring(ORIGINAL_HOST.lastIndexOf('.') + 1); // e.g. "test"
-      var PREFIX_HOST = "www1." + ORIGINAL_HOST; // e.g. "www1.web-platform.test"
+      var REMOTE_HOST = host_info.REMOTE_HOST;
       var iframe = document.getElementById("iframe");
       var iframe_url = new URL("support/document_domain_setter_iframe.html", document.location);
-      iframe_url.hostname = PREFIX_HOST;
+      iframe_url.hostname = REMOTE_HOST;
       iframe.src = iframe_url;
       test(function() {
         assert_throws("SecurityError", function() { document.domain = SUFFIX_HOST; });
         assert_throws("SecurityError", function() { document.domain = "." + SUFFIX_HOST; });
-        assert_throws("SecurityError", function() { document.domain = PREFIX_HOST; });
+        assert_throws("SecurityError", function() { document.domain = REMOTE_HOST; });
         assert_throws("SecurityError", function() { document.domain = "example.com"; });
       }, "failed setting of document.domain");
       async_test(function(t) {
diff --git a/html/browsers/windows/nested-browsing-contexts/frameElement.html b/html/browsers/windows/nested-browsing-contexts/frameElement.html
deleted file mode 100644
index 04365e0..0000000
--- a/html/browsers/windows/nested-browsing-contexts/frameElement.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8"/>
-<title>HTML Test: window.frameElement</title>
-<link rel="author" title="Intel" href="http://www.intel.com/" />
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script>
-
-var t1 = async_test("The window's frameElement attribute must return its container element if it is a nested browsing context");
-var t2 = async_test("The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin");
-var t3 = async_test("The window's frameElement attribute must return null if the container's document does not have the same effective script origin");
-
-function on_load() {
-  t1.step(function () {
-    assert_equals(frames[0].frameElement, document.getElementById("fr1"),
-                  "The frameElement attribute should be the first iframe element.");
-    assert_equals(window["win2"].frameElement, document.getElementById("obj"),
-                  "The frameElement attribute should be the object element.");
-    assert_equals(window["win3"].frameElement, document.getElementById("emb"),
-                  "The frameElement attribute should be the embed element.");
-    assert_equals(document.getElementById("fr4").contentWindow[0].frameElement,
-                  document.getElementById("fr4").contentDocument.getElementById("f1"),
-                  "The frameElement attribute should be the frame element in 'resources/frameElement-nested-frame.html'.");
-  });
-  t1.done();
-
-  t2.step(function () {
-    assert_throws("SecurityError", function () { frames[1].frameElement; },
-                  "The SecurityError exception should be thrown.");
-  });
-  t2.done();
-
-  t3.step(function () {
-    document.getElementById("fr5").contentWindow.postMessage(null, "*");
-  });
-  window.addEventListener("message", function (event) {
-    var data = JSON.parse(event.data);
-    if (data.name == "testcase3") {
-      t3.step(function () {
-        assert_equals(data.result, "window.frameElement = null",
-                      "The frameElement attribute should be null.");
-      });
-      t3.done();
-    }
-  }, false);
-}
-
-</script>
-<body onload="on_load()">
-  <div id="log"></div>
-  <iframe id="fr1"></iframe>
-  <iframe id="fr2" src="resources/frameElement-nested-frame.html"></iframe> <!-- cross origin -->
-  <iframe id="fr3" src="" style="display:none"></iframe>
-  <object id="obj" name="win2" type="text/html" data="about:blank"></object>
-  <embed id="emb" name="win3" type="image/svg+xml" src="/images/green.svg" />
-  <iframe id="fr4" src="resources/frameElement-nested-frame.html"></iframe> <!-- same origin -->
-  <iframe id="fr5" src="resources/frameElement-window-post.html"></iframe> <!-- cross origin -->
-  <script>
-
-  setup(function () {
-    var src_base = get_host_info().HTTP_REMOTE_ORIGIN;
-    src_base += document.location.pathname.substring(0, document.location.pathname.lastIndexOf("/") + 1);
-    document.getElementById("fr2").src = src_base + "/resources/frameElement-nested-frame.html";
-    document.getElementById("fr5").src = src_base + "/resources/frameElement-window-post.html";
-  });
-
-  test(function () {
-    assert_equals(window.frameElement, null,
-                  "The frameElement attribute should be null.");
-  }, "The window's frameElement attribute must return null if it is not a nested browsing context");
-
-  </script>
-</body>
diff --git a/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html b/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
new file mode 100644
index 0000000..2f5b1c4
--- /dev/null
+++ b/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8"/>
+    <title>HTML Test: window.frameElement</title>
+    <link rel="author" title="Intel" href="http://www.intel.com/" />
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <!-- t1 (same-origin)-->
+    <iframe id="iframe_0"></iframe>
+    <iframe id="iframe_1" src="./resources/frameElement-nested-frame.html"></iframe>
+    <object id="object_id" name="object_name" type="text/html" data="about:blank"></object>
+    <embed id="embed_id" name="embed_name" type="image/svg+xml" src="/images/green.svg" />
+
+    <!-- t2 (cross-origin) -->
+    <iframe name="iframe_2" src="http://{{hosts[alt][]}}:{{ports[http][0]}}/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html"></iframe>
+
+    <!-- t3 (cross-origin) -->
+    <iframe id="iframe_3" src="http://{{hosts[alt][]}}:{{ports[http][0]}}/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html"></iframe>
+
+    <script>
+      test(function() {
+        assert_equals(window.frameElement, null,
+          "The frameElement attribute should be null.");
+      }, "The window's frameElement attribute must return null if it is not a nested browsing context");
+
+      var t1 = async_test("The window's frameElement attribute must return its container element if it is a nested browsing context");
+      window.addEventListener("load", t1.step_func_done(function() {
+        assert_equals(frames[0].frameElement, document.getElementById("iframe_0"),
+          "The frameElement attribute should be the first iframe element.");
+        assert_equals(window["object_name"].frameElement, document.getElementById("object_id"),
+          "The frameElement attribute should be the object element.");
+        assert_equals(window["embed_name"].frameElement, document.getElementById("embed_id"),
+          "The frameElement attribute should be the embed element.");
+        assert_equals(document.getElementById("iframe_1").contentWindow[0].frameElement,
+          document.getElementById("iframe_1").contentDocument.getElementById("f1"),
+          "The frameElement attribute should be the frame element in 'resources/frameElement-nested-frame.html'.");
+      }));
+
+      var t2 = async_test("The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin");
+      window.addEventListener("load", t2.step_func_done(function() {
+        assert_throws("SecurityError", function() {
+            frames["iframe_2"].frameElement;
+          },
+          "The SecurityError exception should be thrown.");
+      }));
+
+      var t3 = async_test("The window's frameElement attribute must return null if the container's document does not have the same effective script origin");
+      window.addEventListener("load", function() {
+        window.addEventListener("message", function(event) {
+          var data = JSON.parse(event.data);
+          if (data.name == "testcase3") {
+            t3.step(function() {
+              assert_equals(data.result, "window.frameElement = null",
+                "The frameElement attribute should be null.");
+              t3.done();
+            });
+          }
+        }, false);
+        document.getElementById("iframe_3").contentWindow.postMessage(null, "*");
+      })
+    </script>
+  </body>
+</html>
diff --git a/html/dom/dynamic-markup-insertion/document-write/contentType.window.js b/html/dom/dynamic-markup-insertion/document-write/contentType.window.js
index dbabb1b..5a91203 100644
--- a/html/dom/dynamic-markup-insertion/document-write/contentType.window.js
+++ b/html/dom/dynamic-markup-insertion/document-write/contentType.window.js
@@ -21,7 +21,7 @@
       assert_equals(frame.contentDocument.contentType, val[1]);
 
       // Make sure a load event is fired across browsers
-      // https://github.com/w3c/web-platform-tests/pull/10239
+      // https://github.com/web-platform-tests/wpt/pull/10239
       frame.contentDocument.close();
     });
   }, "document.write(): " + val[2] + " document");
diff --git a/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html b/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html
new file mode 100644
index 0000000..c6521f0
--- /dev/null
+++ b/html/infrastructure/urls/resolving-urls/query-encoding/attributes.sub.html
@@ -0,0 +1,66 @@
+<!doctype html>
+<meta charset={{GET[encoding]}}> <!-- ends up as <meta charset> by default which is windows-1252 -->
+<meta name=variant content="?encoding=x-cp1251">
+<meta name=variant content="?encoding=utf8">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<link rel=help href=https://html.spec.whatwg.org/multipage/rendering.html#the-page>
+<link rel=help href=https://html.spec.whatwg.org/multipage/rendering.html#tables-2>
+<link rel=help href=https://html.spec.whatwg.org/multipage/#reflecting-content-attributes-in-idl-attributes>
+<div id=log></div>
+<script>
+function expected(encoding) {
+  return "?" + {
+    "UTF-8": "%C3%BF",
+    "windows-1251": "%26%23255%3B",
+    "windows-1252": "%FF"
+  }[encoding];
+}
+
+function assert_ends_with(input, endsWith) {
+  assert_true(input.endsWith(endsWith), input + " did not end with " + endsWith);
+}
+
+"body table thead tbody tfoot tr td th".split(" ").forEach(localName => {
+  test(t => {
+    const elm = document.createElement(localName);
+    document.body.appendChild(elm);
+    t.add_cleanup(() => document.body.removeChild(elm));
+    elm.setAttribute("background", "?\u00FF");
+    assert_ends_with(getComputedStyle(elm).backgroundImage, expected(document.characterSet) + "\")");
+  }, "getComputedStyle <" + localName + " background>");
+});
+
+function test_url_reflecting(localName, attr, idlAttr) {
+  idlAttr = idlAttr || attr;
+  test(() => {
+    let input = "?\u00FF";
+    const elm = document.createElement(localName);
+    assert_true(idlAttr in elm, idlAttr + " is not supported");
+    elm.setAttribute(attr, input);
+    assert_ends_with(elm[idlAttr], expected(document.characterSet));
+  }, "Getting <" + localName + ">." + idlAttr);
+}
+
+("iframe src, a href, area href, base href, link href, img src, embed src, object data, " +
+ "track src, video src, audio src, input src, form action, input formaction formAction, " +
+ "button formaction formAction, script src").split(", ").forEach(str => {
+  const arr = str.split(" ");
+  test_url_reflecting(arr[0], arr[1], arr[2]);
+});
+
+function test_string_reflecting(localName, attr) {
+  test(() => {
+    let input = "?\u00FF ?\u00FF";
+    const elm = document.createElement(localName);
+    assert_true(attr in elm, attr + " is not supported");
+    elm.setAttribute(attr, input);
+    assert_equals(elm[attr], input);
+  }, "Getting <" + localName + ">." + attr);
+}
+
+"a ping, area ping".split(", ").forEach(str => {
+  const arr = str.split(" ");
+  test_string_reflecting(arr[0], arr[1]);
+});
+</script>
diff --git a/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html b/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html
index b1a4d5bd..3ad228b 100644
--- a/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html
+++ b/html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html
@@ -9,7 +9,7 @@
 function expected(encoding) {
   return "?" + {
     "UTF-8": "%C3%BF",
-    "windows-1251": "&%23255;",
+    "windows-1251": "%26%23255%3B",
     "windows-1252": "%FF"
   }[encoding];
 }
diff --git a/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js b/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
index 0d14fe70..c6db2fa 100644
--- a/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
+++ b/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js
@@ -1,5 +1,5 @@
 // NOTE: this file needs to be split up rather than expanded. See ../location.sub.html for some
-// extracted tests. Tracked by https://github.com/w3c/web-platform-tests/issues/4934.
+// extracted tests. Tracked by https://github.com/web-platform-tests/wpt/issues/4934.
 
 setup({explicit_done:true});
 onload = function() {
@@ -17,7 +17,7 @@
     'utf-16be':'%C3%A5',
     'utf-16le':'%C3%A5',
     'windows-1252':'%E5',
-    'windows-1251':'&%23229;'
+    'windows-1251':'%26%23229%3B'
   };
   var expected_current = expected_obj[encoding];
   var expected_utf8 = expected_obj['utf-8'];
@@ -49,55 +49,6 @@
       test_obj.step_timeout(poll, 200);
   }
 
-  // background attribute, check with getComputedStyle
-  function test_background(tag) {
-    var spec_url = 'https://html.spec.whatwg.org/multipage/rendering.html';
-    spec_url += tag == 'body' ? '#the-page' : '#tables';
-    test(function() {
-      var elm = document.createElement(tag);
-      document.body.appendChild(elm);
-      this.add_cleanup(function() {
-        document.body.removeChild(elm);
-      });
-      elm.setAttribute('background', input_url_png);
-      var got = getComputedStyle(elm).backgroundImage;
-      assert_true(got.indexOf(expected_current) > -1, msg(expected_current, got));
-    }, 'getComputedStyle <'+tag+' background>',
-    {help:spec_url});
-  }
-
-  'body, table, thead, tbody, tfoot, tr, td, th'.split(', ').forEach(function(str) {
-    test_background(str);
-  });
-
-  // get a reflecting IDL attributes whose content attribute takes a URL or a list of space-separated URLs
-  function test_reflecting(tag, attr, idlAttr, multiple) {
-    idlAttr = idlAttr || attr;
-    var input = input_url_html;
-    if (multiple) {
-      input += ' ' + input;
-    }
-    test(function() {
-      var elm = document.createElement(tag);
-      assert_true(idlAttr in elm, idlAttr + ' is not supported');
-      elm.setAttribute(attr, input);
-      var got = elm[idlAttr];
-      assert_true(got.indexOf(expected_current) > -1, msg(expected_current, got));
-    }, 'Getting <'+tag+'>.'+idlAttr + (multiple ? ' (multiple URLs)' : ''),
-    {help:'https://html.spec.whatwg.org/multipage/#reflecting-content-attributes-in-idl-attributes'});
-  }
-
-  ('iframe src, a href, base href, link href, img src, embed src, object data, track src, video src, audio src, input src, form action, ' +
-  'input formaction formAction, button formaction formAction, script src').split(', ').forEach(function(str) {
-    var arr = str.split(' ');
-    test_reflecting(arr[0], arr[1], arr[2]);
-  });
-
-  'a ping'.split(', ').forEach(function(str) {
-    var arr = str.split(' ');
-    test_reflecting(arr[0], arr[1], arr[2], true);
-  });
-
   function setup_navigation(elm, iframe, id, test_obj) {
     iframe.name = id;
     elm.target = id;
diff --git a/html/rendering/non-replaced-elements/tables/form-in-tables.html b/html/rendering/non-replaced-elements/tables/form-in-tables.html
new file mode 100644
index 0000000..611c830
--- /dev/null
+++ b/html/rendering/non-replaced-elements/tables/form-in-tables.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>UA style for form in table elements</title>
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2">
+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+  .block { display: block !important }
+</style>
+<div id="display">
+  <table><form></form></table>
+  <table><thead><form></form></thead></table>
+  <table><tbody><form></form></tbody></table>
+  <table><tfoot><form></form></tfoot></table>
+  <table><tr><form></form></tr></table>
+</div>
+<div id="important">
+  <table><form class="block"></form></table>
+  <table><thead><form class="block"></form></thead></table>
+  <table><tbody><form class="block"></form></tbody></table>
+  <table><tfoot><form class="block"></form></tfoot></table>
+  <table><tr><form class="block"></form></tr></table>
+</div>
+<script>
+  for (const form of display.querySelectorAll("form")) {
+    test(function() {
+      assert_equals(getComputedStyle(form).display, "none");
+    }, `Computed display of form inside ${form.parentNode.nodeName} should be 'none'`);
+  }
+  for (const form of important.querySelectorAll("form")) {
+    test(function() {
+      assert_equals(getComputedStyle(form).display, "none");
+    }, `Computed display of form inside ${form.parentNode.nodeName} should be 'none' (!important UA style))`);
+  }
+</script>
diff --git a/html/rendering/non-replaced-elements/tables/form-in-tables.xhtml b/html/rendering/non-replaced-elements/tables/form-in-tables.xhtml
new file mode 100644
index 0000000..6af4413
--- /dev/null
+++ b/html/rendering/non-replaced-elements/tables/form-in-tables.xhtml
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>UA style for form in table elements - XHTML</title>
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2" />
+    <link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org" />
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <table><form></form></table>
+    <table><thead><form></form></thead></table>
+    <table><tbody><form></form></tbody></table>
+    <table><tfoot><form></form></tfoot></table>
+    <table><tr><form></form></tr></table>
+    <script>
+      for (const form of document.querySelectorAll("form")) {
+        test(function() {
+          assert_equals(getComputedStyle(form).display, "block");
+        }, `Computed display of form inside ${form.parentNode.nodeName} in xhtml should be 'block'`);
+      }
+    </script>
+  </body>
+</html>
diff --git a/html/rendering/the-details-element/details-after.html b/html/rendering/the-details-element/details-after.html
new file mode 100644
index 0000000..b4bf050
--- /dev/null
+++ b/html/rendering/the-details-element/details-after.html
@@ -0,0 +1,12 @@
+<!doctype html>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" title="https://github.com/whatwg/html/pull/3686">
+<link rel="help" title="https://html.spec.whatwg.org/multipage/#the-details-element">
+<link rel="mismatch" href="single-summary.html">
+<title>CSS Test: details ::after pseudo-element</title>
+<style>
+  details::after { content: "::after" }
+</style>
+<details>
+  <summary>This is the main summary</summary>
+</details>
diff --git a/html/rendering/the-details-element/details-before.html b/html/rendering/the-details-element/details-before.html
new file mode 100644
index 0000000..3dd95e3
--- /dev/null
+++ b/html/rendering/the-details-element/details-before.html
@@ -0,0 +1,12 @@
+<!doctype html>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" title="https://github.com/whatwg/html/pull/3686">
+<link rel="help" title="https://html.spec.whatwg.org/multipage/#the-details-element">
+<link rel="mismatch" href="single-summary.html">
+<title>CSS Test: details ::before pseudo-element</title>
+<style>
+  details::before { content: "::before" }
+</style>
+<details>
+  <summary>This is the main summary</summary>
+</details>
diff --git a/html/rendering/the-details-element/single-summary.html b/html/rendering/the-details-element/single-summary.html
new file mode 100644
index 0000000..1f09e7e
--- /dev/null
+++ b/html/rendering/the-details-element/single-summary.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<title>CSS Test Reference</title>
+<details>
+  <summary>This is the main summary</summary>
+</details>
diff --git a/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-inband.html b/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-inband.html
new file mode 100644
index 0000000..7dcfe68
--- /dev/null
+++ b/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-inband.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+        <script src="/common/media.js"></script>
+        <script src="/resources/testharness.js"></script>
+        <script src="/resources/testharnessreport.js"></script>
+    </head>
+    <body>
+        <script>
+            async_test(function(test)
+            {
+                var video = document.createElement("video");
+
+                // Create an out-of-band text track by adding a track element.
+                var trackElement = document.createElement('track');
+
+                trackElement.addEventListener("error", test.step_func(function()
+                {
+                    assert_unreached("'error' event on track element should not fire.")
+                }));
+
+                video.appendChild(trackElement);
+                trackElement.src = 'resources/webvtt-file.vtt';
+                trackElement.track.mode = 'hidden';
+
+                assert_equals(video.textTracks.length, 1);
+                var outOfBandTrack = video.textTracks[0];
+
+                // Load a media file with an inband text track.
+                var inbandTrack = null;
+                var url = "resources/vp8-vorbis-webvtt.webm"
+
+                var firstAddTrackHandler = test.step_func(function()
+                {
+                    assert_equals(event.target, video.textTracks);
+                    assert_equals(event instanceof window.TrackEvent, true);
+                    if (event.track == outOfBandTrack) {
+                        return;
+                    }
+
+                    assert_equals(inbandTrack, null);
+                    assert_equals(video.textTracks.length, 2);
+                    assert_equals(event.track, video.textTracks[1]);
+                    inbandTrack = event.track;
+
+                    video.textTracks.removeEventListener("addtrack", firstAddTrackHandler);
+
+                    // Clear .src to force the inband track to get destroyed.
+                    video.src = "";
+
+                    // Verify that the inband track was removed.
+                    assert_not_equals(inbandTrack, null);
+                    assert_equals(video.textTracks.length, 1);
+                    assert_equals(video.textTracks[0], outOfBandTrack);
+
+                    // Load the URL again to trigger another 'addtrack' event to make sure
+                    // no 'removetrack' event was queued.
+                    video.src = url;
+                    video.textTracks.addEventListener("addtrack", test.step_func(function()
+                    {
+                        assert_equals(video.textTracks.length, 2);
+                        test.done();
+                    }));
+                });
+                video.textTracks.addEventListener("addtrack", firstAddTrackHandler);
+
+                video.textTracks.addEventListener("removetrack", test.step_func(function()
+                {
+                    assert_unreached("'removetrack' event should not fire.")
+                }));
+
+                video.src = url;
+            }, "Tests that the 'removetrack' event is NOT fired for inband TextTrack on a failed load.");
+
+        </script>
+    </body>
+</html>
diff --git a/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track.html b/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track.html
index 29938e3..d5695cd 100644
--- a/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track.html
+++ b/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track.html
@@ -34,72 +34,6 @@
                 video.removeChild(trackElement);
                 video.textTracks.addEventListener("removetrack", test.step_func(trackRemoved));
             }, "Tests that the 'removetrack' event is fired when an out-of-band TextTrack is removed.");
-
-            async_test(function(test)
-            {
-                var video = document.createElement("video");
-
-                // Create an out-of-band text track by adding a track element.
-                var trackElement = document.createElement('track');
-
-                trackElement.addEventListener("error", test.step_func(function()
-                {
-                    assert_unreached("'error' event on track element should not fire.")
-                }));
-
-                video.appendChild(trackElement);
-                trackElement.src = 'resources/webvtt-file.vtt';
-                trackElement.track.mode = 'hidden';
-
-                assert_equals(video.textTracks.length, 1);
-                var outOfBandTrack = video.textTracks[0];
-
-                // Load a media file with an inband text track.
-                var inbandTrack = null;
-                var url = "resources/vp8-vorbis-webvtt.webm"
-
-                var firstAddTrackHandler = test.step_func(function()
-                {
-                    assert_equals(event.target, video.textTracks);
-                    assert_equals(event instanceof window.TrackEvent, true);
-                    if (event.track == outOfBandTrack) {
-                        return;
-                    }
-
-                    assert_equals(inbandTrack, null);
-                    assert_equals(video.textTracks.length, 2);
-                    assert_equals(event.track, video.textTracks[1]);
-                    inbandTrack = event.track;
-
-                    video.textTracks.removeEventListener("addtrack", firstAddTrackHandler);
-
-                    // Clear .src to force the inband track to get destroyed.
-                    video.src = "";
-
-                    // Verify that the inband track was removed.
-                    assert_not_equals(inbandTrack, null);
-                    assert_equals(video.textTracks.length, 1);
-                    assert_equals(video.textTracks[0], outOfBandTrack);
-
-                    // Load the URL again to trigger another 'addtrack' event to make sure
-                    // no 'removetrack' event was queued.
-                    video.src = url;
-                    video.textTracks.addEventListener("addtrack", test.step_func(function()
-                    {
-                        assert_equals(video.textTracks.length, 2);
-                        test.done();
-                    }));
-                });
-                video.textTracks.addEventListener("addtrack", firstAddTrackHandler);
-
-                video.textTracks.addEventListener("removetrack", test.step_func(function()
-                {
-                    assert_unreached("'removetrack' event should not fire.")
-                }));
-
-                video.src = url;
-            }, "Tests that the 'removetrack' event is NOT fired for inband TextTrack on a failed load.");
-
         </script>
     </body>
 </html>
diff --git a/html/semantics/embedded-content/resources/test_page.html b/html/semantics/embedded-content/resources/test_page.html
new file mode 100644
index 0000000..8561834
--- /dev/null
+++ b/html/semantics/embedded-content/resources/test_page.html
@@ -0,0 +1,3 @@
+<!doctype html>
+<title> An empty test page </title>
+<p> This is test page </p>
diff --git a/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html b/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html
new file mode 100644
index 0000000..1e8f018
--- /dev/null
+++ b/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+<head>
+  <title>
+    &lt;embed&gt;'s browsing context is discarded on 'src' attribute change.
+  </title>
+  <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+  <script>
+    let url1 = "../resources/test_page.html";
+    let url2 = "../resources/should-load.html";
+    function onLoadPromise(el) {
+      return new Promise((resolve) => {
+        function onLoad() {
+          resolve();
+          el.removeEventListener("load", onLoad);
+        }
+        el.addEventListener("load", onLoad);
+      });
+    }
+
+    promise_test(async() => {
+      let old_windows = [];
+
+      let embed = document.createElement("embed");
+      embed.type = "text/html";
+      embed.src = url1;
+      let onEmbedLoad = onLoadPromise(embed);
+      document.body.appendChild(embed);
+      await onEmbedLoad;
+      old_windows.push(window[0]);
+      assert_equals(
+        window[0].frameElement,
+        embed,
+        "<embed> is attached and loaded with html content.");
+
+      let iframe = document.createElement("iframe");
+      iframe.src = url1;
+      let onIframeLoad = onLoadPromise(iframe);
+      document.body.appendChild(iframe);
+      await onIframeLoad;
+      old_windows.push(window[1]);
+      assert_equals(
+        window[1].frameElement,
+        iframe,
+        "<iframe> is attached and loaded with html content after <embed>.");
+      assert_equals(
+        window[0],
+        old_windows[0],
+        "The first window is that of <embed>'s frame.");
+
+      // Now navigate the embed element again.
+      onEmbedLoad = onLoadPromise(embed);
+      embed.src = url2;
+      await onEmbedLoad;
+      assert_equals(
+        window[0].frameElement,
+        iframe,
+        "<embed>'s previous frame must have been destroyed.");
+
+      assert_equals(
+        window[1].frameElement,
+        embed,
+        "<embed>'s new window should be appended after navigation.");
+
+      assert_not_equals(
+        old_windows[0],
+        window[1],
+        "The old window and new window are different for <embed>.");
+
+      assert_equals(
+        old_windows[1],
+        window[0],
+        "The old and new window are the same for <iframe>.");
+    }, "Verify that changing 'src' attribute of an <embed> element discards" +
+       " the old browsing context and creates a new browsing context.");
+  </script>
+</body>
+</html>
diff --git a/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html b/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html
deleted file mode 100644
index cd27b8e..0000000
--- a/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>Check the frame heriarchy</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="iframe_harness.js"></script>
-<body>
-  <iframe src="http://www1.web-platform.test:8000/html/semantics/embedded-content/the-iframe-element/cross_origin_child.html"></iframe>
-</body>
-<script>
-    get_test_results('bffa23ee-b45a-4e9a-9405-87ab437d5cfa');
-    get_test_results('79a52de8-4222-427e-92db-caec28e75f8e');
-    get_test_results('6c8da65d-2c5e-44ef-bb0b-b8b9849aab19');
-    send_test_results({
-        "id": 'bffa23ee-b45a-4e9a-9405-87ab437d5cfa',
-        "parent": window.parent === window,
-        "top": window.top === window,
-    });
-</script>
diff --git a/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.sub.html b/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.sub.html
new file mode 100644
index 0000000..128892d
--- /dev/null
+++ b/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.sub.html
@@ -0,0 +1,19 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Check the frame heriarchy</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="iframe_harness.js"></script>
+<body>
+  <iframe src="http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/embedded-content/the-iframe-element/cross_origin_child.html"></iframe>
+</body>
+<script>
+    get_test_results('bffa23ee-b45a-4e9a-9405-87ab437d5cfa');
+    get_test_results('79a52de8-4222-427e-92db-caec28e75f8e');
+    get_test_results('6c8da65d-2c5e-44ef-bb0b-b8b9849aab19');
+    send_test_results({
+        "id": 'bffa23ee-b45a-4e9a-9405-87ab437d5cfa',
+        "parent": window.parent === window,
+        "top": window.top === window,
+    });
+</script>
diff --git a/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-ref.html b/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-ref.html
new file mode 100644
index 0000000..68466ae
--- /dev/null
+++ b/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-ref.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<title>Test reference</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<iframe width="500" height="500" srcdoc='<!doctype html><img alt="FAIL" srcset="/images/green-256x256.png 100w" style="max-width: 100%" sizes="10px">'></iframe>
diff --git a/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html b/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html
new file mode 100644
index 0000000..51f8145
--- /dev/null
+++ b/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<html class="reftest-wait">
+<title>Image intrinsic size specified via sizes attribute reacts properly to media changes</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="match" href="sizes-dynamic-001-ref.html">
+<link rel="help" href="https://html.spec.whatwg.org/#sizes-attributes">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1149357">
+<script>
+function frameLoaded(frame) {
+  frame.width = "500";
+  let img = frame.contentDocument.querySelector('img');
+
+  // Trigger the viewport resize, which will trigger the image load task.
+  img.offsetWidth;
+
+  // Wait for the image load task to run.
+  setTimeout(() => document.documentElement.removeAttribute("class"), 0);
+}
+</script>
+<iframe onload="frameLoaded(this)" width="200" height="500" srcdoc='<!doctype html><img srcset="/images/green-256x256.png 100w" style="max-width: 100%" sizes="(min-width: 400px) 10px, 20px">'></iframe>
diff --git a/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html b/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html
new file mode 100644
index 0000000..6d114c4
--- /dev/null
+++ b/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html
@@ -0,0 +1,83 @@
+<!doctype html>
+<html>
+<head>
+  <title>
+    &lt;object&gt;'s browsing context is discarded on 'data' attribute change.
+  </title>
+  <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+  <script>
+    let url1 = "../resources/test_page.html";
+    let url2 = "../resources/should-load.html";
+    function onLoadPromise(el) {
+      return new Promise((resolve) => {
+        function onLoad() {
+          resolve();
+          el.removeEventListener("load", onLoad);
+        }
+        el.addEventListener("load", onLoad);
+      });
+    }
+
+    promise_test(async() => {
+      let old_windows = [];
+
+      let object = document.createElement("object");
+      object.type = "text/html";
+      object.data = url1;
+      let onObjectLoad = onLoadPromise(object);
+      document.body.appendChild(object);
+      await onObjectLoad;
+      old_windows.push(window[0]);
+      assert_equals(
+        window[0].frameElement,
+        object,
+        "<object> is attached and loaded with html content.");
+
+      let iframe = document.createElement("iframe");
+      iframe.src = url1;
+      let onIframeLoad = onLoadPromise(iframe);
+      document.body.appendChild(iframe);
+      await onIframeLoad;
+      old_windows.push(window[1]);
+      assert_equals(
+        window[1].frameElement,
+        iframe,
+        "<iframe> is attached and loaded with html content after <object>.");
+      assert_equals(
+        window[0],
+        old_windows[0],
+        "The first window is that of <object>'s frame.");
+
+      // Now navigate the object element again.
+      onObjectLoad = onLoadPromise(object);
+      object.data = url2;
+      await onObjectLoad;
+      assert_equals(
+        window[0].frameElement,
+        iframe,
+        "<object>'s previous frame must have been destroyed.");
+
+      assert_equals(
+        window[1].frameElement,
+        object,
+        "<object>'s new window should be appended after navigation.");
+
+      assert_not_equals(
+        old_windows[0],
+        window[1],
+        "The old window and new window are different for <object>.");
+
+      assert_equals(
+        old_windows[1],
+        window[0],
+        "The old and new window are the same for <iframe>.");
+
+    }, "Verify that changing 'data' attribute of an <object> element discards" +
+       " the old browsing context and creates a new browsing context.");
+  </script>
+</body>
+</html>
diff --git a/html/semantics/forms/form-submission-0/form-data-set-usv.html b/html/semantics/forms/form-submission-0/form-data-set-usv.html
index ea5b0dc..4ac2609 100644
--- a/html/semantics/forms/form-submission-0/form-data-set-usv.html
+++ b/html/semantics/forms/form-submission-0/form-data-set-usv.html
@@ -8,12 +8,13 @@
 <script src="/resources/testharnessreport.js"></script>
 
 <iframe id="testframe" src="form-data-set-usv-form.html"></iframe>
+<iframe id="testframe2" src="form-data-set-usv-form.html"></iframe>
 
 <script>
 "use strict";
 
 async_test(t => {
-  window.onload = t.step_func(() => {
+  window.addEventListener("load", t.step_func(() => {
     const iframe = document.querySelector("#testframe");
     const form = iframe.contentWindow.document.querySelector("form");
 
@@ -35,6 +36,17 @@
     });
 
     form.submit();
-  });
-});
+  }));
+}, 'Strings from form controls should be converted to Unicode scalar values in form submission');
+
+async_test(t => {
+  window.addEventListener("load", t.step_func_done(() => {
+    const iframe = document.querySelector("#testframe2");
+    const formData = new FormData(iframe.contentWindow.document.querySelector("form"));
+    assert_equals(formData.get("input1\uFFFD"), "input1\uFFFD");
+    assert_equals(formData.get("input2\uFFFD"), "input2\uFFFD");
+    assert_equals(formData.get("input3\uFFFD"), "input3\uFFFD");
+    assert_equals(formData.get("input4\uFFFD"), "input4\uFFFD");
+  }));
+}, 'Strings from form controls should be converted to Unicode scalar values in FormData');
 </script>
diff --git a/html/semantics/forms/the-label-element/label-attributes.html b/html/semantics/forms/the-label-element/label-attributes.html
deleted file mode 100644
index 2910f2c..0000000
--- a/html/semantics/forms/the-label-element/label-attributes.html
+++ /dev/null
@@ -1,347 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>HTML Test: The label element</title>
-<link rel="author" title="Intel" href="http://www.intel.com/">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<div id="log"></div>
-<form id="fm" style="display:none">
-  <label id="lbl0" for="test0"></label>
-  <b id="test0"></b>
-
-  <input id="test1"></input>
-
-  <label id="lbl1">
-    <a id="test2"></a>
-    <div><input id="test3"></div>
-    <input id="test4">
-  </label>
-
-  <label id="lbl2" for="testx">
-    <input id="test5">
-  </label>
-
-  <label id="lbl3" for="test6">
-    <b id="test6"></b>
-    <input id="test6" class="class1">
-  </label>
-
-  <label id="lbl4" for="">
-    <input id="" class="class2">
-  </label>
-
-  <label id="lbl5" for="test7"></label>
-  <input id="test7">
-
-  <label id="lbl7">
-    <label id="lbl8">
-      <div id="div1">
-        <input id="test8">
-      </div>
-    </label>
-  </label>
-  <div id="div2"></div>
-
- <label id="lbl9">
-   <label id="lbl10" for="test10">
-    <div id="div3">
-      <input id="test9">
-    </div>
-  </label>
- </label>
- <div id="div4"><input id="test10"></div>
-
-  <label id="lbl11">
-    <object id="obj">
-      <input id="test11">
-      <input id="test12">
-    </object>
-  </label>
-  <label id="lbl12" for="test12"><div id="div5"></div></label>
-
-  <label id="lbl13">
-    <p id="p1">
-      <input id="test13">
-    </p>
-  </label>
-
-  <div id="div6">
-    <div id="div7">
-      <label id="lbl14">
-        <label id="lbl15" for="test15">
-          <input id="test14">
-        </label>
-      </label>
-    </div>
-  </div>
-  <input id="test15">
-</form>
-
-<label id="lbl6" for="test7"></label>
-<div id="content" style="display: none">
-<script>
-
-  //control attribute
-  test(function () {
-    assert_not_equals(document.getElementById("lbl0").control, document.getElementById("test0"),
-                      "An element that's not a labelable element can't be a label element's labeled control.");
-    assert_equals(document.getElementById("lbl0").control, null,
-                  "A label element whose 'for' attribute doesn't reference any labelable element shouldn't have any labeled control.");
-  }, "A label element with a 'for' attribute should only be associated with a labelable element.");
-
-  test(function () {
-    var label = document.createElement("label");
-    label.htmlFor = "test1";
-    assert_not_equals(label.control, document.getElementById("test1"),
-                      "A label element not in a document should not label an element in a document.");
-    document.body.appendChild(label);
-    assert_equals(label.control, document.getElementById("test1"));
-    label.remove();
-  }, "A label element not in a document can not label any element in the document.");
-
-  test(function () {
-    var labels = document.getElementById("test3").labels;
-    assert_equals(document.getElementById("lbl1").control, document.getElementById("test3"),
-                  "The first labelable descendant of a label element should be its labeled control.");
-
-    var input = document.createElement("input");
-    document.getElementById("lbl1").insertBefore(input, document.getElementById("test2"));
-    assert_equals(document.getElementById("lbl1").control, input,
-                  "The first labelable descendant of a label element in tree order should be its labeled control.");
-    assert_equals(input.labels.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
-    assert_equals(labels.length, 0,
-                  "The number of labels should be 0 if it's not the first labelable descendant of a label element.");
-    input.remove();
-  }, "The labeled control for a label element that has no 'for' attribute is the first labelable element which is a descendant of that label element.");
-
-  test(function () {
-    assert_equals(document.getElementById("lbl2").control, null,
-                  "The label's 'control' property should return null if its 'for' attribute points to an inexistent element.");
-  }, "The 'for' attribute points to an inexistent id.");
-
-  test(function () {
-    assert_equals(document.getElementById("lbl3").control, null, "The label should have no control associated.");
-    assert_equals(document.querySelector(".class1").labels.length, 0);
-  }, "A non-control follows by a control with same ID.");
-
-  test(function () {
-    assert_equals(document.getElementById("lbl4").control, null,
-                  "A label element with an empty 'for' attribute should not associate with anything.");
-  }, "The 'for' attribute is an empty string.");
-
-  //labels attribute
-  test(function () {
-    var labels = document.getElementById("test7").labels;
-    assert_true(labels instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels.length, 2,
-                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
-    assert_array_equals(labels, [document.getElementById("lbl5"), document.getElementById("lbl6")],
-                        "The labels for a form control should be returned in tree order.");
-
-    var newLabel = document.createElement("label");
-    newLabel.htmlFor = "test7";
-    document.getElementById("fm").insertBefore(newLabel, document.getElementById("lbl0"));
-    assert_array_equals(document.getElementById("test7").labels, [newLabel, document.getElementById("lbl5"), document.getElementById("lbl6")],
-                        "The labels for a form control should be returned in tree order.");
-    newLabel.remove();
-  }, "A form control has multiple labels.");
-
-  test(function () {
-    var labels = document.getElementById("test8").labels;
-    assert_true(labels instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels.length, 2,
-                  "The form control has two ancestors with no explicit associated label, and is the first labelable descendant.");
-    assert_array_equals(labels, [document.getElementById("lbl7"), document.getElementById("lbl8")],
-                        "The labels for a form control should be returned in tree order.");
-
-    document.getElementById('div2').insertBefore(document.getElementById('div1'), document.getElementById('div2').firstChild);
-    assert_equals(labels.length, 0,
-                  "The number of labels should be 0 after the labelable element is moved to outside of nested associated labels.");
-  }, "A labelable element is moved to outside of nested associated labels.");
-
-  test(function () {
-    var labels1 = document.getElementById("test9").labels;
-    var labels2 = document.getElementById("test10").labels;
-    assert_true(labels1 instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_true(labels2 instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels1.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
-    assert_equals(labels2.length, 1,
-                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
-    assert_array_equals(labels1, [document.getElementById("lbl9")],
-                        "The labels for a form control should be returned in tree order.");
-    assert_array_equals(labels2, [document.getElementById("lbl10")],
-                        "The labels for a form control should be returned in tree order.");
-    document.getElementById('div3').insertBefore(document.getElementById('div4'), document.getElementById('div3').firstChild);
-    assert_equals(labels1.length, 0,
-                  "The number of labels should be 0 if it's not the first labelable descendant of a label element.");
-    assert_equals(labels2.length, 2,
-                  "The form control has an ancestor with an explicit associated label, and is the first labelable descendant.");
-  }, "A labelable element is moved to inside of nested associated labels.");
-
-  test(function () {
-    var labels1 = document.getElementById("test11").labels;
-    var labels2 = document.getElementById("test12").labels;
-    assert_true(labels1 instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_true(labels2 instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels1.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and it is the first labelable descendant.");
-    assert_equals(labels2.length, 1,
-                  "The number of labels should be 1 since there is a label with a 'for' attribute associated with this labelable element.");
-    assert_array_equals(labels1, [document.getElementById("lbl11")],
-                        "The labels for a form control should be returned in tree order.");
-    assert_array_equals(labels2, [document.getElementById("lbl12")],
-                        "The labels for a form control should be returned in tree order.");
-    document.getElementById('div5').appendChild(document.getElementById('obj'));
-    assert_equals(labels1.length, 0,
-                  "The number of labels should be 0 after the labelable element is moved to outside of associated label.");
-    assert_equals(labels2.length, 1,
-                  "The number of labels should be 1 after the labelable element is moved to outside of associated label.");
-  }, "A labelable element which is a descendant of non-labelable element is moved to outside of associated label.");
-
-  async_test(function () {
-    var labels = document.getElementById("test13").labels;
-    assert_true(labels instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
-    assert_array_equals(labels, [document.getElementById("lbl13")],
-                        "The labels for a form control should be returned in tree order.");
-    let iframe = document.createElement('iframe');
-
-    iframe.onload = this.step_func_done(() => {
-      iframe.contentWindow.document.getElementById("div1").appendChild(document.getElementById("p1"));
-      assert_equals(labels.length, 2,
-                    "The number of labels should be 2 after the labelable element is moved to iframe.");
-    });
-
-    iframe.setAttribute('src', 'http://web-platform.test:8000/html/semantics/forms/the-label-element/iframe-label-attributes.html');
-    document.body.appendChild(iframe);
-  }, "A labelable element is moved to iframe.");
-
-  test(function () {
-    var labels1 = document.getElementById("test14").labels;
-    var labels2 = document.getElementById("test15").labels;
-    assert_true(labels1 instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels1.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
-    assert_equals(labels2.length, 1,
-                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
-    assert_array_equals(labels1, [document.getElementById("lbl14")],
-                        "The labels for a form control should be returned in tree order.");
-
-    document.getElementById('div6').removeChild(document.getElementById('div7'));
-    assert_equals(labels1.length, 0,
-                  "The number of labels should be 0 after the labelable element is removed.");
-    assert_equals(labels2.length, 0,
-                  "The number of labels should be 0 since there is no label with a 'for' attribute associated with this labelable element.");
-  }, "A div element which contains labelable element is removed.");
-
-  test(function () {
-    // <label><input id="test16"><label for="test16"></label></label>
-    var label1 = document.createElement('label');
-    label1.innerHTML = "<input id='test16'>";
-    var label2 = document.createElement('label');
-    label2.htmlFor = "test16";
-    label1.appendChild(label2);
-
-    var input = label1.firstChild;
-    var labels = input.labels;
-
-    assert_equals(labels.length, 2,
-                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
-    assert_true(labels instanceof NodeList,
-                "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(label1.control, input, "The first labelable descendant of a label element should be its labeled control.");
-    assert_equals(label2.control, input, "The labeled cotrol should be associated with the control whose ID is equal to the value of the 'for' attribute.");
-  }, "A labelable element not in a document can label element in the same tree.");
-
-  test(function () {
-    var isShadowDOMV0;
-    if ("createShadowRoot" in document.getElementById('content')) {
-      isShadowDOMV0 = true;
-    }
-    var root1;
-    if (isShadowDOMV0) {
-      root1 = document.getElementById('content').createShadowRoot();
-    } else {
-      root1 = document.getElementById('content').attachShadow({mode: 'open'});
-    }
-    assert_true(root1 instanceof DocumentFragment,
-                "ShadowRoot should be an instance of DocumentFragment.");
-    // <label><input id="shadow1"/></label><div id="div1"></div>
-    var label1 = document.createElement('label');
-    var input1 = document.createElement('input');
-    input1.setAttribute("id", "shadow1");
-    label1.appendChild(input1);
-    root1.appendChild(label1);
-
-    var div1 = document.createElement('div');
-    label1.appendChild(div1);
-    // <label for="shadow2"></label><input id="shadow2"/>
-    var root2;
-    if (isShadowDOMV0) {
-      root2 = div1.createShadowRoot();
-    } else {
-      root2 = div1.attachShadow({mode: 'open'});
-    }
-
-    assert_true(root2 instanceof DocumentFragment,
-                "ShadowRoot should be an instance of DocumentFragment.");
-    var label2 = document.createElement('label');
-    label2.setAttribute("for", "shadow2");
-
-    var input2 = document.createElement('input');
-    input2.setAttribute("id", "shadow2");
-    root2.appendChild(label2);
-    root2.appendChild(input2);
-
-    assert_equals(root1.getElementById("shadow1").labels.length, 1,
-                  "The form control has an ancestor with no explicit associated label, and it is the first labelable descendant.");
-    assert_equals(root2.getElementById("shadow2").labels.length, 1,
-                  "The number of labels should be 1 since there is a label with a 'for' attribute associated with this labelable element.");
-  }, "A labelable element inside the shadow DOM.");
-
-  test(function () {
-    var labels = document.getElementById("test3").labels;
-    assert_true(labels instanceof NodeList, "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels.length, 1, "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
-  }, "A form control has an implicit label.");
-
-  test(function () {
-    var labels = document.getElementById("test4").labels;
-    assert_true(labels instanceof NodeList, "A form control's 'labels' property should be an instance of a NodeList.");
-    assert_equals(labels.length, 0, "The form control has an ancestor with no explicit associated label, but is *not* the first labelable descendant");
-  }, "A form control has no label 1.");
-
-  test(function () {
-    assert_equals(document.getElementById("test5").labels.length, 0,
-                  "The number of labels should be 0 if the form control has an ancestor label element that the for attribute points to another control.");
-    assert_equals(document.getElementById("lbl2").control, null,
-                  "The labeled cotrol should be associated with the control whose ID is equal to the value of the 'for' attribute.");
-  }, "A form control has no label 2.");
-
-  // form attribute
-  test(function () {
-    assert_equals(document.getElementById("lbl0").form, null,
-                  "The 'form' property for a label should return null if label.control is null.");
-  }, "A label in a form without a control");
-
-  test(function () {
-    assert_equals(document.getElementById("lbl6").form, document.getElementById("fm"),
-                  "The 'form' property for a label should return label.control.form.");
-  }, "A label outside a form with a control inside the form");
-
-  // htmlFor attribute
-  test(function () {
-    assert_equals(document.getElementById("lbl2").htmlFor, "testx");
-  }, "A label's htmlFor attribute must reflect the for content attribute");
-</script>
diff --git a/html/semantics/forms/the-label-element/label-attributes.sub.html b/html/semantics/forms/the-label-element/label-attributes.sub.html
new file mode 100644
index 0000000..25c7e51
--- /dev/null
+++ b/html/semantics/forms/the-label-element/label-attributes.sub.html
@@ -0,0 +1,347 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>HTML Test: The label element</title>
+<link rel="author" title="Intel" href="http://www.intel.com/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<form id="fm" style="display:none">
+  <label id="lbl0" for="test0"></label>
+  <b id="test0"></b>
+
+  <input id="test1"></input>
+
+  <label id="lbl1">
+    <a id="test2"></a>
+    <div><input id="test3"></div>
+    <input id="test4">
+  </label>
+
+  <label id="lbl2" for="testx">
+    <input id="test5">
+  </label>
+
+  <label id="lbl3" for="test6">
+    <b id="test6"></b>
+    <input id="test6" class="class1">
+  </label>
+
+  <label id="lbl4" for="">
+    <input id="" class="class2">
+  </label>
+
+  <label id="lbl5" for="test7"></label>
+  <input id="test7">
+
+  <label id="lbl7">
+    <label id="lbl8">
+      <div id="div1">
+        <input id="test8">
+      </div>
+    </label>
+  </label>
+  <div id="div2"></div>
+
+ <label id="lbl9">
+   <label id="lbl10" for="test10">
+    <div id="div3">
+      <input id="test9">
+    </div>
+  </label>
+ </label>
+ <div id="div4"><input id="test10"></div>
+
+  <label id="lbl11">
+    <object id="obj">
+      <input id="test11">
+      <input id="test12">
+    </object>
+  </label>
+  <label id="lbl12" for="test12"><div id="div5"></div></label>
+
+  <label id="lbl13">
+    <p id="p1">
+      <input id="test13">
+    </p>
+  </label>
+
+  <div id="div6">
+    <div id="div7">
+      <label id="lbl14">
+        <label id="lbl15" for="test15">
+          <input id="test14">
+        </label>
+      </label>
+    </div>
+  </div>
+  <input id="test15">
+</form>
+
+<label id="lbl6" for="test7"></label>
+<div id="content" style="display: none">
+<script>
+
+  //control attribute
+  test(function () {
+    assert_not_equals(document.getElementById("lbl0").control, document.getElementById("test0"),
+                      "An element that's not a labelable element can't be a label element's labeled control.");
+    assert_equals(document.getElementById("lbl0").control, null,
+                  "A label element whose 'for' attribute doesn't reference any labelable element shouldn't have any labeled control.");
+  }, "A label element with a 'for' attribute should only be associated with a labelable element.");
+
+  test(function () {
+    var label = document.createElement("label");
+    label.htmlFor = "test1";
+    assert_not_equals(label.control, document.getElementById("test1"),
+                      "A label element not in a document should not label an element in a document.");
+    document.body.appendChild(label);
+    assert_equals(label.control, document.getElementById("test1"));
+    label.remove();
+  }, "A label element not in a document can not label any element in the document.");
+
+  test(function () {
+    var labels = document.getElementById("test3").labels;
+    assert_equals(document.getElementById("lbl1").control, document.getElementById("test3"),
+                  "The first labelable descendant of a label element should be its labeled control.");
+
+    var input = document.createElement("input");
+    document.getElementById("lbl1").insertBefore(input, document.getElementById("test2"));
+    assert_equals(document.getElementById("lbl1").control, input,
+                  "The first labelable descendant of a label element in tree order should be its labeled control.");
+    assert_equals(input.labels.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
+    assert_equals(labels.length, 0,
+                  "The number of labels should be 0 if it's not the first labelable descendant of a label element.");
+    input.remove();
+  }, "The labeled control for a label element that has no 'for' attribute is the first labelable element which is a descendant of that label element.");
+
+  test(function () {
+    assert_equals(document.getElementById("lbl2").control, null,
+                  "The label's 'control' property should return null if its 'for' attribute points to an inexistent element.");
+  }, "The 'for' attribute points to an inexistent id.");
+
+  test(function () {
+    assert_equals(document.getElementById("lbl3").control, null, "The label should have no control associated.");
+    assert_equals(document.querySelector(".class1").labels.length, 0);
+  }, "A non-control follows by a control with same ID.");
+
+  test(function () {
+    assert_equals(document.getElementById("lbl4").control, null,
+                  "A label element with an empty 'for' attribute should not associate with anything.");
+  }, "The 'for' attribute is an empty string.");
+
+  //labels attribute
+  test(function () {
+    var labels = document.getElementById("test7").labels;
+    assert_true(labels instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels.length, 2,
+                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
+    assert_array_equals(labels, [document.getElementById("lbl5"), document.getElementById("lbl6")],
+                        "The labels for a form control should be returned in tree order.");
+
+    var newLabel = document.createElement("label");
+    newLabel.htmlFor = "test7";
+    document.getElementById("fm").insertBefore(newLabel, document.getElementById("lbl0"));
+    assert_array_equals(document.getElementById("test7").labels, [newLabel, document.getElementById("lbl5"), document.getElementById("lbl6")],
+                        "The labels for a form control should be returned in tree order.");
+    newLabel.remove();
+  }, "A form control has multiple labels.");
+
+  test(function () {
+    var labels = document.getElementById("test8").labels;
+    assert_true(labels instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels.length, 2,
+                  "The form control has two ancestors with no explicit associated label, and is the first labelable descendant.");
+    assert_array_equals(labels, [document.getElementById("lbl7"), document.getElementById("lbl8")],
+                        "The labels for a form control should be returned in tree order.");
+
+    document.getElementById('div2').insertBefore(document.getElementById('div1'), document.getElementById('div2').firstChild);
+    assert_equals(labels.length, 0,
+                  "The number of labels should be 0 after the labelable element is moved to outside of nested associated labels.");
+  }, "A labelable element is moved to outside of nested associated labels.");
+
+  test(function () {
+    var labels1 = document.getElementById("test9").labels;
+    var labels2 = document.getElementById("test10").labels;
+    assert_true(labels1 instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_true(labels2 instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels1.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
+    assert_equals(labels2.length, 1,
+                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
+    assert_array_equals(labels1, [document.getElementById("lbl9")],
+                        "The labels for a form control should be returned in tree order.");
+    assert_array_equals(labels2, [document.getElementById("lbl10")],
+                        "The labels for a form control should be returned in tree order.");
+    document.getElementById('div3').insertBefore(document.getElementById('div4'), document.getElementById('div3').firstChild);
+    assert_equals(labels1.length, 0,
+                  "The number of labels should be 0 if it's not the first labelable descendant of a label element.");
+    assert_equals(labels2.length, 2,
+                  "The form control has an ancestor with an explicit associated label, and is the first labelable descendant.");
+  }, "A labelable element is moved to inside of nested associated labels.");
+
+  test(function () {
+    var labels1 = document.getElementById("test11").labels;
+    var labels2 = document.getElementById("test12").labels;
+    assert_true(labels1 instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_true(labels2 instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels1.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and it is the first labelable descendant.");
+    assert_equals(labels2.length, 1,
+                  "The number of labels should be 1 since there is a label with a 'for' attribute associated with this labelable element.");
+    assert_array_equals(labels1, [document.getElementById("lbl11")],
+                        "The labels for a form control should be returned in tree order.");
+    assert_array_equals(labels2, [document.getElementById("lbl12")],
+                        "The labels for a form control should be returned in tree order.");
+    document.getElementById('div5').appendChild(document.getElementById('obj'));
+    assert_equals(labels1.length, 0,
+                  "The number of labels should be 0 after the labelable element is moved to outside of associated label.");
+    assert_equals(labels2.length, 1,
+                  "The number of labels should be 1 after the labelable element is moved to outside of associated label.");
+  }, "A labelable element which is a descendant of non-labelable element is moved to outside of associated label.");
+
+  async_test(function () {
+    var labels = document.getElementById("test13").labels;
+    assert_true(labels instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
+    assert_array_equals(labels, [document.getElementById("lbl13")],
+                        "The labels for a form control should be returned in tree order.");
+    let iframe = document.createElement('iframe');
+
+    iframe.onload = this.step_func_done(() => {
+      iframe.contentWindow.document.getElementById("div1").appendChild(document.getElementById("p1"));
+      assert_equals(labels.length, 2,
+                    "The number of labels should be 2 after the labelable element is moved to iframe.");
+    });
+
+    iframe.setAttribute('src', 'http://{{domains[]}}:{{ports[http][0]}}/html/semantics/forms/the-label-element/iframe-label-attributes.html');
+    document.body.appendChild(iframe);
+  }, "A labelable element is moved to iframe.");
+
+  test(function () {
+    var labels1 = document.getElementById("test14").labels;
+    var labels2 = document.getElementById("test15").labels;
+    assert_true(labels1 instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels1.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
+    assert_equals(labels2.length, 1,
+                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
+    assert_array_equals(labels1, [document.getElementById("lbl14")],
+                        "The labels for a form control should be returned in tree order.");
+
+    document.getElementById('div6').removeChild(document.getElementById('div7'));
+    assert_equals(labels1.length, 0,
+                  "The number of labels should be 0 after the labelable element is removed.");
+    assert_equals(labels2.length, 0,
+                  "The number of labels should be 0 since there is no label with a 'for' attribute associated with this labelable element.");
+  }, "A div element which contains labelable element is removed.");
+
+  test(function () {
+    // <label><input id="test16"><label for="test16"></label></label>
+    var label1 = document.createElement('label');
+    label1.innerHTML = "<input id='test16'>";
+    var label2 = document.createElement('label');
+    label2.htmlFor = "test16";
+    label1.appendChild(label2);
+
+    var input = label1.firstChild;
+    var labels = input.labels;
+
+    assert_equals(labels.length, 2,
+                  "The number of labels associated with a form control should be the number of label elements for which it is a labeled control.");
+    assert_true(labels instanceof NodeList,
+                "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(label1.control, input, "The first labelable descendant of a label element should be its labeled control.");
+    assert_equals(label2.control, input, "The labeled cotrol should be associated with the control whose ID is equal to the value of the 'for' attribute.");
+  }, "A labelable element not in a document can label element in the same tree.");
+
+  test(function () {
+    var isShadowDOMV0;
+    if ("createShadowRoot" in document.getElementById('content')) {
+      isShadowDOMV0 = true;
+    }
+    var root1;
+    if (isShadowDOMV0) {
+      root1 = document.getElementById('content').createShadowRoot();
+    } else {
+      root1 = document.getElementById('content').attachShadow({mode: 'open'});
+    }
+    assert_true(root1 instanceof DocumentFragment,
+                "ShadowRoot should be an instance of DocumentFragment.");
+    // <label><input id="shadow1"/></label><div id="div1"></div>
+    var label1 = document.createElement('label');
+    var input1 = document.createElement('input');
+    input1.setAttribute("id", "shadow1");
+    label1.appendChild(input1);
+    root1.appendChild(label1);
+
+    var div1 = document.createElement('div');
+    label1.appendChild(div1);
+    // <label for="shadow2"></label><input id="shadow2"/>
+    var root2;
+    if (isShadowDOMV0) {
+      root2 = div1.createShadowRoot();
+    } else {
+      root2 = div1.attachShadow({mode: 'open'});
+    }
+
+    assert_true(root2 instanceof DocumentFragment,
+                "ShadowRoot should be an instance of DocumentFragment.");
+    var label2 = document.createElement('label');
+    label2.setAttribute("for", "shadow2");
+
+    var input2 = document.createElement('input');
+    input2.setAttribute("id", "shadow2");
+    root2.appendChild(label2);
+    root2.appendChild(input2);
+
+    assert_equals(root1.getElementById("shadow1").labels.length, 1,
+                  "The form control has an ancestor with no explicit associated label, and it is the first labelable descendant.");
+    assert_equals(root2.getElementById("shadow2").labels.length, 1,
+                  "The number of labels should be 1 since there is a label with a 'for' attribute associated with this labelable element.");
+  }, "A labelable element inside the shadow DOM.");
+
+  test(function () {
+    var labels = document.getElementById("test3").labels;
+    assert_true(labels instanceof NodeList, "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels.length, 1, "The form control has an ancestor with no explicit associated label, and is the first labelable descendant.");
+  }, "A form control has an implicit label.");
+
+  test(function () {
+    var labels = document.getElementById("test4").labels;
+    assert_true(labels instanceof NodeList, "A form control's 'labels' property should be an instance of a NodeList.");
+    assert_equals(labels.length, 0, "The form control has an ancestor with no explicit associated label, but is *not* the first labelable descendant");
+  }, "A form control has no label 1.");
+
+  test(function () {
+    assert_equals(document.getElementById("test5").labels.length, 0,
+                  "The number of labels should be 0 if the form control has an ancestor label element that the for attribute points to another control.");
+    assert_equals(document.getElementById("lbl2").control, null,
+                  "The labeled cotrol should be associated with the control whose ID is equal to the value of the 'for' attribute.");
+  }, "A form control has no label 2.");
+
+  // form attribute
+  test(function () {
+    assert_equals(document.getElementById("lbl0").form, null,
+                  "The 'form' property for a label should return null if label.control is null.");
+  }, "A label in a form without a control");
+
+  test(function () {
+    assert_equals(document.getElementById("lbl6").form, document.getElementById("fm"),
+                  "The 'form' property for a label should return label.control.form.");
+  }, "A label outside a form with a control inside the form");
+
+  // htmlFor attribute
+  test(function () {
+    assert_equals(document.getElementById("lbl2").htmlFor, "testx");
+  }, "A label's htmlFor attribute must reflect the for content attribute");
+</script>
diff --git a/input-events/OWNERS b/input-events/OWNERS
index 452445e..32be11b 100644
--- a/input-events/OWNERS
+++ b/input-events/OWNERS
@@ -1,2 +1,2 @@
 @johanneswilm
-@siusin
\ No newline at end of file
+@siusin
diff --git a/input-events/idlharness.html b/input-events/idlharness.html
index 54ca46e..f09d138 100644
--- a/input-events/idlharness.html
+++ b/input-events/idlharness.html
@@ -4,35 +4,26 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="/resources/WebIDLParser.js"></script>
 <script src="/resources/idlharness.js"></script>
-
-<pre id="untested_idl">
-interface InputEvent {
-};
-</pre>
-
-<pre id='idl'>
-partial interface InputEvent {
-    readonly attribute DOMString     inputType;
-    readonly attribute DataTransfer? dataTransfer;
-    sequence<StaticRange> getTargetRanges();
-};
-
-partial dictionary InputEventInit {
-    DOMString             inputType = "";
-    DataTransfer?         dataTransfer = null;
-    sequence<StaticRange> targetRanges = [];
-};
-</pre>
-
 <script>
-(function(){
-    "use strict";
+"use strict";
+
+function doTest([input_events]) {
     const idl_array = new IdlArray();
-    idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
-    idl_array.add_idls(document.getElementById("idl").textContent);
+    idl_array.add_untested_idls('interface InputEvent {};');
+    idl_array.add_untested_idls('dictionary InputEventInit {};');
+    idl_array.add_idls(input_events);
     idl_array.add_objects({
-      InputEvent: ['new InputEvent("foo")'],
+        InputEvent: ['new InputEvent("foo")'],
     });
     idl_array.test();
-})();
+}
+
+function fetchText(url) {
+    return fetch(url).then((response) => response.text());
+}
+
+promise_test(() => {
+    return Promise.all(["/interfaces/input-events.idl"].map(fetchText))
+                  .then(doTest);
+}, "Test IDL implementation of Input Events");
 </script>
diff --git a/interfaces/DOM-Parsing.idl b/interfaces/DOM-Parsing.idl
new file mode 100644
index 0000000..11d5d8b
--- /dev/null
+++ b/interfaces/DOM-Parsing.idl
@@ -0,0 +1,31 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the DOM Parsing and Serialization spec.
+// See https://w3c.github.io/DOM-Parsing/
+
+[Constructor, Exposed=Window]
+interface DOMParser {
+  [NewObject] Document parseFromString(DOMString str, SupportedType type);
+};
+
+enum SupportedType {
+  "text/html",
+  "text/xml",
+  "application/xml",
+  "application/xhtml+xml",
+  "image/svg+xml"
+};
+
+[Constructor, Exposed=Window]
+  interface XMLSerializer {
+  DOMString serializeToString(Node root);
+};
+
+partial interface Element {
+  [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerHTML;
+  [CEReactions, TreatNullAs=EmptyString] attribute DOMString outerHTML;
+  [CEReactions] void insertAdjacentHTML(DOMString position, DOMString text);
+};
+
+partial interface Range {
+  [CEReactions, NewObject] DocumentFragment createContextualFragment(DOMString fragment);
+};
diff --git a/interfaces/IndexedDB.idl b/interfaces/IndexedDB.idl
index 89924c0..25e9a9c 100644
--- a/interfaces/IndexedDB.idl
+++ b/interfaces/IndexedDB.idl
@@ -1,10 +1,14 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Indexed Database API spec.
+// See https://w3c.github.io/IndexedDB/
+
 [Exposed=(Window,Worker)]
 interface IDBRequest : EventTarget {
-  readonly attribute any                                        result;
-  readonly attribute DOMException?                              error;
+  readonly attribute any result;
+  readonly attribute DOMException? error;
   readonly attribute (IDBObjectStore or IDBIndex or IDBCursor)? source;
-  readonly attribute IDBTransaction?                            transaction;
-  readonly attribute IDBRequestReadyState                       readyState;
+  readonly attribute IDBTransaction? transaction;
+  readonly attribute IDBRequestReadyState readyState;
 
   // Event handlers:
   attribute EventHandler onsuccess;
@@ -26,12 +30,12 @@
 [Exposed=(Window,Worker),
  Constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict)]
 interface IDBVersionChangeEvent : Event {
-  readonly attribute unsigned long long  oldVersion;
+  readonly attribute unsigned long long oldVersion;
   readonly attribute unsigned long long? newVersion;
 };
 
 dictionary IDBVersionChangeEventInit : EventInit {
-  unsigned long long  oldVersion = 0;
+  unsigned long long oldVersion = 0;
   unsigned long long? newVersion = null;
 };
 
@@ -41,26 +45,26 @@
 
 [Exposed=(Window,Worker)]
 interface IDBFactory {
-  IDBOpenDBRequest open(DOMString name,
-                        optional [EnforceRange] unsigned long long version);
-  IDBOpenDBRequest deleteDatabase(DOMString name);
+  [NewObject] IDBOpenDBRequest open(DOMString name,
+                                    optional [EnforceRange] unsigned long long version);
+  [NewObject] IDBOpenDBRequest deleteDatabase(DOMString name);
 
   short cmp(any first, any second);
 };
 
 [Exposed=(Window,Worker)]
 interface IDBDatabase : EventTarget {
-  readonly attribute DOMString          name;
+  readonly attribute DOMString name;
   readonly attribute unsigned long long version;
-  readonly attribute DOMStringList      objectStoreNames;
+  readonly attribute DOMStringList objectStoreNames;
 
-  IDBTransaction transaction((DOMString or sequence<DOMString>) storeNames,
-                             optional IDBTransactionMode mode = "readonly");
-  void           close();
+  [NewObject] IDBTransaction transaction((DOMString or sequence<DOMString>) storeNames,
+                                         optional IDBTransactionMode mode = "readonly");
+  void close();
 
-  IDBObjectStore createObjectStore(DOMString name,
-                                   optional IDBObjectStoreParameters options);
-  void           deleteObjectStore(DOMString name);
+  [NewObject] IDBObjectStore createObjectStore(DOMString name,
+                                               optional IDBObjectStoreParameters options);
+  void deleteObjectStore(DOMString name);
 
   // Event handlers:
   attribute EventHandler onabort;
@@ -71,40 +75,40 @@
 
 dictionary IDBObjectStoreParameters {
   (DOMString or sequence<DOMString>)? keyPath = null;
-  boolean                             autoIncrement = false;
+  boolean autoIncrement = false;
 };
 
 [Exposed=(Window,Worker)]
 interface IDBObjectStore {
-           attribute DOMString      name;
-  readonly attribute any            keyPath;
-  readonly attribute DOMStringList  indexNames;
-  readonly attribute IDBTransaction transaction;
-  readonly attribute boolean        autoIncrement;
+  attribute DOMString name;
+  readonly attribute any keyPath;
+  readonly attribute DOMStringList indexNames;
+  [SameObject] readonly attribute IDBTransaction transaction;
+  readonly attribute boolean autoIncrement;
 
-  IDBRequest put(any value, optional any key);
-  IDBRequest add(any value, optional any key);
-  IDBRequest delete(any query);
-  IDBRequest clear();
-  IDBRequest get(any query);
-  IDBRequest getKey(any query);
-  IDBRequest getAll(optional any query,
-                    [EnforceRange] optional unsigned long count);
-  IDBRequest getAllKeys(optional any query,
-                        [EnforceRange] optional unsigned long count);
-  IDBRequest count(optional any query);
+  [NewObject] IDBRequest put(any value, optional any key);
+  [NewObject] IDBRequest add(any value, optional any key);
+  [NewObject] IDBRequest delete(any query);
+  [NewObject] IDBRequest clear();
+  [NewObject] IDBRequest get(any query);
+  [NewObject] IDBRequest getKey(any query);
+  [NewObject] IDBRequest getAll(optional any query,
+                                optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest getAllKeys(optional any query,
+                                    optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest count(optional any query);
 
-  IDBRequest openCursor(optional any query,
-                        optional IDBCursorDirection direction = "next");
-  IDBRequest openKeyCursor(optional any query,
-                           optional IDBCursorDirection direction = "next");
+  [NewObject] IDBRequest openCursor(optional any query,
+                                    optional IDBCursorDirection direction = "next");
+  [NewObject] IDBRequest openKeyCursor(optional any query,
+                                       optional IDBCursorDirection direction = "next");
 
-  IDBIndex   index(DOMString name);
+  IDBIndex index(DOMString name);
 
-  IDBIndex   createIndex(DOMString name,
-                         (DOMString or sequence<DOMString>) keyPath,
-                         optional IDBIndexParameters options);
-  void       deleteIndex(DOMString indexName);
+  [NewObject] IDBIndex createIndex(DOMString name,
+                                   (DOMString or sequence<DOMString>) keyPath,
+                                   optional IDBIndexParameters options);
+  void deleteIndex(DOMString name);
 };
 
 dictionary IDBIndexParameters {
@@ -114,58 +118,58 @@
 
 [Exposed=(Window,Worker)]
 interface IDBIndex {
-           attribute DOMString      name;
-  readonly attribute IDBObjectStore objectStore;
-  readonly attribute any            keyPath;
-  readonly attribute boolean        multiEntry;
-  readonly attribute boolean        unique;
+  attribute DOMString name;
+  [SameObject] readonly attribute IDBObjectStore objectStore;
+  readonly attribute any keyPath;
+  readonly attribute boolean multiEntry;
+  readonly attribute boolean unique;
 
-  IDBRequest get(any query);
-  IDBRequest getKey(any query);
-  IDBRequest getAll(optional any query,
-                    [EnforceRange] optional unsigned long count);
-  IDBRequest getAllKeys(optional any query,
-                        [EnforceRange] optional unsigned long count);
-  IDBRequest count(optional any query);
+  [NewObject] IDBRequest get(any query);
+  [NewObject] IDBRequest getKey(any query);
+  [NewObject] IDBRequest getAll(optional any query,
+                                optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest getAllKeys(optional any query,
+                                    optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest count(optional any query);
 
-  IDBRequest openCursor(optional any query,
-                        optional IDBCursorDirection direction = "next");
-  IDBRequest openKeyCursor(optional any query,
-                           optional IDBCursorDirection direction = "next");
+  [NewObject] IDBRequest openCursor(optional any query,
+                                    optional IDBCursorDirection direction = "next");
+  [NewObject] IDBRequest openKeyCursor(optional any query,
+                                       optional IDBCursorDirection direction = "next");
 };
 
 [Exposed=(Window,Worker)]
 interface IDBKeyRange {
-  readonly attribute any     lower;
-  readonly attribute any     upper;
+  readonly attribute any lower;
+  readonly attribute any upper;
   readonly attribute boolean lowerOpen;
   readonly attribute boolean upperOpen;
 
   // Static construction methods:
-  static IDBKeyRange only(any value);
-  static IDBKeyRange lowerBound(any lower, optional boolean open = false);
-  static IDBKeyRange upperBound(any upper, optional boolean open = false);
-  static IDBKeyRange bound(any lower,
-                           any upper,
-                           optional boolean lowerOpen = false,
-                           optional boolean upperOpen = false);
+  [NewObject] static IDBKeyRange only(any value);
+  [NewObject] static IDBKeyRange lowerBound(any lower, optional boolean open = false);
+  [NewObject] static IDBKeyRange upperBound(any upper, optional boolean open = false);
+  [NewObject] static IDBKeyRange bound(any lower,
+                                       any upper,
+                                       optional boolean lowerOpen = false,
+                                       optional boolean upperOpen = false);
 
-  boolean includes(any key);
+  boolean _includes(any key);
 };
 
 [Exposed=(Window,Worker)]
 interface IDBCursor {
   readonly attribute (IDBObjectStore or IDBIndex) source;
-  readonly attribute IDBCursorDirection           direction;
-  readonly attribute any                          key;
-  readonly attribute any                          primaryKey;
+  readonly attribute IDBCursorDirection direction;
+  readonly attribute any key;
+  readonly attribute any primaryKey;
 
   void advance([EnforceRange] unsigned long count);
   void continue(optional any key);
   void continuePrimaryKey(any key, any primaryKey);
 
-  IDBRequest update(any value);
-  IDBRequest delete();
+  [NewObject] IDBRequest update(any value);
+  [NewObject] IDBRequest delete();
 };
 
 enum IDBCursorDirection {
@@ -182,13 +186,13 @@
 
 [Exposed=(Window,Worker)]
 interface IDBTransaction : EventTarget {
-  readonly attribute DOMStringList      objectStoreNames;
+  readonly attribute DOMStringList objectStoreNames;
   readonly attribute IDBTransactionMode mode;
-  readonly attribute IDBDatabase        db;
-  readonly attribute DOMException       error;
+  [SameObject] readonly attribute IDBDatabase db;
+  readonly attribute DOMException error;
 
   IDBObjectStore objectStore(DOMString name);
-  void           abort();
+  void abort();
 
   // Event handlers:
   attribute EventHandler onabort;
diff --git a/interfaces/battery.idl b/interfaces/battery.idl
new file mode 100644
index 0000000..2596a6e
--- /dev/null
+++ b/interfaces/battery.idl
@@ -0,0 +1,19 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Battery Status API spec.
+// See https://w3c.github.io/battery/
+
+partial interface Navigator {
+  Promise<BatteryManager> getBattery();
+};
+
+[Exposed=Window]
+interface BatteryManager : EventTarget {
+    readonly        attribute boolean             charging;
+    readonly        attribute unrestricted double chargingTime;
+    readonly        attribute unrestricted double dischargingTime;
+    readonly        attribute double              level;
+                    attribute EventHandler        onchargingchange;
+                    attribute EventHandler        onchargingtimechange;
+                    attribute EventHandler        ondischargingtimechange;
+                    attribute EventHandler        onlevelchange;
+};
diff --git a/interfaces/css-typed-om.idl b/interfaces/css-typed-om.idl
index 39e53ce..45df520 100644
--- a/interfaces/css-typed-om.idl
+++ b/interfaces/css-typed-om.idl
@@ -170,7 +170,7 @@
 };
 
 // FIXME: Uncomment this when IDLHarness supports CSS namespaces:
-// https://github.com/w3c/web-platform-tests/issues/7583
+// https://github.com/web-platform-tests/wpt/issues/7583
 /*
 partial namespace CSS {
     CSSUnitValue number(double value);
diff --git a/interfaces/fetch.idl b/interfaces/fetch.idl
index 346d1b0..1851485 100644
--- a/interfaces/fetch.idl
+++ b/interfaces/fetch.idl
@@ -39,6 +39,7 @@
   readonly attribute DOMString integrity;
   readonly attribute boolean keepalive;
   readonly attribute boolean isReloadNavigation;
+  readonly attribute boolean isHistoryNavigation;
   readonly attribute AbortSignal signal;
 
   [NewObject] Request clone();
diff --git a/interfaces/gamepad.idl b/interfaces/gamepad.idl
index 0f7ca2c..575e12a 100644
--- a/interfaces/gamepad.idl
+++ b/interfaces/gamepad.idl
@@ -1,33 +1,37 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Gamepad spec.
+// See https://w3c.github.io/gamepad/
+
 interface Gamepad {
-    readonly attribute DOMString                  id;
-    readonly attribute long                       index;
-    readonly attribute boolean                    connected;
-    readonly attribute DOMHighResTimeStamp        timestamp;
-    readonly attribute GamepadMappingType         mapping;
-    readonly attribute FrozenArray<double>        axes;
-    readonly attribute FrozenArray<GamepadButton> buttons;
+  readonly attribute DOMString id;
+  readonly attribute long index;
+  readonly attribute boolean connected;
+  readonly attribute DOMHighResTimeStamp timestamp;
+  readonly attribute GamepadMappingType mapping;
+  readonly attribute FrozenArray<double> axes;
+  readonly attribute FrozenArray<GamepadButton> buttons;
 };
 
 interface GamepadButton {
-    readonly attribute boolean pressed;
-    readonly attribute boolean touched;
-    readonly attribute double  value;
+  readonly attribute boolean pressed;
+  readonly attribute boolean touched;
+  readonly attribute double value;
 };
 
 enum GamepadMappingType {
-    "",
-    "standard",
+  "",
+  "standard",
 };
 
 partial interface Navigator {
-    sequence<Gamepad?> getGamepads();
+  sequence<Gamepad?> getGamepads();
 };
 
 [Constructor(GamepadEventInit eventInitDict)]
-interface GamepadEvent : Event {
-    readonly attribute Gamepad gamepad;
+interface GamepadEvent: Event {
+  readonly attribute Gamepad gamepad;
 };
 
-dictionary GamepadEventInit : EventInit {
-    required Gamepad gamepad;
+dictionary GamepadEventInit: EventInit {
+  required Gamepad gamepad;
 };
diff --git a/interfaces/input-events.idl b/interfaces/input-events.idl
new file mode 100644
index 0000000..d229547
--- /dev/null
+++ b/interfaces/input-events.idl
@@ -0,0 +1,11 @@
+partial interface InputEvent {
+  readonly attribute DOMString inputType;
+  readonly attribute DataTransfer? dataTransfer;
+  sequence<StaticRange> getTargetRanges();
+};
+
+partial dictionary InputEventInit {
+  DOMString inputType = "";
+  DataTransfer? dataTransfer = null;
+  sequence<StaticRange> targetRanges = [];
+};
diff --git a/interfaces/media-capabilities.idl b/interfaces/media-capabilities.idl
new file mode 100644
index 0000000..8e242c5
--- /dev/null
+++ b/interfaces/media-capabilities.idl
@@ -0,0 +1,78 @@
+dictionary MediaConfiguration {
+  VideoConfiguration video;
+  AudioConfiguration audio;
+};
+
+dictionary MediaDecodingConfiguration : MediaConfiguration {
+  required MediaDecodingType type;
+};
+
+dictionary MediaEncodingConfiguration : MediaConfiguration {
+  required MediaEncodingType type;
+};
+
+enum MediaDecodingType {
+  "file",
+  "media-source",
+};
+
+enum MediaEncodingType {
+  "record",
+  "transmission"
+};
+
+dictionary VideoConfiguration {
+  required DOMString contentType;
+  required unsigned long width;
+  required unsigned long height;
+  required unsigned long long bitrate;
+  required DOMString framerate;
+};
+
+dictionary AudioConfiguration {
+  required DOMString contentType;
+  DOMString channels;
+  unsigned long long bitrate;
+  unsigned long samplerate;
+};
+
+interface MediaCapabilitiesInfo {
+  readonly attribute boolean supported;
+  readonly attribute boolean smooth;
+  readonly attribute boolean powerEfficient;
+};
+
+[Exposed=(Window)]
+partial interface Navigator {
+  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
+};
+
+[Exposed=(Worker)]
+partial interface WorkerNavigator {
+  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
+};
+
+[Exposed=(Window, Worker)]
+interface MediaCapabilities {
+  Promise<MediaCapabilitiesInfo> decodingInfo(MediaDecodingConfiguration configuration);
+  Promise<MediaCapabilitiesInfo> encodingInfo(MediaEncodingConfiguration configuration);
+};
+
+interface ScreenLuminance {
+  readonly attribute double min;
+  readonly attribute double max;
+  readonly attribute double maxAverage;
+};
+
+enum ScreenColorGamut {
+  "srgb",
+  "p3",
+  "rec2020",
+};
+
+partial interface Screen {
+  readonly attribute ScreenColorGamut colorGamut;
+  readonly attribute ScreenLuminance? luminance;
+
+  attribute EventHandler onchange;
+};
diff --git a/interfaces/mediasession.idl b/interfaces/mediasession.idl
new file mode 100644
index 0000000..fded300
--- /dev/null
+++ b/interfaces/mediasession.idl
@@ -0,0 +1,49 @@
+[Exposed=Window]
+partial interface Navigator {
+  [SameObject] readonly attribute MediaSession mediaSession;
+};
+
+enum MediaSessionPlaybackState {
+  "none",
+  "paused",
+  "playing"
+};
+
+enum MediaSessionAction {
+  "play",
+  "pause",
+  "seekbackward",
+  "seekforward",
+  "previoustrack",
+  "nexttrack",
+};
+
+callback MediaSessionActionHandler = void();
+
+[Exposed=Window]
+interface MediaSession {
+  attribute MediaMetadata? metadata;
+  attribute MediaSessionPlaybackState playbackState;
+  void setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
+};
+
+[Constructor(optional MediaMetadataInit init), Exposed=Window]
+interface MediaMetadata {
+  attribute DOMString title;
+  attribute DOMString artist;
+  attribute DOMString album;
+  attribute FrozenArray<MediaImage> artwork;
+};
+
+dictionary MediaMetadataInit {
+  DOMString title = "";
+  DOMString artist = "";
+  DOMString album = "";
+  sequence<MediaImage> artwork = [];
+};
+
+dictionary MediaImage {
+  required USVString src;
+  DOMString sizes = "";
+  DOMString type = "";
+};
diff --git a/interfaces/payment-request.idl b/interfaces/payment-request.idl
index 50a5dea..f925db2 100644
--- a/interfaces/payment-request.idl
+++ b/interfaces/payment-request.idl
@@ -27,8 +27,6 @@
 dictionary PaymentCurrencyAmount {
   required DOMString currency;
   required DOMString value;
-  // Note: currencySystem is "at risk" of being removed!
-  DOMString currencySystem = "urn:iso:std:iso:4217";
 };
 
 dictionary PaymentDetailsBase {
diff --git a/interfaces/pointerevents.idl b/interfaces/pointerevents.idl
new file mode 100644
index 0000000..3a36c6a
--- /dev/null
+++ b/interfaces/pointerevents.idl
@@ -0,0 +1,53 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Pointer Events spec.
+// See https://w3c.github.io/pointerevents/
+
+dictionary PointerEventInit : MouseEventInit {
+    long        pointerId = 0;
+    double      width = 1;
+    double      height = 1;
+    float       pressure = 0;
+    float       tangentialPressure = 0;
+    long        tiltX = 0;
+    long        tiltY = 0;
+    long        twist = 0;
+    DOMString   pointerType = "";
+    boolean     isPrimary = false;
+};
+
+[Constructor(DOMString type, optional PointerEventInit eventInitDict), Exposed=Window]
+interface PointerEvent : MouseEvent {
+    readonly        attribute long        pointerId;
+    readonly        attribute double      width;
+    readonly        attribute double      height;
+    readonly        attribute float       pressure;
+    readonly        attribute float       tangentialPressure;
+    readonly        attribute long        tiltX;
+    readonly        attribute long        tiltY;
+    readonly        attribute long        twist;
+    readonly        attribute DOMString   pointerType;
+    readonly        attribute boolean     isPrimary;
+};
+
+partial interface Element {
+  void setPointerCapture (long pointerId);
+  void releasePointerCapture (long pointerId);
+  boolean hasPointerCapture (long pointerId);
+};
+
+partial interface GlobalEventHandlers {
+    attribute EventHandler ongotpointercapture;
+    attribute EventHandler onlostpointercapture;
+    attribute EventHandler onpointerdown;
+    attribute EventHandler onpointermove;
+    attribute EventHandler onpointerup;
+    attribute EventHandler onpointercancel;
+    attribute EventHandler onpointerover;
+    attribute EventHandler onpointerout;
+    attribute EventHandler onpointerenter;
+    attribute EventHandler onpointerleave;
+};
+
+partial interface Navigator {
+    readonly  attribute long maxTouchPoints;
+};
diff --git a/interfaces/pointerlock.idl b/interfaces/pointerlock.idl
new file mode 100644
index 0000000..e406b53
--- /dev/null
+++ b/interfaces/pointerlock.idl
@@ -0,0 +1,27 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Pointer Lock spec.
+// See https://w3c.github.io/pointerlock/
+
+partial interface Element {
+  void requestPointerLock();
+};
+
+partial interface Document {
+  attribute EventHandler onpointerlockchange;
+  attribute EventHandler onpointerlockerror;
+  void exitPointerLock();
+};
+
+partial interface DocumentOrShadowRoot {
+  readonly attribute Element ? pointerLockElement;
+};
+
+partial interface MouseEvent {
+  readonly attribute long movementX;
+  readonly attribute long movementY;
+};
+
+partial dictionary MouseEventInit {
+  long movementX = 0;
+  long movementY = 0;
+};
diff --git a/interfaces/remote-playback.idl b/interfaces/remote-playback.idl
new file mode 100644
index 0000000..b1aa93d
--- /dev/null
+++ b/interfaces/remote-playback.idl
@@ -0,0 +1,31 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Remote Playback API spec.
+// See https://w3c.github.io/remote-playback/
+
+[Exposed=Window]
+interface RemotePlayback : EventTarget {
+  Promise<long> watchAvailability(RemotePlaybackAvailabilityCallback callback);
+  Promise<void> cancelWatchAvailability(optional long id);
+
+  readonly attribute RemotePlaybackState state;
+
+  attribute EventHandler onconnecting;
+  attribute EventHandler onconnect;
+  attribute EventHandler ondisconnect;
+
+  Promise<void> prompt();
+};
+
+enum RemotePlaybackState {
+  "connecting",
+  "connected",
+  "disconnected"
+};
+
+callback RemotePlaybackAvailabilityCallback = void(boolean available);
+
+partial interface HTMLMediaElement {
+  [SameObject] readonly attribute RemotePlayback remote;
+
+  [CEReactions] attribute boolean disableRemotePlayback;
+};
diff --git a/interfaces/remoteplayback.idl b/interfaces/remoteplayback.idl
deleted file mode 100644
index 5cd9ba1..0000000
--- a/interfaces/remoteplayback.idl
+++ /dev/null
@@ -1,29 +0,0 @@
-[Exposed=Window]
-interface RemotePlayback : EventTarget {
-    Promise<long> watchAvailability(RemotePlaybackAvailabilityCallback callback);
-    Promise<void> cancelWatchAvailability(optional long id);
-
-    readonly attribute RemotePlaybackState state;
-
-             attribute EventHandler        onconnecting;
-             attribute EventHandler        onconnect;
-             attribute EventHandler        ondisconnect;
-
-    Promise<void> prompt();
-};
-
-enum RemotePlaybackState {
-    "connecting",
-    "connected",
-    "disconnected"
-};
-
-callback RemotePlaybackAvailabilityCallback = void (boolean available);
-
-partial interface HTMLMediaElement {
-    [SameObject]
-    readonly attribute RemotePlayback remote;
-
-    [CEReactions]
-             attribute boolean        disableRemotePlayback;
-};
diff --git a/interfaces/selection-api.idl b/interfaces/selection-api.idl
index 27efc2a..a06226b 100644
--- a/interfaces/selection-api.idl
+++ b/interfaces/selection-api.idl
@@ -1,36 +1,35 @@
-// http://w3c.github.io/selection-api/#selection-interface
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Selection API spec.
+// See https://w3c.github.io/selection-api/
+
 interface Selection {
-  readonly attribute Node?         anchorNode;
+  readonly attribute Node? anchorNode;
   readonly attribute unsigned long anchorOffset;
-  readonly attribute Node?         focusNode;
+  readonly attribute Node? focusNode;
   readonly attribute unsigned long focusOffset;
-  readonly attribute boolean       isCollapsed;
+  readonly attribute boolean isCollapsed;
   readonly attribute unsigned long rangeCount;
-  readonly attribute DOMString     type;
-  Range     getRangeAt(unsigned long index);
-  void      addRange(Range range);
-  void      removeRange(Range range);
-  void      removeAllRanges();
-  void      empty();
-  void      collapse(Node? node, optional unsigned long offset = 0);
-  void      setPosition(Node? node, optional unsigned long offset = 0);
-  void      collapseToStart();
-  void      collapseToEnd();
-  void      extend(Node node, optional unsigned long offset = 0);
-  void      setBaseAndExtent(Node anchorNode,
-                             unsigned long anchorOffset,
-                             Node focusNode,
-                             unsigned long focusOffset);
-  void      selectAllChildren(Node node);
+  readonly attribute DOMString type;
+  Range getRangeAt(unsigned long index);
+  void addRange(Range range);
+  void removeRange(Range range);
+  void removeAllRanges();
+  void empty();
+  void collapse(Node? node, optional unsigned long offset = 0);
+  void setPosition(Node? node, optional unsigned long offset = 0);
+  void collapseToStart();
+  void collapseToEnd();
+  void extend(Node node, optional unsigned long offset = 0);
+  void setBaseAndExtent(Node anchorNode, unsigned long anchorOffset, Node focusNode, unsigned long focusOffset);
+  void selectAllChildren(Node node);
   [CEReactions]
-  void      deleteFromDocument();
-  boolean   containsNode(Node node,
-                         optional boolean allowPartialContainment = false);
+  void deleteFromDocument();
+  boolean containsNode(Node node, optional boolean allowPartialContainment = false);
   stringifier DOMString ();
 };
 
 partial interface Document {
-  Selection? getSelection();
+  Selection ? getSelection();
 };
 
 partial interface Window {
diff --git a/interfaces/vibration.idl b/interfaces/vibration.idl
new file mode 100644
index 0000000..58b34bb
--- /dev/null
+++ b/interfaces/vibration.idl
@@ -0,0 +1,9 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the Vibration API spec.
+// See https://w3c.github.io/vibration/
+
+typedef (unsigned long or sequence<unsigned long>) VibratePattern;
+
+partial interface Navigator {
+    boolean vibrate (VibratePattern pattern);
+};
diff --git a/interfaces/webusb.idl b/interfaces/webusb.idl
index bad8383..03e03b0 100644
--- a/interfaces/webusb.idl
+++ b/interfaces/webusb.idl
@@ -14,27 +14,37 @@
   required sequence<USBDeviceFilter> filters;
 };
 
+[Exposed=(DedicatedWorker, SharedWorker, Window), SecureContext]
 interface USB : EventTarget {
   attribute EventHandler onconnect;
   attribute EventHandler ondisconnect;
   Promise<sequence<USBDevice>> getDevices();
-  Promise<USBDevice> requestDevice(USBDeviceRequestOptions options);
+  [Exposed=Window] Promise<USBDevice> requestDevice(USBDeviceRequestOptions options);
 };
 
-[SecureContext]
+[Exposed=Window, SecureContext]
 partial interface Navigator {
   [SameObject] readonly attribute USB usb;
 };
 
+[Exposed=(DedicatedWorker, SharedWorker), SecureContext]
+partial interface WorkerNavigator {
+  [SameObject] readonly attribute USB usb;
+};
+
 dictionary USBConnectionEventInit : EventInit {
     required USBDevice device;
 };
 
-[Constructor(DOMString type, USBConnectionEventInit eventInitDict)]
+[
+  Constructor(DOMString type, USBConnectionEventInit eventInitDict),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBConnectionEvent : Event {
   [SameObject] readonly attribute USBDevice device;
 };
 
+[Exposed=(DedicatedWorker, SharedWorker, Window)]
 interface USBDevice {
   readonly attribute octet usbVersionMajor;
   readonly attribute octet usbVersionMinor;
@@ -96,49 +106,73 @@
   required unsigned short index;
 };
 
-[Constructor(USBTransferStatus status, optional DataView? data)]
+[
+  Constructor(USBTransferStatus status, optional DataView? data),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBInTransferResult {
   readonly attribute DataView? data;
   readonly attribute USBTransferStatus status;
 };
 
-[Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0)]
+[
+  Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBOutTransferResult {
   readonly attribute unsigned long bytesWritten;
   readonly attribute USBTransferStatus status;
 };
 
-[Constructor(USBTransferStatus status, optional DataView? data)]
+[
+  Constructor(USBTransferStatus status, optional DataView? data),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBIsochronousInTransferPacket {
   readonly attribute DataView? data;
   readonly attribute USBTransferStatus status;
 };
 
-[Constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data)]
+[
+  Constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBIsochronousInTransferResult {
   readonly attribute DataView? data;
   readonly attribute FrozenArray<USBIsochronousInTransferPacket> packets;
 };
 
-[Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0)]
+[
+  Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBIsochronousOutTransferPacket {
   readonly attribute unsigned long bytesWritten;
   readonly attribute USBTransferStatus status;
 };
 
-[Constructor(sequence<USBIsochronousOutTransferPacket> packets)]
+[
+  Constructor(sequence<USBIsochronousOutTransferPacket> packets),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBIsochronousOutTransferResult {
   readonly attribute FrozenArray<USBIsochronousOutTransferPacket> packets;
 };
 
-[Constructor(USBDevice device, octet configurationValue)]
+[
+  Constructor(USBDevice device, octet configurationValue),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBConfiguration {
   readonly attribute octet configurationValue;
   readonly attribute DOMString? configurationName;
   readonly attribute FrozenArray<USBInterface> interfaces;
 };
 
-[Constructor(USBConfiguration configuration, octet interfaceNumber)]
+[
+  Constructor(USBConfiguration configuration, octet interfaceNumber),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBInterface {
   readonly attribute octet interfaceNumber;
   readonly attribute USBAlternateInterface alternate;
@@ -146,7 +180,10 @@
   readonly attribute boolean claimed;
 };
 
-[Constructor(USBInterface deviceInterface, octet alternateSetting)]
+[
+  Constructor(USBInterface deviceInterface, octet alternateSetting),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBAlternateInterface {
   readonly attribute octet alternateSetting;
   readonly attribute octet interfaceClass;
@@ -167,7 +204,10 @@
   "isochronous"
 };
 
-[Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction)]
+[
+  Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction),
+  Exposed=(DedicatedWorker, SharedWorker, Window)
+]
 interface USBEndpoint {
   readonly attribute octet endpointNumber;
   readonly attribute USBDirection direction;
diff --git a/keyboard-map/OWNERS b/keyboard-map/OWNERS
new file mode 100644
index 0000000..0389138
--- /dev/null
+++ b/keyboard-map/OWNERS
@@ -0,0 +1 @@
+@garykac
diff --git a/lint.whitelist b/lint.whitelist
index ce825bf..f3bf0e1 100644
--- a/lint.whitelist
+++ b/lint.whitelist
@@ -79,7 +79,7 @@
 # None of these are actually Ahem
 AHEM COPY: fonts/ahem-extra/AHEM_*.TTF
 
-# https://github.com/w3c/web-platform-tests/issues/7437
+# https://github.com/web-platform-tests/wpt/issues/7437
 AHEM COPY: css/vendor-imports/mozilla/mozilla-central-reftests/*/Ahem.ttf
 
 ## Test exclusions ##
@@ -214,7 +214,7 @@
 SET TIMEOUT: xhr/resources/xmlhttprequest-timeout.js
 
 # generate_tests implementation and sample usage
-GENERATE_TESTS: resources/test/tests/generate-callback.html
+GENERATE_TESTS: resources/test/tests/functional/generate-callback.html
 GENERATE_TESTS: resources/testharness.js
 
 # generate_tests usage (should be got rid of)
@@ -289,9 +289,9 @@
 SET TIMEOUT: html/dom/documents/dom-tree-accessors/Document.currentScript.html
 SET TIMEOUT: html/webappapis/timers/*
 SET TIMEOUT: resources/chromium/*
-SET TIMEOUT: resources/test/tests/add_cleanup.html
-SET TIMEOUT: resources/test/tests/api-tests-1.html
-SET TIMEOUT: resources/test/tests/worker.js
+SET TIMEOUT: resources/test/tests/functional/add_cleanup.html
+SET TIMEOUT: resources/test/tests/functional/api-tests-1.html
+SET TIMEOUT: resources/test/tests/functional/worker.js
 SET TIMEOUT: resources/testharness.js
 
 # setTimeout use in reftests
@@ -765,26 +765,10 @@
 MISSING-LINK: css/cssom-view/scrollIntoView-smooth.html
 MISSING-LINK: css/cssom-view/scrollTop-display-change.html
 
-# TODO https://github.com/w3c/web-platform-tests/issues/5770
+# TODO https://github.com/web-platform-tests/wpt/issues/5770
 MISSING-LINK: css/geometry/*.worker.js
 MISSING-LINK: css/filter-effects/*.any.js
 
 # Tests that use WebKit/Blink testing APIs
 LAYOUTTESTS APIS: css/css-regions/interactivity/*
 LAYOUTTESTS APIS: resources/chromium/generic_sensor_mocks.js
-
-# Existing use of WEB-PLATFORM.TEST
-WEB-PLATFORM.TEST: clear-site-data/support/test_utils.sub.js
-WEB-PLATFORM.TEST: content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html
-WEB-PLATFORM.TEST: content-security-policy/generic/generic-0_8.sub.html
-WEB-PLATFORM.TEST: content-security-policy/generic/generic-0_8_1.sub.html
-WEB-PLATFORM.TEST: content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.html
-WEB-PLATFORM.TEST: content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.html
-WEB-PLATFORM.TEST: fetch/api/request/request-structure.html
-WEB-PLATFORM.TEST: html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html
-WEB-PLATFORM.TEST: html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html
-WEB-PLATFORM.TEST: html/semantics/forms/the-label-element/label-attributes.html
-WEB-PLATFORM.TEST: navigation-timing/nav2_test_attributes_values.html
-WEB-PLATFORM.TEST: navigation-timing/nav2_test_instance_accessors.html
-WEB-PLATFORM.TEST: webrtc/RTCPeerConnection-getIdentityAssertion.html
-WEB-PLATFORM.TEST: webrtc/identity-helper.js
diff --git a/media-capabilities/idlharness.html b/media-capabilities/idlharness.html
index c4b0b99..67a6294 100644
--- a/media-capabilities/idlharness.html
+++ b/media-capabilities/idlharness.html
@@ -11,81 +11,26 @@
 </head>
 <body>
 <h1>Media Session IDL tests</h1>
-<pre id='untested_idl' style='display:none'>
-[Global=Window, Exposed=Window]
-interface Window {
-};
-interface Worker {
-};
-interface Navigator {
-};
-interface WorkerNavigator {
-};
-</pre>
-<pre id='idl'>
-dictionary MediaConfiguration {
-  VideoConfiguration video;
-  AudioConfiguration audio;
-};
-
-dictionary MediaDecodingConfiguration : MediaConfiguration {
-  required MediaDecodingType type;
-};
-
-dictionary MediaEncodingConfiguration : MediaConfiguration {
-  required MediaEncodingType type;
-};
-
-enum MediaDecodingType {
-  "file",
-  "media-source",
-};
-
-dictionary VideoConfiguration {
-  required DOMString contentType;
-  required unsigned long width;
-  required unsigned long height;
-  required unsigned long bitrate;
-  required double framerate;
-};
-
-dictionary AudioConfiguration {
-  required DOMString contentType;
-  DOMString channels;
-  unsigned long bitrate;
-  unsigned long samplerate;
-};
-
-interface MediaCapabilitiesInfo {
-  readonly attribute boolean supported;
-  readonly attribute boolean smooth;
-  readonly attribute boolean powerEfficient;
-};
-
-[Exposed=(Window)]
-partial interface Navigator {
-  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
-};
-
-[Exposed=(Worker)]
-partial interface WorkerNavigator {
-  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
-};
-
-[Exposed=(Window, Worker)]
-interface MediaCapabilities {
-  Promise<MediaCapabilitiesInfo> decodingInfo(MediaDecodingConfiguration configuration);
-  Promise<MediaCapabilitiesInfo> encodingInfo(MediaEncodingConfiguration configuration);
-};
-</pre>
 <script>
-var idl_array = new IdlArray();
-idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
-idl_array.add_idls(document.getElementById("idl").textContent);
-idl_array.add_objects({
-  Navigator: ["navigator"]
-});
-idl_array.test();
+"use strict";
+function doTest([media_capabilities]) {
+    var idl_array = new IdlArray();
+    idl_array.add_untested_idls('interface Navigator {};');
+    idl_array.add_untested_idls('interface WorkerNavigator {};');
+    idl_array.add_untested_idls('interface Screen {};');
+    idl_array.add_idls(media_capabilities);
+    idl_array.add_objects({
+      Navigator: ["navigator"]
+    });
+    idl_array.test();
+}
+function fetchText(url) {
+    return fetch(url).then((response) => response.text());
+}
+promise_test(() => {
+    return Promise.all(["/interfaces/media-capabilities.idl"].map(fetchText))
+                  .then(doTest);
+}, "Test IDL implementation of Media Capabilities");
 </script>
 <div id="log"></div>
 </body>
diff --git a/media-source/mediasource-append-buffer.html b/media-source/mediasource-append-buffer.html
index f1866c0..7245f64 100644
--- a/media-source/mediasource-append-buffer.html
+++ b/media-source/mediasource-append-buffer.html
@@ -586,6 +586,37 @@
               test.done();
           }, "Test appending after removeSourceBuffer().");
 
+          mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
+          {
+              // Media elements using MSE should not fire the stalled event. See discussion at
+              // https://github.com/w3c/media-source/issues/88#issuecomment-374406928
+              mediaElement.addEventListener("stalled", test.unreached_func("Unexpected 'stalled' event."));
+
+              // Prime the media element with initial appends.
+              var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init);
+              var mediaSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.media[0]);
+              test.expectEvent(sourceBuffer, "updateend", "initSegment append ended.");
+              sourceBuffer.appendBuffer(initSegment);
+              test.waitForExpectedEvents(function()
+              {
+                  assert_equals(mediaSource.readyState, "open", "readyState is open after init segment appended.");
+                  test.expectEvent(sourceBuffer, "updateend", "mediaSegment append ended.");
+                  sourceBuffer.appendBuffer(mediaSegment);
+              });
+
+              // Verify state and wait for the 'stalled' event.
+              test.waitForExpectedEvents(function()
+              {
+                  assert_equals(sourceBuffer.buffered.length, 1, "sourceBuffer has a buffered range");
+                  assert_equals(mediaSource.readyState, "open", "readyState is open after media segment appended.");
+
+                  // Set timeout to 4 seconds. This creates an opportunity for UAs to _improperly_ fire the stalled event.
+                  // For media elements doing progressive download (not MSE), stalled is thrown after ~3 seconds of the
+                  // download failing to progress.
+                  test.step_timeout(function() { test.done(); }, 4000);
+              });
+          }, "Test slow appending does not trigger stalled events.");
+
         </script>
     </body>
 </html>
diff --git a/mediacapture-record/OWNERS b/mediacapture-record/OWNERS
index ae22475..284f2b4 100644
--- a/mediacapture-record/OWNERS
+++ b/mediacapture-record/OWNERS
@@ -1 +1 @@
-@miguelao
\ No newline at end of file
+@yellowdoge
diff --git a/mediacapture-streams/MediaStreamTrack-getCapabilities.https.html b/mediacapture-streams/MediaStreamTrack-getCapabilities.https.html
index d928370..6eea999 100644
--- a/mediacapture-streams/MediaStreamTrack-getCapabilities.https.html
+++ b/mediacapture-streams/MediaStreamTrack-getCapabilities.https.html
@@ -11,6 +11,7 @@
       var audioCapabilities = stream.getAudioTracks()[0].getCapabilities();
       var videoCapabilities = stream.getVideoTracks()[0].getCapabilities();
       assert_true(undefined !== audioCapabilities.deviceId, "MediaTrackCapabilities's deviceId should exist for an audio track.");
+      assert_true(undefined !== audioCapabilities.groupId, "MediaTrackCapabilities's groupId should exist for an audio track.");
       assert_true(undefined !== audioCapabilities.echoCancellation, "MediaTrackCapabilities's echoCancellation should exist for an audio track.");
       assert_true(undefined !== audioCapabilities.autoGainControl, "MediaTrackCapabilities's autoGainControl should exist for an audio track.");
       assert_true(undefined !== audioCapabilities.noiseSuppression, "MediaTrackCapabilities's noiseSuppression should exist for an audio track.");
diff --git a/mediasession/idlharness.html b/mediasession/idlharness.html
index 4991404..ead06dc 100644
--- a/mediasession/idlharness.html
+++ b/mediasession/idlharness.html
@@ -11,78 +11,28 @@
 </head>
 <body>
 <h1>Media Session IDL tests</h1>
-
-<pre id='untested_idl' style='display:none'>
-[Global=Window, Exposed=Global]
-interface Window {
-};
-
-interface Navigator {
-};
-</pre>
-
-<pre id='idl'>
-[Exposed=Window]
-partial interface Navigator {
-  [SameObject] readonly attribute MediaSession mediaSession;
-};
-
-enum MediaSessionPlaybackState {
-  "none",
-  "paused",
-  "playing"
-};
-
-enum MediaSessionAction {
-  "play",
-  "pause",
-  "seekbackward",
-  "seekforward",
-  "previoustrack",
-  "nexttrack",
-};
-
-callback MediaSessionActionHandler = void();
-
-[Exposed=Window]
-interface MediaSession {
-  attribute MediaMetadata? metadata;
-
-  attribute MediaSessionPlaybackState playbackState;
-
-  void setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
-};
-
-[Constructor(optional MediaMetadataInit init), Exposed=Window]
-interface MediaMetadata {
-  attribute DOMString title;
-  attribute DOMString artist;
-  attribute DOMString album;
-  attribute FrozenArray<MediaImage> artwork;
-};
-
-dictionary MediaMetadataInit {
-  DOMString title = "";
-  DOMString artist = "";
-  DOMString album = "";
-  sequence<MediaImage> artwork = [];
-};
-
-dictionary MediaImage {
-  required USVString src;
-  DOMString sizes = "";
-  DOMString type = "";
-};
-</pre>
 <script>
-var idl_array = new IdlArray();
-idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
-idl_array.add_idls(document.getElementById("idl").textContent);
-idl_array.add_objects({
-  MediaMetadata: [new MediaMetadata()],
-  Navigator: ["navigator"]
-});
-idl_array.test();
+"use strict";
+
+function doTest([mediasession]) {
+    var idl_array = new IdlArray();
+    idl_array.add_untested_idls('interface Navigator {};');
+    idl_array.add_idls(mediasession);
+    idl_array.add_objects({
+      MediaMetadata: ["new MediaMetadata()"],
+      Navigator: ["navigator"]
+    });
+    idl_array.test();
+}
+
+function fetchText(url) {
+    return fetch(url).then((response) => response.text());
+}
+
+promise_test(() => {
+    return Promise.all(["/interfaces/mediasession.idl"].map(fetchText))
+                  .then(doTest);
+}, "Test IDL implementation of Media Session");
 </script>
 <div id="log"></div>
 </body>
diff --git a/mimesniff/mime-types/README.md b/mimesniff/mime-types/README.md
index b0b1fbf..89e1bf4 100644
--- a/mimesniff/mime-types/README.md
+++ b/mimesniff/mime-types/README.md
@@ -15,7 +15,7 @@
 function isByteCompatible(str) {
   for(let i = 0; i < str.length; i++) {
     const charCode = str.charCodeAt(i);
-    // See https://github.com/w3c/web-platform-tests/issues/8372 for 0x0B and 0x0C
+    // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
     // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
     if(charCode > 0xFF) {
       return "incompatible";
diff --git a/mimesniff/mime-types/charset-parameter.window.js b/mimesniff/mime-types/charset-parameter.window.js
index 7b4e946..c288de8 100644
--- a/mimesniff/mime-types/charset-parameter.window.js
+++ b/mimesniff/mime-types/charset-parameter.window.js
@@ -6,7 +6,7 @@
 function isByteCompatible(str) {
   for(let i = 0; i < str.length; i++) {
     const charCode = str.charCodeAt(i);
-    // See https://github.com/w3c/web-platform-tests/issues/8372 for 0x0B and 0x0C
+    // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
     // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
     if(charCode > 0xFF) {
       return "incompatible";
diff --git a/mimesniff/mime-types/parsing.any.js b/mimesniff/mime-types/parsing.any.js
index bd9a62e..beacada 100644
--- a/mimesniff/mime-types/parsing.any.js
+++ b/mimesniff/mime-types/parsing.any.js
@@ -10,7 +10,7 @@
 function isByteCompatible(str) {
   for(let i = 0; i < str.length; i++) {
     const charCode = str.charCodeAt(i);
-    // See https://github.com/w3c/web-platform-tests/issues/8372 for 0x0B and 0x0C
+    // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
     // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
     if(charCode > 0xFF) {
       return "incompatible";
diff --git a/navigation-timing/nav2_test_attributes_values.html b/navigation-timing/nav2_test_attributes_values.html
index 6f46a4a..79809e4 100644
--- a/navigation-timing/nav2_test_attributes_values.html
+++ b/navigation-timing/nav2_test_attributes_values.html
@@ -7,12 +7,23 @@
         <link rel="help" href="http://www.w3.org/TR/navigation-timing-2/#sec-PerformanceNavigationTiming"/>
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/common/get-host-info.sub.js"></script>
     </head>
     <body>
         <h1>Description</h1>
         <p>This test validates that the values of nav timing 2 instance's timing-related attributes are in certain order and the others are of expected values.</p>
 
         <script>
+        // Host names and ports may be configured at test execution time. The
+        // web-platform-tests server offers two mechanisms for retrieving these
+        // values dynamically: direct text substitution and the `get-host-info`
+        // script. The former is inapproprate for this test because it
+        // influences the size of the document, and this test includes static
+        // assertions for that value.
+        var host_info = get_host_info();
+        var expectedUrl = "http://" + host_info.ORIGINAL_HOST + ":" +
+            host_info.HTTP_PORT +
+            "/navigation-timing/nav2_test_attributes_values.html";
         var navTiming2EventOrder1 = [
             'startTime',
             'redirectStart',
@@ -81,7 +92,7 @@
                     var entries = entryList.getEntries();
                     assert_equals(entries[0].entryType, "navigation",
                         "Expected entryType to be: navigation.");
-                    assert_equals(entries[0].name, "http://web-platform.test:8001/navigation-timing/nav2_test_attributes_values.html");
+                    assert_equals(entries[0].name, expectedUrl);
                     assert_equals(entries[0].startTime, 0,
                         "Expected startTime to be: 0.");
                     assert_equals(entries[0].duration, entries[0].loadEventEnd,
@@ -93,8 +104,8 @@
                     // running this test.
                     assert_true(entries[0].transferSize > entries[0].encodedBodySize,
                         "Expected transferSize to be greater than encodedBodySize in uncached navigation.");
-                    assert_equals(entries[0].encodedBodySize, 5328);
-                    assert_equals(entries[0].decodedBodySize, 5328);
+                    assert_equals(entries[0].encodedBodySize, 5955);
+                    assert_equals(entries[0].decodedBodySize, 5955);
                     verifyTimingEventOrder(entries[0], navTiming2EventOrder1);
                     // Verify if the reported timing is not that different
                     // from what is reported by Navigation Timing 1.
diff --git a/navigation-timing/nav2_test_instance_accessors.html b/navigation-timing/nav2_test_instance_accessors.html
index 19e31ca..a8fbfb4 100644
--- a/navigation-timing/nav2_test_instance_accessors.html
+++ b/navigation-timing/nav2_test_instance_accessors.html
@@ -7,12 +7,16 @@
         <link rel="help" href="http://www.w3.org/TR/navigation-timing-2/#sec-PerformanceNavigationTiming"/>
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
+        <script src="/common/get-host-info.sub.js"></script>
     </head>
     <body>
         <h1>Description</h1>
         <p>This test validates that nav timing 2 instance can be accessed by three different accessors once available: window.performance.getEntries()/getEntriesByType("navigation")/getEntriesByName("document")</p>
 
         <script>
+        var host_info = get_host_info();
+        var expectedUrl = "http://" + host_info.ORIGINAL_HOST + ":" +
+            host_info.HTTP_PORT + "/navigation-timing/nav2_test_instance_accessors.html";
         var navTiming2Attributes = [
             'connectEnd',
             'connectStart',
@@ -50,10 +54,10 @@
                 t.step_func(function (entryList) {
                     var instance1 = performance.getEntries()[0];
                     var instance2 = performance.getEntriesByType("navigation")[0];
-                    var instance3 = performance.getEntriesByName("http://web-platform.test:8001/navigation-timing/nav2_test_instance_accessors.html")[0];
+                    var instance3 = performance.getEntriesByName(expectedUrl)[0];
 
                     assert_equals(performance.getEntriesByType("navigation").length, 1, "Expected there is only one navigation timing instance.");
-                    assert_equals(performance.getEntriesByName("http://web-platform.test:8001/navigation-timing/nav2_test_instance_accessors.html").length, 1, "Expected there is only one navigation timing instance.");
+                    assert_equals(performance.getEntriesByName(expectedUrl).length, 1, "Expected there is only one navigation timing instance.");
 
                     for (var i = 0; i < navTiming2Attributes.length; i++) {
                         assert_equals(instance1[navTiming2Attributes[i]], instance2[navTiming2Attributes[i]]);
diff --git a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.html b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.html
index 0377410..fd8ea50 100644
--- a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.html
+++ b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.html
@@ -21,7 +21,6 @@
     var ctx = offscreenCanvas.getContext('2d');
     ctx.fillStyle = "#0f0";
     ctx.fillRect(0, 0, 10, 10);
-    ctx.commit();
     // commit() propagation is taken care of by an async task, which means the
     // place holder contents should still be transparent black at this moment.
     verifyPlaceholder(placeholder, 0,0,0,0, "0,0,0,0");
@@ -36,8 +35,7 @@
     var ctx = offscreenCanvas.getContext('2d');
     ctx.fillStyle = "#0f0";
     ctx.fillRect(0, 0, 10, 10);
-    assert_throws("InvalidStateError", function() { ctx.commit(); });
-}, "Test that calling commit on an OffscreenCanvas that is not transferred from a HTMLCanvasElement throws an exception.");
+    ctx.commit();
+}, "Test that calling commit on an OffscreenCanvas that is not transferred from a HTMLCanvasElement is a noop.");
 
 </script>
-
diff --git a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html
index 380686f..3b1eac8 100644
--- a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html
+++ b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html
@@ -6,8 +6,7 @@
 
 <script id="myWorker" type="text/worker">
 
-function testCommitPushesContents(offscreenCanvas)
-{
+function testCommitPushesContents(offscreenCanvas) {
   try {
     var ctx = offscreenCanvas.getContext('2d');
     ctx.fillStyle = "#0f0";
@@ -19,24 +18,12 @@
   }
 }
 
-function isInvalidStateError(funcStr, ctx)
-{
-    try {
-        eval(funcStr);
-    } catch (e) {
-        if (e instanceof DOMException && e.name == "InvalidStateError")
-            return true;
-        return false;
-    }
-}
-
-function testCommitException()
-{
+function testCommitException() {
     var offscreenCanvas = new OffscreenCanvas(10, 10);
     var ctx = offscreenCanvas.getContext('2d');
     ctx.fillStyle = "#0f0";
     ctx.fillRect(0, 0, 10, 10);
-    return isInvalidStateError("ctx.commit()", ctx);
+    return true;
 }
 
 self.onmessage = function(e) {
@@ -54,8 +41,7 @@
 
 <script>
 
-function verifyPlaceholder(placeholder)
-{
+function verifyPlaceholder(placeholder) {
     var canvas = document.createElement('canvas');
     canvas.width = canvas.height = 10;
     var ctx = canvas.getContext('2d');
@@ -63,8 +49,7 @@
     _assertPixel(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255");
 }
 
-function makeWorker(script)
-{
+function makeWorker(script) {
     var blob = new Blob([script]);
     return new Worker(URL.createObjectURL(blob));
 }
diff --git a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.resize.html b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.resize.html
index 3d40129..5770309 100644
--- a/offscreen-canvas/the-offscreen-canvas/offscreencanvas.resize.html
+++ b/offscreen-canvas/the-offscreen-canvas/offscreencanvas.resize.html
@@ -100,7 +100,6 @@
     assert_equals(placeholder.height, 20);
   });
   var asyncStepsCompleted = 0;
-  ctx.commit();
   createImageBitmap(placeholder).then(image => {
     t.step(function() {
       // Verify that the placeholder was not updated synchronously.
@@ -112,29 +111,33 @@
       t.done();
     }
   });
-  // Set timeout acts as a sync barrier to allow commit to propagate
-  setTimeout(function(){
-    t.step(function() {
-      // Verify that commit() asynchronously updates the size of its placeholder canvas.
-      assert_equals(placeholder.width, 30);
-      assert_equals(placeholder.height, 40);
-      var computedStyle = window.getComputedStyle(placeholder);
-      assert_equals(computedStyle.getPropertyValue('width'), "30px");
-      assert_equals(computedStyle.getPropertyValue('height'), "40px");
-    });
-    createImageBitmap(placeholder).then(image => {
+  // We wait for up to 3 frames before checking the information has propagated.
+  requestAnimationFrame(() => {
+    requestAnimationFrame(() => {
+      requestAnimationFrame(() => {
       t.step(function() {
-        // Verify that an image grabbed from the placeholder has the correct dimensions
-        assert_equals(image.width, 30);
-        assert_equals(image.height, 40);
+        // Verify that updates the size of its placeholder canvas.
+        assert_equals(placeholder.width, 30);
+        assert_equals(placeholder.height, 40);
+        var computedStyle = window.getComputedStyle(placeholder);
+        assert_equals(computedStyle.getPropertyValue('width'), "30px");
+        assert_equals(computedStyle.getPropertyValue('height'), "40px");
       });
-      asyncStepsCompleted = asyncStepsCompleted + 1;
-      if (asyncStepsCompleted == 2) {
-        t.done();
-      }
+      createImageBitmap(placeholder).then(image => {
+        t.step(function() {
+          // Verify that an image grabbed from the placeholder has the correct dimensions
+          assert_equals(image.width, 30);
+          assert_equals(image.height, 40);
+        });
+        asyncStepsCompleted = asyncStepsCompleted + 1;
+        if (asyncStepsCompleted == 2) {
+          t.done();
+        }
+      });
     });
-  }, 0);
-}, "Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously, upon commit.");
+    });
+  });
+}, "Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously.");
 
 async_test(function(t) {
   var placeholder = document.createElement('canvas');
@@ -159,7 +162,6 @@
     assert_equals(placeholder.height, 20);
   });
   var asyncStepsCompleted = 0;
-  ctx.commit();
   createImageBitmap(placeholder).then(image => {
     t.step(function() {
       // Verify that the placeholder was not updated synchronously.
@@ -171,29 +173,33 @@
       t.done();
     }
   });
-  // Set timeout acts as a sync barrier to allow commit to propagate
-  setTimeout(function(){
-    t.step(function() {
-      // Verify that commit() asynchronously updates the size of its placeholder canvas.
-      assert_equals(placeholder.width, 30);
-      assert_equals(placeholder.height, 40);
-      var computedStyle = window.getComputedStyle(placeholder);
-      assert_equals(computedStyle.getPropertyValue('width'), "30px");
-      assert_equals(computedStyle.getPropertyValue('height'), "40px");
-    });
-    createImageBitmap(placeholder).then(image => {
-      t.step(function() {
-        // Verify that an image grabbed from the placeholder has the correct dimensions
-        assert_equals(image.width, 30);
-        assert_equals(image.height, 40);
+  // We wait for up to 3 frames before checking the information has propagated.
+  requestAnimationFrame(() => {
+    requestAnimationFrame(() => {
+      requestAnimationFrame(() => {
+        t.step(function() {
+          // Verify that updates the size of its placeholder canvas.
+          assert_equals(placeholder.width, 30);
+          assert_equals(placeholder.height, 40);
+          var computedStyle = window.getComputedStyle(placeholder);
+          assert_equals(computedStyle.getPropertyValue('width'), "30px");
+          assert_equals(computedStyle.getPropertyValue('height'), "40px");
+        });
+        createImageBitmap(placeholder).then(image => {
+          t.step(function() {
+            // Verify that an image grabbed from the placeholder has the correct dimensions
+            assert_equals(image.width, 30);
+            assert_equals(image.height, 40);
+          });
+          asyncStepsCompleted = asyncStepsCompleted + 1;
+          if (asyncStepsCompleted == 2) {
+            t.done();
+          }
+        });
       });
-      asyncStepsCompleted = asyncStepsCompleted + 1;
-      if (asyncStepsCompleted == 2) {
-        t.done();
-      }
     });
-  }, 0);
-}, "Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously, upon commit.");
+  });
+}, "Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously.");
 
 async_test(function(t){
   var placeholder = document.createElement('canvas');
@@ -204,24 +210,27 @@
   offscreen.width = offscreen.height = 10;
   ctx.fillStyle = '#0f0';
   ctx.fillRect(0, 0, 10, 10);
-  ctx.commit();
-  // Set timeout acts as a sync barrier to allow commit to propagate
-  setTimeout(function(){
-    var testCanvas = document.createElement('canvas');
-    testCanvas.width = testCanvas.height = 20;
-    testCtx = testCanvas.getContext('2d');
-    testCtx.drawImage(placeholder, 0, 0);
-    var pixel1 = testCtx.getImageData(9, 9, 1, 1).data;
-    var pixel2 = testCtx.getImageData(9, 10, 1, 1).data;
-    var pixel3 = testCtx.getImageData(10, 9, 1, 1).data;
-    t.step(function() {
-      assert_equals(placeholder.width, 10);
-      assert_equals(placeholder.height, 10);
-      assert_array_equals(pixel1, [0, 255, 0, 255]);
-      assert_array_equals(pixel2, [0, 0, 0, 0]);
-      assert_array_equals(pixel3, [0, 0, 0, 0]);
+  // We wait for up to 3 frames before checking the information has propagated.
+  requestAnimationFrame(() => {
+    requestAnimationFrame(() => {
+      requestAnimationFrame(() => {
+        var testCanvas = document.createElement('canvas');
+        testCanvas.width = testCanvas.height = 20;
+        testCtx = testCanvas.getContext('2d');
+        testCtx.drawImage(placeholder, 0, 0);
+        var pixel1 = testCtx.getImageData(9, 9, 1, 1).data;
+        var pixel2 = testCtx.getImageData(9, 10, 1, 1).data;
+        var pixel3 = testCtx.getImageData(10, 9, 1, 1).data;
+        t.step(function() {
+          assert_equals(placeholder.width, 10);
+          assert_equals(placeholder.height, 10);
+          assert_array_equals(pixel1, [0, 255, 0, 255]);
+          assert_array_equals(pixel2, [0, 0, 0, 0]);
+          assert_array_equals(pixel3, [0, 0, 0, 0]);
+        });
+        t.done();
+      });
     });
-    t.done();
   });
-}, "Verify that drawImage uses the size of the committed frame as the intinsic size of a placeholder canvas.");
+}, "Verify that drawImage uses the size of the frame as the intinsic size of a placeholder canvas.");
 </script>
diff --git a/orientation-event/deviceorientationabsoluteevent.html b/orientation-event/deviceorientationabsoluteevent.html
index 6ec4927..8ccf671 100644
--- a/orientation-event/deviceorientationabsoluteevent.html
+++ b/orientation-event/deviceorientationabsoluteevent.html
@@ -20,7 +20,7 @@
             assert_equals(e.alpha, null, "alpha is set to null");
             assert_equals(e.beta, null, "beta is set to null");
             assert_equals(e.gamma, null, "gamma is set to null");
-            assert_false(e.absolute, "absolute is set to false");
+            assert_true(e.absolute, "absolute is set to true");
           });
           t.done();
         }
diff --git a/payment-method-basic-card/empty-data-manual.https.html b/payment-method-basic-card/empty-data-manual.https.html
index 692f31e..1dee4af 100644
--- a/payment-method-basic-card/empty-data-manual.https.html
+++ b/payment-method-basic-card/empty-data-manual.https.html
@@ -134,6 +134,6 @@
 </ol>
 
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html b/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html
index f767044..0b3f953 100644
--- a/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html
+++ b/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html
@@ -104,6 +104,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html b/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
index 563f953..94f5d33 100644
--- a/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
+++ b/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
@@ -188,6 +188,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html b/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
index 2f870a9..f02c40f 100644
--- a/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
+++ b/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
@@ -92,6 +92,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html b/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
index 6451715..a6f8184 100644
--- a/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
+++ b/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
@@ -182,6 +182,6 @@
 </section>
 
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html b/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
index dd3d8f1..c24350d 100644
--- a/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
+++ b/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
@@ -264,6 +264,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html b/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
index fe88759..0ac2478 100644
--- a/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
+++ b/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
@@ -110,6 +110,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/algorithms-manual.https.html b/payment-request/algorithms-manual.https.html
index 2e4140a..a405905 100644
--- a/payment-request/algorithms-manual.https.html
+++ b/payment-request/algorithms-manual.https.html
@@ -161,6 +161,6 @@
 </section>
 
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/change-shipping-option-manual.https.html b/payment-request/change-shipping-option-manual.https.html
index eefc45f..e70ac2a 100644
--- a/payment-request/change-shipping-option-manual.https.html
+++ b/payment-request/change-shipping-option-manual.https.html
@@ -89,6 +89,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/change-shipping-option-select-last-manual.https.html b/payment-request/change-shipping-option-select-last-manual.https.html
index eb1957f..2d6e1e6 100644
--- a/payment-request/change-shipping-option-select-last-manual.https.html
+++ b/payment-request/change-shipping-option-select-last-manual.https.html
@@ -87,6 +87,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-request-canmakepayment-method-manual.https.html b/payment-request/payment-request-canmakepayment-method-manual.https.html
index caf43d1..0311e84 100644
--- a/payment-request/payment-request-canmakepayment-method-manual.https.html
+++ b/payment-request/payment-request-canmakepayment-method-manual.https.html
@@ -191,6 +191,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-request-show-method-manual.https.html b/payment-request/payment-request-show-method-manual.https.html
index fab78f4..5c710da 100644
--- a/payment-request/payment-request-show-method-manual.https.html
+++ b/payment-request/payment-request-show-method-manual.https.html
@@ -90,6 +90,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/complete-method-manual.https.html b/payment-request/payment-response/complete-method-manual.https.html
index 509fa4d..3b6d9ad 100644
--- a/payment-request/payment-response/complete-method-manual.https.html
+++ b/payment-request/payment-response/complete-method-manual.https.html
@@ -79,6 +79,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/methodName-attribute-manual.https.html b/payment-request/payment-response/methodName-attribute-manual.https.html
index cd25e94..840d330 100644
--- a/payment-request/payment-response/methodName-attribute-manual.https.html
+++ b/payment-request/payment-response/methodName-attribute-manual.https.html
@@ -23,6 +23,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/payerEmail-attribute-manual.https.html b/payment-request/payment-response/payerEmail-attribute-manual.https.html
index c7eaf65..676542a 100644
--- a/payment-request/payment-response/payerEmail-attribute-manual.https.html
+++ b/payment-request/payment-response/payerEmail-attribute-manual.https.html
@@ -43,6 +43,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/payerName-attribute-manual.https.html b/payment-request/payment-response/payerName-attribute-manual.https.html
index b2636e3..b4950d2 100644
--- a/payment-request/payment-response/payerName-attribute-manual.https.html
+++ b/payment-request/payment-response/payerName-attribute-manual.https.html
@@ -43,6 +43,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/payerPhone-attribute-manual.https.html b/payment-request/payment-response/payerPhone-attribute-manual.https.html
index c74f45e..3a5710a 100644
--- a/payment-request/payment-response/payerPhone-attribute-manual.https.html
+++ b/payment-request/payment-response/payerPhone-attribute-manual.https.html
@@ -43,6 +43,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/requestId-attribute-manual.https.html b/payment-request/payment-response/requestId-attribute-manual.https.html
index 653ed55..8047743 100644
--- a/payment-request/payment-response/requestId-attribute-manual.https.html
+++ b/payment-request/payment-response/requestId-attribute-manual.https.html
@@ -29,6 +29,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/shippingAddress-attribute-manual.https.html b/payment-request/payment-response/shippingAddress-attribute-manual.https.html
index b5a4082..c8f5c72 100644
--- a/payment-request/payment-response/shippingAddress-attribute-manual.https.html
+++ b/payment-request/payment-response/shippingAddress-attribute-manual.https.html
@@ -96,6 +96,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/payment-response/shippingOption-attribute-manual.https.html b/payment-request/payment-response/shippingOption-attribute-manual.https.html
index eec7a4d..15d1a48 100644
--- a/payment-request/payment-response/shippingOption-attribute-manual.https.html
+++ b/payment-request/payment-response/shippingOption-attribute-manual.https.html
@@ -38,6 +38,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/shipping-address-changed-manual.https.html b/payment-request/shipping-address-changed-manual.https.html
index 1ce6e52..03d8fac 100644
--- a/payment-request/shipping-address-changed-manual.https.html
+++ b/payment-request/shipping-address-changed-manual.https.html
@@ -80,6 +80,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/show-method-optional-promise-rejects-manual.https.html b/payment-request/show-method-optional-promise-rejects-manual.https.html
index 1a3b5fe..888942f 100644
--- a/payment-request/show-method-optional-promise-rejects-manual.https.html
+++ b/payment-request/show-method-optional-promise-rejects-manual.https.html
@@ -276,6 +276,6 @@
 </ol>
 
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/show-method-optional-promise-resolves-manual.https.html b/payment-request/show-method-optional-promise-resolves-manual.https.html
index 6ec74bb..5d1bf2f 100644
--- a/payment-request/show-method-optional-promise-resolves-manual.https.html
+++ b/payment-request/show-method-optional-promise-resolves-manual.https.html
@@ -314,6 +314,6 @@
 </ol>
 
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/show-method-postmessage-manual.https.html b/payment-request/show-method-postmessage-manual.https.html
index 0a7f37f..a848ee6 100644
--- a/payment-request/show-method-postmessage-manual.https.html
+++ b/payment-request/show-method-postmessage-manual.https.html
@@ -75,7 +75,7 @@
 <iframe width="100%" id="iframe" src="show-method-postmessage-iframe.html" allowpaymentrequest></iframe>
 <p>
   <small>
-    If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-    and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+    If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+    and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
   </small>
 </p>
diff --git a/payment-request/updateWith-method-pmi-handling-manual.https.html b/payment-request/updateWith-method-pmi-handling-manual.https.html
index adc3d6a..1374557 100644
--- a/payment-request/updateWith-method-pmi-handling-manual.https.html
+++ b/payment-request/updateWith-method-pmi-handling-manual.https.html
@@ -126,6 +126,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/user-abort-algorithm-manual.https.html b/payment-request/user-abort-algorithm-manual.https.html
index bfc83ab..7eb4cff 100644
--- a/payment-request/user-abort-algorithm-manual.https.html
+++ b/payment-request/user-abort-algorithm-manual.https.html
@@ -65,6 +65,6 @@
   </li>
 </ol>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/payment-request/user-accepts-payment-request-algo-manual.https.html b/payment-request/user-accepts-payment-request-algo-manual.https.html
index c4d390f..07a09be 100644
--- a/payment-request/user-accepts-payment-request-algo-manual.https.html
+++ b/payment-request/user-accepts-payment-request-algo-manual.https.html
@@ -215,6 +215,6 @@
   </ol>
 </section>
 <small>
-  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
-  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
+  If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
+  and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>.
 </small>
diff --git a/picture-in-picture/resources/picture-in-picture-helpers.js b/picture-in-picture/resources/picture-in-picture-helpers.js
index 4538c83..ee8e1c2 100644
--- a/picture-in-picture/resources/picture-in-picture-helpers.js
+++ b/picture-in-picture/resources/picture-in-picture-helpers.js
@@ -14,13 +14,17 @@
   });
 }
 
-function loadVideo() {
-  return new Promise(resolve => {
-    let video = document.createElement('video');
-    video.src = '/media/movie_5.ogv';
+function loadVideo(activeDocument, sourceUrl) {
+  return new Promise((resolve, reject) => {
+    const document = activeDocument || window.document;
+    const video = document.createElement('video');
+    video.src = sourceUrl || '/media/movie_5.ogv';
     video.onloadedmetadata = () => {
       resolve(video);
     };
+    video.onerror = error => {
+      reject(error);
+    };
   });
 }
 
@@ -28,4 +32,4 @@
 function requestPictureInPictureWithTrustedClick(videoElement) {
   return callWithTrustedClick(
       () => videoElement.requestPictureInPicture());
-}
\ No newline at end of file
+}
diff --git a/pointerevents/idlharness.html b/pointerevents/idlharness.html
index 6afcb21..90f3c1c 100644
--- a/pointerevents/idlharness.html
+++ b/pointerevents/idlharness.html
@@ -36,64 +36,13 @@
 
 interface MouseEvent {
 };
-
 </pre>
 
-<pre id='idl'>
-dictionary PointerEventInit : MouseEventInit {
-    long      pointerId = 0;
-    double    width = 1;
-    double    height = 1;
-    float     pressure = 0;
-    float     tangentialPressure = 0;
-    long      tiltX = 0;
-    long      tiltY = 0;
-    long      twist = 0;
-    DOMString pointerType = "";
-    boolean   isPrimary = false;
-};
-
-[Constructor(DOMString type, optional PointerEventInit eventInitDict)]
-interface PointerEvent : MouseEvent {
-    readonly attribute long      pointerId;
-    readonly attribute double    width;
-    readonly attribute double    height;
-    readonly attribute float     pressure;
-    readonly attribute float     tangentialPressure;
-    readonly attribute long      tiltX;
-    readonly attribute long      tiltY;
-    readonly attribute long      twist;
-    readonly attribute DOMString pointerType;
-    readonly attribute boolean   isPrimary;
-};
-
-partial interface Element {
-    void    setPointerCapture(long pointerId);
-    void    releasePointerCapture(long pointerId);
-    boolean hasPointerCapture(long pointerId);
-};
-
-partial interface GlobalEventHandlers {
-    attribute EventHandler ongotpointercapture;
-    attribute EventHandler onlostpointercapture;
-    attribute EventHandler onpointerdown;
-    attribute EventHandler onpointermove;
-    attribute EventHandler onpointerup;
-    attribute EventHandler onpointercancel;
-    attribute EventHandler onpointerover;
-    attribute EventHandler onpointerout;
-    attribute EventHandler onpointerenter;
-    attribute EventHandler onpointerleave;
-};
-
-partial interface Navigator {
-    readonly attribute long maxTouchPoints;
-};
-</pre>
 <script>
   promise_test(async function() {
     const dom = await fetch('/interfaces/dom.idl').then(r => r.text());
     const uievents = await fetch('/interfaces/uievents.idl').then(r => r.text());
+    const idl = await fetch('/interfaces/pointerevents.idl').then(r => r.text());
 
     const idl_array = new IdlArray();
     idl_array.add_untested_idls(dom, { only: ['EventInit'] });
@@ -109,8 +58,9 @@
     // Note that I don't bother including Document here because there are still
     // a bunch of differences between browsers around Document vs HTMLDocument.
     idl_array.add_objects({
-    Window: ["window"],
-    Navigator: ["navigator"]});
+      Window: ["window"],
+      Navigator: ["navigator"]
+    });
     idl_array.test();
   }, 'pointerevents interfaces');
 </script>
diff --git a/pointerlock/OWNERS b/pointerlock/OWNERS
index 640884d..95ff443 100644
--- a/pointerlock/OWNERS
+++ b/pointerlock/OWNERS
@@ -1,2 +1,2 @@
 @scheib
-@siusin
\ No newline at end of file
+@siusin
diff --git a/pointerlock/idlharness.html b/pointerlock/idlharness.html
deleted file mode 100644
index aa876f5..0000000
--- a/pointerlock/idlharness.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Pointer Lock IDL tests</title>
-<link rel="author" title="W3C" href="http://www.w3.org/" />
-<link rel="help" href="http://www.w3.org/TR/pointerlock/#element-interface"/>
-<link rel="help" href="http://www.w3.org/TR/pointerlock/#extensions-to-the-document-interface">
-<link rel="help" href="http://www.w3.org/TR/pointerlock/#extensions-to-the-mouseevent-interface">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-</head>
-
-<body>
-<h1>Pointer Lock IDL tests</h1>
-
-<pre id='untested_idl' style='display:none'>
-
-interface EventTarget {
-};
-
-interface Node : EventTarget {
-};
-
-interface Element : Node {
-};
-
-interface Document : Node {
-};
-
-interface Event {
-};
-
-interface MouseEvent : Event {
-};
-</pre>
-
-<pre id='idl'>
-
-partial interface Element {
-    void requestPointerLock ();
-};
-
-partial interface Document {
-                attribute EventHandler onpointerlockchange;
-                attribute EventHandler onpointerlockerror;
-    readonly    attribute Element?     pointerLockElement;
-    void exitPointerLock ();
-};
-
-partial interface MouseEvent {
-    readonly    attribute long movementX;
-    readonly    attribute long movementY;
-};
-
-partial dictionary MouseEventInit {
-        long movementX = 0;
-        long movementY = 0;
-};
-
-
-</pre>
-
-<div id="log"></div>
-
-<script>
-
-var idl_array = new IdlArray();
-
-setup(function() {
-	idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
-	idl_array.add_idls(document.getElementById("idl").textContent);
-
-	idl_array.add_objects({ Document: ["window.document"],
-                            Element: ["window.document.documentElement"],
-                            MouseEvent: ["new MouseEvent('mousemove')", "new MouseEvent('pointerlockchange')"] });
-});
-
-idl_array.test();
-
-</script>
-</body>
-</html>
diff --git a/pointerlock/interfaces.window.js b/pointerlock/interfaces.window.js
new file mode 100644
index 0000000..2aa5a01
--- /dev/null
+++ b/pointerlock/interfaces.window.js
@@ -0,0 +1,26 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+'use strict';
+
+// https://w3c.github.io/pointerlock/
+
+promise_test(async () => {
+  const html = await fetch('/interfaces/html.idl').then(r => r.text());
+  const dom = await fetch('/interfaces/dom.idl').then(r => r.text());
+  const uievents = await fetch('/interfaces/uievents.idl').then(r => r.text());
+  const idl = await fetch('/interfaces/pointerlock.idl').then(r => r.text());
+
+  const idl_array = new IdlArray();
+  idl_array.add_idls(idl);
+  idl_array.add_dependency_idls(uievents);
+  idl_array.add_dependency_idls(dom);
+  idl_array.add_dependency_idls(html);
+
+  idl_array.add_objects({
+    Document: ["window.document"],
+    Element: ["window.document.documentElement"],
+    MouseEvent: ["new MouseEvent('foo')"]
+  });
+  idl_array.test();
+}, 'pointerlock interfaces.');
diff --git a/presentation-api/OWNERS b/presentation-api/OWNERS
index 47731cf..cd77c0e 100644
--- a/presentation-api/OWNERS
+++ b/presentation-api/OWNERS
@@ -1,3 +1,3 @@
 @louaybassbouss
 @tidoust
-@zqzhang
\ No newline at end of file
+@zqzhang
diff --git a/remote-playback/idlharness.html b/remote-playback/idlharness.html
index 274771a..7220b15 100644
--- a/remote-playback/idlharness.html
+++ b/remote-playback/idlharness.html
@@ -43,7 +43,7 @@
   return Promise.all(
     [
       "/interfaces/html.idl",
-      "/interfaces/remoteplayback.idl",
+      "/interfaces/remote-playback.idl",
     ].map(url => fetch(url).then(r => r.text())))
       .then(doTest);
 }, "Test driver");
diff --git a/resource-timing/resource_initiator_types.html b/resource-timing/resource_initiator_types.html
index d593f13..9912da7 100644
--- a/resource-timing/resource_initiator_types.html
+++ b/resource-timing/resource_initiator_types.html
@@ -111,14 +111,14 @@
     addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=object', 'object');
     addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=video-poster', 'video');
     addEntryIfExists(entries, expected_entries, '/media/test.mp4?id=video-src', 'video');
-    addEntryIfExists(entries, expected_entries, '/media/test.mp4?id=video-source', 'source');
-    addEntryIfExists(entries, expected_entries, '/media/test.ogv?id=video-source', 'source');
+    addEntryIfExists(entries, expected_entries, '/media/test.mp4?id=video-source', 'video');
+    addEntryIfExists(entries, expected_entries, '/media/test.ogv?id=video-source', 'video');
     addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=video-track', 'track');
     addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-src', 'audio');
-    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-wav', 'source');
-    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-mpeg', 'source');
-    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-ogg', 'source');
-    addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=picture-source', 'source');
+    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-wav', 'audio');
+    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-mpeg', 'audio');
+    addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=audio-source-ogg', 'audio');
+    addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=picture-source', 'img');
     addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=picture-img', 'img');
     addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=picture-notsupported-img', 'img');
     addEntryIfExists(entries, expected_entries, pathname + 'blue.png?id=picture-img-src', 'img');
@@ -133,7 +133,7 @@
     addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=beacon', 'beacon');
     addEntryIfExists(entries, expected_entries, pathname + 'empty.py?id=fetch', 'fetch');
     addEntryIfExists(entries, expected_entries, pathname + 'empty.py?favicon', 'link');
-    addEntryIfExists(entries, expected_entries, pathname + 'eventsource.py?id=eventsource', 'eventsource');
+    addEntryIfExists(entries, expected_entries, pathname + 'eventsource.py?id=eventsource', 'other');
 
     test_resource_entries(entries, expected_entries);
     done();
diff --git a/resources/chromium/web-bluetooth-test.js b/resources/chromium/web-bluetooth-test.js
index 1700b04..f0eba0f 100644
--- a/resources/chromium/web-bluetooth-test.js
+++ b/resources/chromium/web-bluetooth-test.js
@@ -522,5 +522,5 @@
 } catch {
     throw 'Web Bluetooth Test API is not implemented on this ' +
         'environment. See the bluetooth README at ' +
-        'https://github.com/w3c/web-platform-tests/blob/master/bluetooth/README.md#web-bluetooth-testing';
+        'https://github.com/web-platform-tests/wpt/blob/master/bluetooth/README.md#web-bluetooth-testing';
 }
diff --git a/resources/chromium/webusb-test.js b/resources/chromium/webusb-test.js
index 502dd5c..630a7da 100644
--- a/resources/chromium/webusb-test.js
+++ b/resources/chromium/webusb-test.js
@@ -360,15 +360,17 @@
   }
 
   getDevice(guid, request) {
-    let device = this.devicesByGuid_.get(guid);
-    if (device) {
+    let retrievedDevice = this.devicesByGuid_.get(guid);
+    if (retrievedDevice) {
       let binding = new mojo.Binding(
-          window.device.mojom.UsbDevice, new FakeDevice(device.info), request);
+          device.mojom.UsbDevice,
+          new FakeDevice(retrievedDevice.info),
+          request);
       binding.setConnectionErrorHandler(() => {
-        if (device.fakeDevice.onclose)
-          device.fakeDevice.onclose();
+        if (retrievedDevice.fakeDevice.onclose)
+          retrievedDevice.fakeDevice.onclose();
       });
-      device.bindingArray.push(binding);
+      retrievedDevice.bindingArray.push(binding);
     } else {
       request.close();
     }
diff --git a/resources/idlharness.js b/resources/idlharness.js
index d413c51..e83c4bf 100644
--- a/resources/idlharness.js
+++ b/resources/idlharness.js
@@ -258,11 +258,14 @@
     });
     this.partials.map(p => p.name).forEach(v => all_deps.add(v));
     // Add the attribute idlTypes of all the nested members of all tested idls.
-    Object.values(this.members).filter(m => !m.untested && m.members).forEach(parsed => {
-        Object.values(parsed.members).filter(m => m.type === 'attribute').forEach(m => {
-            all_deps.add(m.idlType.idlType);
-        });
-    });
+    for (const obj of [this.members, this.partials]) {
+        const tested = Object.values(obj).filter(m => !m.untested && m.members);
+        for (const parsed of tested) {
+            for (const attr of Object.values(parsed.members).filter(m => !m.untested && m.type === 'attribute')) {
+                all_deps.add(attr.idlType.idlType);
+            }
+        }
+    }
 
     if (options && options.except && options.only) {
         throw new IdlHarnessError("The only and except options can't be used together.");
diff --git a/resources/test/README.md b/resources/test/README.md
index c228372..7388524 100644
--- a/resources/test/README.md
+++ b/resources/test/README.md
@@ -26,12 +26,12 @@
 
 ## Authoring Tests
 
-Test cases are expressed as `.html` files located within the `tests/`
-sub-directory. Each test should include the `testharness.js` library with the
-following markup:
+Test cases are expressed as `.html` files located within the `tests/unit/` and
+`tests/funtional/` sub-directories. Each test should include the
+`testharness.js` library with the following markup:
 
-    <script src="../../testharness.js"></script>
-    <script src="../../testharnessreport.js"></script>
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
 
 This should be followed by one or more `<script>` tags that interface with the
 `testharness.js` API in some way. For example:
@@ -42,8 +42,25 @@
       }, 'This test is expected to fail.');
     </script>
 
-Finally, each test may include a summary of the expected results as a JSON
-string within a `<script>` tag with an `id` of `"expected"`, e.g.:
+### Unit tests
+
+The "unit test" type allows for concisely testing the expected behavior of
+assertion methods. These tests may define any number of sub-tests; the
+acceptance criteria is simply that all tests executed pass.
+
+### Functional tests
+
+Thoroughly testing the behavior of the harness itself requires ensuring a
+number of considerations which cannot be verified with the "unit testing"
+strategy. These include:
+
+- Ensuring that some tests are not run
+- Ensuring conditions that cause test failures
+- Ensuring conditions that cause harness errors
+
+Functional tests allow for these details to be verified. Every functional test
+must include a summary of the expected results as a JSON string within a
+`<script>` tag with an `id` of `"expected"`, e.g.:
 
     <script type="text/json" id="expected">
     {
@@ -64,6 +81,3 @@
       "type": "complete"
     }
     </script>
-
-This is useful to test, for example, whether asserations that should fail or
-throw actually do.
diff --git a/resources/test/conftest.py b/resources/test/conftest.py
index abc3b6c..dc64594 100644
--- a/resources/test/conftest.py
+++ b/resources/test/conftest.py
@@ -17,8 +17,13 @@
     parser.addoption("--binary", action="store", default=None, help="path to browser binary")
 
 def pytest_collect_file(path, parent):
-    if path.ext.lower() == '.html':
-        return HTMLItem(str(path), parent)
+    if path.ext.lower() != '.html':
+        return
+
+    # Tests are organized in directories by type
+    test_type = os.path.relpath(str(path), HERE).split(os.path.sep)[1]
+
+    return HTMLItem(str(path), test_type, parent)
 
 def pytest_configure(config):
     config.driver = webdriver.Firefox(firefox_binary=config.getoption("--binary"))
@@ -28,8 +33,13 @@
     config.add_cleanup(config.driver.quit)
 
 class HTMLItem(pytest.Item, pytest.Collector):
-    def __init__(self, filename, parent):
+    def __init__(self, filename, test_type, parent):
         self.filename = filename
+        self.type = test_type
+
+        if test_type not in ('functional', 'unit'):
+            raise ValueError('Unrecognized test type: "%s"' % test_type)
+
         with io.open(filename, encoding=ENC) as f:
             markup = f.read()
 
@@ -47,6 +57,10 @@
 
         if not name:
             raise ValueError('No name found in file: %s' % filename)
+        elif self.type == 'functional' and not self.expected:
+            raise ValueError('Functional tests must specify expected report data')
+        elif self.type == 'unit' and self.expected:
+            raise ValueError('Unit tests must not specify expected report data')
 
         super(HTMLItem, self).__init__(name, parent)
 
@@ -58,6 +72,29 @@
         return pytest.Collector.repr_failure(self, excinfo)
 
     def runtest(self):
+        if self.type == 'unit':
+            self._run_unit_test()
+        elif self.type == 'functional':
+            self._run_functional_test()
+        else:
+            raise NotImplementedError
+
+    def _run_unit_test(self):
+        driver = self.session.config.driver
+        server = self.session.config.server
+
+        driver.get(server.url(HARNESS))
+
+        actual = driver.execute_async_script('runTest("%s", "foo", arguments[0])' % server.url(str(self.filename)))
+
+        summarized = self._summarize(actual)
+
+        assert summarized[u'summarized_status'][u'status_string'] == u'OK', summarized[u'summarized_status'][u'message']
+        for test in summarized[u'summarized_tests']:
+            msg = "%s\n%s" % (test[u'name'], test[u'message'])
+            assert test[u'status_string'] == u'PASS', msg
+
+    def _run_functional_test(self):
         driver = self.session.config.driver
         server = self.session.config.server
 
@@ -70,20 +107,20 @@
         indices = [test_obj.get('index') for test_obj in actual['tests']]
         self._assert_sequence(indices)
 
+        summarized = self._summarize(actual)
+
+        assert summarized == self.expected
+
+    def _summarize(self, actual):
         summarized = {}
+
         summarized[u'summarized_status'] = self._summarize_status(actual['status'])
         summarized[u'summarized_tests'] = [
             self._summarize_test(test) for test in actual['tests']]
         summarized[u'summarized_tests'].sort(key=lambda test_obj: test_obj.get('name'))
         summarized[u'type'] = actual['type']
 
-        if not self.expected:
-            assert summarized[u'summarized_status'][u'status_string'] == u'OK', summarized[u'summarized_status'][u'message']
-            for test in summarized[u'summarized_tests']:
-                msg = "%s\n%s" % (test[u'name'], test[u'message'])
-                assert test[u'status_string'] == u'PASS', msg
-        else:
-            assert summarized == self.expected
+        return summarized
 
     @staticmethod
     def _assert_sequence(nums):
diff --git a/resources/test/tests/idlharness/helper.js b/resources/test/idl-helper.js
similarity index 100%
rename from resources/test/tests/idlharness/helper.js
rename to resources/test/idl-helper.js
diff --git a/resources/test/tests/add_cleanup.html b/resources/test/tests/add_cleanup.html
deleted file mode 100644
index c5e0ad7..0000000
--- a/resources/test/tests/add_cleanup.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Test#add_cleanup</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<div id="log"></div>
-<script>
-"use strict";
-
-var log_sync;
-test(function(t) {
-  log_sync = "";
-  t.add_cleanup(function() { log_sync += "1"; });
-  t.add_cleanup(function() { log_sync += "2"; });
-  t.add_cleanup(function() { log_sync += "3"; });
-  t.add_cleanup(function() { log_sync += "4"; });
-  t.add_cleanup(function() { log_sync += "5"; });
-  log_sync += "0";
-}, "probe synchronous");
-
-test(function() {
-  if (log_sync !== "012345") {
-    throw new Error("Expected: '012345'. Actual: '" + log_sync + "'.");
-  }
-}, "Cleanup methods are invoked exactly once and in the expected sequence.");
-
-var complete, log_async;
-async_test(function(t) {
-  complete = t.step_func(function() {
-    if (log_async !== "012") {
-      throw new Error("Expected: '012'. Actual: '" + log_async + "'.");
-    }
-
-    t.done();
-  });
-}, "Cleanup methods are invoked following the completion of asynchronous tests");
-
-async_test(function(t) {
-  log_async = "";
-  t.add_cleanup(function() { log_async += "1"; });
-
-  setTimeout(t.step_func(function() {
-    t.add_cleanup(function() {
-      log_async += "2";
-      complete();
-    });
-    log_async += "0";
-    t.done();
-  }), 0);
-}, "probe asynchronous");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Cleanup methods are invoked exactly once and in the expected sequence.",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Cleanup methods are invoked following the completion of asynchronous tests",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "probe asynchronous",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "probe synchronous",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/add_cleanup_count.html b/resources/test/tests/add_cleanup_count.html
deleted file mode 100644
index 3ea30a3..0000000
--- a/resources/test/tests/add_cleanup_count.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Test#add_cleanup reported count</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<div id="log"></div>
-
-<script>
-promise_test(function(t) {
-    t.add_cleanup(function() {});
-    t.add_cleanup(function() {});
-    t.add_cleanup(function() { throw new Error(); });
-    new EventWatcher(t, document.body, []);
-
-    return Promise.resolve();
-}, 'test with 3 user-defined cleanup functions');
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Test named 'test with 3 user-defined cleanup functions' specified 3 'cleanup' functions, and 1 failed."
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "test with 3 user-defined cleanup functions",
-      "message": null,
-      "properties": {}
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/add_cleanup_err.html b/resources/test/tests/add_cleanup_err.html
deleted file mode 100644
index bae1eb5..0000000
--- a/resources/test/tests/add_cleanup_err.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Test#add_cleanup: error</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<div id="log"></div>
-<script>
-"use strict";
-
-test(function(t) {
-  t.add_cleanup(function() {
-    throw new Error('exception in cleanup function');
-  });
-}, "Exception in cleanup function causes harness failure.");
-
-test(function() {}, "This test should not be run.");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Test named 'Exception in cleanup function causes harness failure.' specified 1 'cleanup' function, and 1 failed."
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Exception in cleanup function causes harness failure.",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "NOTRUN",
-      "name": "This test should not be run.",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/add_cleanup_err_multi.html b/resources/test/tests/add_cleanup_err_multi.html
deleted file mode 100644
index 3f116c5..0000000
--- a/resources/test/tests/add_cleanup_err_multi.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Test#add_cleanup: multiple functions with one in error</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<div id="log"></div>
-
-<script>
-"use strict";
-
-test(function(t) {
-    t.add_cleanup(function() {
-      throw new Error("exception in cleanup function");
-    });
-
-    // The following cleanup function defines a test so that the reported
-    // data demonstrates the intended run-time behavior, i.e. that
-    // `testharness.js` invokes all cleanup functions even when one or more
-    // throw errors.
-    t.add_cleanup(function() {
-      test(function() {}, "Verification test");
-    });
-  }, "Test with multiple cleanup functions");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Test named 'Test with multiple cleanup functions' specified 2 'cleanup' functions, and 1 failed."
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Test with multiple cleanup functions",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "NOTRUN",
-      "name": "Verification test",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/api-tests-1.html b/resources/test/tests/api-tests-1.html
deleted file mode 100644
index 3b5234f..0000000
--- a/resources/test/tests/api-tests-1.html
+++ /dev/null
@@ -1,427 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Sample HTML5 API Tests</title>
-<meta name="timeout" content="6000">
-</head>
-<body onload="load_test_attr.done()">
-<h1>Sample HTML5 API Tests</h1>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-    setup_run = false;
-    setup(function() {
-            setup_run = true;
-          });
-    test(function() {assert_true(setup_run)}, "Setup function ran");
-
-    // Two examples for testing events from handler and attributes
-    var load_test_event = async_test("window onload event fires when set from the handler");
-
-    function windowLoad()
-    {
-        load_test_event.done();
-    }
-    on_event(window, "load", windowLoad);
-
-    // see the body onload below
-    var load_test_attr = async_test("body element fires the onload event set from the attribute");
-</script>
-<script>
-    function bodyElement()
-    {
-        assert_equals(document.body, document.getElementsByTagName("body")[0]);
-    }
-    test(bodyElement, "document.body should be the first body element in the document");
-
-    test(function() {
-        assert_equals(1,1);
-        assert_equals(NaN, NaN, "NaN case");
-        assert_equals(0, 0, "Zero case");
-    }, "assert_equals tests")
-
-    test(function() {
-        assert_equals(-0, 0, "Zero case");
-    }, "assert_equals tests expected to fail")
-
-    test(function() {
-        assert_not_equals({}, {}, "object case");
-        assert_not_equals(-0, 0, "Zero case");
-    }, "assert_not_equals tests")
-
-    function testAssertPass()
-    {
-        assert_true(true);
-    }
-    test(testAssertPass, "assert_true expected to pass");
-
-    function testAssertFalse()
-    {
-        assert_true(false, "false should not be true");
-    }
-    test(testAssertFalse, "assert_true expected to fail");
-
-    function basicAssertArrayEquals()
-    {
-        assert_array_equals([1, NaN], [1, NaN], "[1, NaN] is equal to [1, NaN]");
-    }
-    test(basicAssertArrayEquals, "basic assert_array_equals test");
-
-    function assertArrayEqualsUndefined()
-    {
-        assert_array_equals(undefined, [1], "undefined equals [1]?");
-    }
-    test(assertArrayEqualsUndefined, "assert_array_equals with first param undefined");
-
-    function assertArrayEqualsTrue()
-    {
-        assert_array_equals(true, [1], "true equals [1]?");
-    }
-    test(assertArrayEqualsTrue, "assert_array_equals with first param true");
-
-    function assertArrayEqualsFalse()
-    {
-        assert_array_equals(false, [1], "false equals [1]?");
-    }
-    test(assertArrayEqualsFalse, "assert_array_equals with first param false");
-
-    function assertArrayEqualsNull()
-    {
-        assert_array_equals(null, [1], "null equals [1]?");
-    }
-    test(assertArrayEqualsNull, "assert_array_equals with first param null");
-
-    function assertArrayEqualsNumeric()
-    {
-        assert_array_equals(1, [1], "1 equals [1]?");
-    }
-    test(assertArrayEqualsNumeric, "assert_array_equals with first param 1");
-
-    function basicAssertObjectEquals()
-    {
-        assert_object_equals([1, 2, [1, 2]], { 0: 1, 1: 2, 2: { 0: 1, 1: 2} }, "array is equal to object")
-    }
-    test(basicAssertObjectEquals, "basic assert_object_equals test");
-
-    function basicAssertArrayApproxEquals()
-    {
-        assert_array_approx_equals([10, 11], [11, 10], 1, "[10, 11] is approximately (+/- 1) [11, 10]")
-    }
-    test(basicAssertArrayApproxEquals, "basic assert_array_approx_equals test");
-
-    function basicAssertApproxEquals()
-    {
-        assert_approx_equals(10, 11, 1, "10 is approximately (+/- 1) 11")
-    }
-    test(basicAssertApproxEquals, "basic assert_approx_equals test");
-
-    function basicAssertLessThan()
-    {
-        assert_less_than(10, 11, "10 is less than 11")
-    }
-    test(basicAssertApproxEquals, "basic assert_less_than test");
-
-    function basicAssertGreaterThan()
-    {
-        assert_greater_than(10, 11, "10 is not greater than 11");
-    }
-    test(basicAssertGreaterThan, "assert_greater_than expected to fail");
-
-    function basicAssertGreaterThanEqual()
-    {
-        assert_greater_than_equal(10, 10, "10 is greater than or equal to 10")
-    }
-    test(basicAssertGreaterThanEqual, "basic assert_greater_than_equal test");
-
-    function basicAssertLessThanEqual()
-    {
-        assert_greater_than_equal('10', 10, "'10' is not a number")
-    }
-    test(basicAssertLessThanEqual, "assert_less_than_equal expected to fail");
-
-    function testAssertInherits() {
-        var A = function(){this.a = "a"}
-        A.prototype = {b:"b"}
-        var a = new A();
-        assert_exists(a, "a");
-        assert_not_exists(a, "b");
-        assert_inherits(a, "b");
-    }
-    test(testAssertInherits, "test for assert[_not]_exists and insert_inherits")
-
-    test(function()
-    {
-        var a = document.createElement("a")
-        var b = document.createElement("b")
-        assert_throws("NOT_FOUND_ERR", function () {a.removeChild(b)});
-    }, "Test throw DOM exception")
-
-    test(function()
-    {
-        var a = document.createTextNode("a")
-        var b = document.createElement("b")
-        assert_throws("NOT_FOUND_ERR", function () {a.appendChild(b)});
-    }, "Test throw DOM exception expected to fail")
-
-    test(function()
-    {
-        var e = {code:0, name:"TEST_ERR", TEST_ERR:0}
-        assert_throws("TEST_ERR", function() {throw e});
-    }, "Test assert_throws with non-DOM-exception expected to Fail");
-
-    var t = async_test("Test step_func")
-    setTimeout(
-      t.step_func(
-        function () {
-          assert_true(true); t.done();
-        }), 0);
-
-    async_test(function(t) {
-        setTimeout(t.step_func(function (){assert_true(true); t.done();}), 0);
-    }, "Test async test with callback");
-
-    async_test(function() {
-        setTimeout(this.step_func(function (){assert_true(true); this.done();}), 0);
-    }, "Test async test with callback and `this` obj.");
-
-    async_test("test should timeout (fail) with the default of 2 seconds").step(function(){});
-
-    async_test("test should timeout (fail) with a custom set timeout value of 1 second",
-               {timeout:1000}).step(function(){});
-
-    async_test("async test that is never started, should have status Not Run", {timeout:1000});
-
-
-    test(function(t) {
-             window.global = 1;
-             t.add_cleanup(function() {delete window.global});
-             assert_equals(window.global, 1);
-         },
-         "Test that defines a global and cleans it up");
-
-    test(function() {assert_equals(window.global, undefined)},
-         "Test that cleanup handlers from previous test ran");
-
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "TIMEOUT",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Setup function ran",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Test assert_throws with non-DOM-exception expected to Fail",
-      "message": "Test bug: unrecognized DOMException code \"TEST_ERR\" passed to assert_throws()",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test async test with callback",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test async test with callback and `this` obj.",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test step_func",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test that cleanup handlers from previous test ran",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test that defines a global and cleans it up",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test throw DOM exception",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Test throw DOM exception expected to fail",
-      "message": "assert_throws: function \"function () {a.appendChild(b)}\" threw object \"HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy\" that is not a DOMException NOT_FOUND_ERR: property \"code\" is equal to 3, expected 8",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_array_equals with first param 1",
-      "message": "assert_array_equals: 1 equals [1]? value is 1, expected array",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_array_equals with first param false",
-      "message": "assert_array_equals: false equals [1]? value is false, expected array",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_array_equals with first param null",
-      "message": "assert_array_equals: null equals [1]? value is null, expected array",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_array_equals with first param true",
-      "message": "assert_array_equals: true equals [1]? value is true, expected array",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_array_equals with first param undefined",
-      "message": "assert_array_equals: undefined equals [1]? value is undefined, expected array",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "assert_equals tests",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_equals tests expected to fail",
-      "message": "assert_equals: Zero case expected 0 but got -0",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_greater_than expected to fail",
-      "message": "assert_greater_than: 10 is not greater than 11 expected a number greater than 11 but got 10",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_less_than_equal expected to fail",
-      "message": "assert_greater_than_equal: '10' is not a number expected a number but got a \"string\"",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "assert_not_equals tests",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "assert_true expected to fail",
-      "message": "assert_true: false should not be true expected true got false",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "assert_true expected to pass",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "NOTRUN",
-      "name": "async test that is never started, should have status Not Run",
-      "message": null,
-      "properties": {
-        "timeout": 1000
-      }
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_approx_equals test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_array_approx_equals test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_array_equals test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_greater_than_equal test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_less_than test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "basic assert_object_equals test",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "body element fires the onload event set from the attribute",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "document.body should be the first body element in the document",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "test for assert[_not]_exists and insert_inherits",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "test should timeout (fail) with a custom set timeout value of 1 second",
-      "message": "Test timed out",
-      "properties": {
-        "timeout": 1000
-      }
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "test should timeout (fail) with the default of 2 seconds",
-      "message": "Test timed out",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "window onload event fires when set from the handler",
-      "message": null,
-      "properties": {}
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/api-tests-2.html b/resources/test/tests/api-tests-2.html
deleted file mode 100644
index 164106b..0000000
--- a/resources/test/tests/api-tests-2.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Sample HTML5 API Tests</title>
-</head>
-<body>
-<h1>Sample HTML5 API Tests</h1>
-<p>There should be two results</p>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-setup({explicit_done:true})
-test(function() {assert_true(true)}, "Test defined before onload");
-
-onload = function() {test(function (){assert_true(true)}, "Test defined after onload");
-done();
-}
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Test defined after onload",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test defined before onload",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/api-tests-3.html b/resources/test/tests/api-tests-3.html
deleted file mode 100644
index 5dbeb2d..0000000
--- a/resources/test/tests/api-tests-3.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Sample HTML5 API Tests</title>
-</head>
-<script src="../../testharness.js"></script>
-
-<body>
-<h1>Sample HTML5 API Tests</h1>
-<div id="log"></div>
-<script>
-setup({explicit_timeout:true});
-var t = async_test("This test should give a status of 'Not Run' without a delay");
-timeout();
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "TIMEOUT",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "NOTRUN",
-      "name": "This test should give a status of 'Not Run' without a delay",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/force_timeout.html b/resources/test/tests/force_timeout.html
deleted file mode 100644
index 7827068..0000000
--- a/resources/test/tests/force_timeout.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Test#force_timeout</title>
-</head>
-<body>
-<h1>Test#force_timeout</h1>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-setup({ explicit_timeout: true });
-
-test(function(t) {
-    t.force_timeout();
-  }, 'test (synchronous)');
-
-async_test(function(t) {
-    t.step_timeout(function() {
-        t.force_timeout();
-      }, 0);
-  }, 'async_test');
-
-promise_test(function(t) {
-    t.force_timeout();
-
-    return new Promise(function() {});
-  }, 'promise_test');
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "TIMEOUT",
-      "name": "async_test",
-      "message": "Test timed out",
-      "properties": {}
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "promise_test",
-      "message": "Test timed out",
-      "properties": {}
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "test (synchronous)",
-      "message": "Test timed out",
-      "properties": {}
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/functional/add_cleanup.html b/resources/test/tests/functional/add_cleanup.html
new file mode 100644
index 0000000..468319f
--- /dev/null
+++ b/resources/test/tests/functional/add_cleanup.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Test#add_cleanup</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+"use strict";
+
+var log_sync;
+test(function(t) {
+  log_sync = "";
+  t.add_cleanup(function() { log_sync += "1"; });
+  t.add_cleanup(function() { log_sync += "2"; });
+  t.add_cleanup(function() { log_sync += "3"; });
+  t.add_cleanup(function() { log_sync += "4"; });
+  t.add_cleanup(function() { log_sync += "5"; });
+  log_sync += "0";
+}, "probe synchronous");
+
+test(function() {
+  if (log_sync !== "012345") {
+    throw new Error("Expected: '012345'. Actual: '" + log_sync + "'.");
+  }
+}, "Cleanup methods are invoked exactly once and in the expected sequence.");
+
+var complete, log_async;
+async_test(function(t) {
+  complete = t.step_func(function() {
+    if (log_async !== "012") {
+      throw new Error("Expected: '012'. Actual: '" + log_async + "'.");
+    }
+
+    t.done();
+  });
+}, "Cleanup methods are invoked following the completion of asynchronous tests");
+
+async_test(function(t) {
+  log_async = "";
+  t.add_cleanup(function() { log_async += "1"; });
+
+  setTimeout(t.step_func(function() {
+    t.add_cleanup(function() {
+      log_async += "2";
+      complete();
+    });
+    log_async += "0";
+    t.done();
+  }), 0);
+}, "probe asynchronous");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Cleanup methods are invoked exactly once and in the expected sequence.",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Cleanup methods are invoked following the completion of asynchronous tests",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "probe asynchronous",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "probe synchronous",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/add_cleanup_count.html b/resources/test/tests/functional/add_cleanup_count.html
new file mode 100644
index 0000000..75f9782
--- /dev/null
+++ b/resources/test/tests/functional/add_cleanup_count.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Test#add_cleanup reported count</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="log"></div>
+
+<script>
+promise_test(function(t) {
+    t.add_cleanup(function() {});
+    t.add_cleanup(function() {});
+    t.add_cleanup(function() { throw new Error(); });
+    new EventWatcher(t, document.body, []);
+
+    return Promise.resolve();
+}, 'test with 3 user-defined cleanup functions');
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Test named 'test with 3 user-defined cleanup functions' specified 3 'cleanup' functions, and 1 failed."
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "test with 3 user-defined cleanup functions",
+      "message": null,
+      "properties": {}
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/add_cleanup_err.html b/resources/test/tests/functional/add_cleanup_err.html
new file mode 100644
index 0000000..5ec6a3f
--- /dev/null
+++ b/resources/test/tests/functional/add_cleanup_err.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Test#add_cleanup: error</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+"use strict";
+
+test(function(t) {
+  t.add_cleanup(function() {
+    throw new Error('exception in cleanup function');
+  });
+}, "Exception in cleanup function causes harness failure.");
+
+test(function() {}, "This test should not be run.");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Test named 'Exception in cleanup function causes harness failure.' specified 1 'cleanup' function, and 1 failed."
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Exception in cleanup function causes harness failure.",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "NOTRUN",
+      "name": "This test should not be run.",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/add_cleanup_err_multi.html b/resources/test/tests/functional/add_cleanup_err_multi.html
new file mode 100644
index 0000000..7556829
--- /dev/null
+++ b/resources/test/tests/functional/add_cleanup_err_multi.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Test#add_cleanup: multiple functions with one in error</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="log"></div>
+
+<script>
+"use strict";
+
+test(function(t) {
+    t.add_cleanup(function() {
+      throw new Error("exception in cleanup function");
+    });
+
+    // The following cleanup function defines a test so that the reported
+    // data demonstrates the intended run-time behavior, i.e. that
+    // `testharness.js` invokes all cleanup functions even when one or more
+    // throw errors.
+    t.add_cleanup(function() {
+      test(function() {}, "Verification test");
+    });
+  }, "Test with multiple cleanup functions");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Test named 'Test with multiple cleanup functions' specified 2 'cleanup' functions, and 1 failed."
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Test with multiple cleanup functions",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "NOTRUN",
+      "name": "Verification test",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/api-tests-1.html b/resources/test/tests/functional/api-tests-1.html
new file mode 100644
index 0000000..4d9c774
--- /dev/null
+++ b/resources/test/tests/functional/api-tests-1.html
@@ -0,0 +1,427 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Sample HTML5 API Tests</title>
+<meta name="timeout" content="6000">
+</head>
+<body onload="load_test_attr.done()">
+<h1>Sample HTML5 API Tests</h1>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+    setup_run = false;
+    setup(function() {
+            setup_run = true;
+          });
+    test(function() {assert_true(setup_run)}, "Setup function ran");
+
+    // Two examples for testing events from handler and attributes
+    var load_test_event = async_test("window onload event fires when set from the handler");
+
+    function windowLoad()
+    {
+        load_test_event.done();
+    }
+    on_event(window, "load", windowLoad);
+
+    // see the body onload below
+    var load_test_attr = async_test("body element fires the onload event set from the attribute");
+</script>
+<script>
+    function bodyElement()
+    {
+        assert_equals(document.body, document.getElementsByTagName("body")[0]);
+    }
+    test(bodyElement, "document.body should be the first body element in the document");
+
+    test(function() {
+        assert_equals(1,1);
+        assert_equals(NaN, NaN, "NaN case");
+        assert_equals(0, 0, "Zero case");
+    }, "assert_equals tests")
+
+    test(function() {
+        assert_equals(-0, 0, "Zero case");
+    }, "assert_equals tests expected to fail")
+
+    test(function() {
+        assert_not_equals({}, {}, "object case");
+        assert_not_equals(-0, 0, "Zero case");
+    }, "assert_not_equals tests")
+
+    function testAssertPass()
+    {
+        assert_true(true);
+    }
+    test(testAssertPass, "assert_true expected to pass");
+
+    function testAssertFalse()
+    {
+        assert_true(false, "false should not be true");
+    }
+    test(testAssertFalse, "assert_true expected to fail");
+
+    function basicAssertArrayEquals()
+    {
+        assert_array_equals([1, NaN], [1, NaN], "[1, NaN] is equal to [1, NaN]");
+    }
+    test(basicAssertArrayEquals, "basic assert_array_equals test");
+
+    function assertArrayEqualsUndefined()
+    {
+        assert_array_equals(undefined, [1], "undefined equals [1]?");
+    }
+    test(assertArrayEqualsUndefined, "assert_array_equals with first param undefined");
+
+    function assertArrayEqualsTrue()
+    {
+        assert_array_equals(true, [1], "true equals [1]?");
+    }
+    test(assertArrayEqualsTrue, "assert_array_equals with first param true");
+
+    function assertArrayEqualsFalse()
+    {
+        assert_array_equals(false, [1], "false equals [1]?");
+    }
+    test(assertArrayEqualsFalse, "assert_array_equals with first param false");
+
+    function assertArrayEqualsNull()
+    {
+        assert_array_equals(null, [1], "null equals [1]?");
+    }
+    test(assertArrayEqualsNull, "assert_array_equals with first param null");
+
+    function assertArrayEqualsNumeric()
+    {
+        assert_array_equals(1, [1], "1 equals [1]?");
+    }
+    test(assertArrayEqualsNumeric, "assert_array_equals with first param 1");
+
+    function basicAssertObjectEquals()
+    {
+        assert_object_equals([1, 2, [1, 2]], { 0: 1, 1: 2, 2: { 0: 1, 1: 2} }, "array is equal to object")
+    }
+    test(basicAssertObjectEquals, "basic assert_object_equals test");
+
+    function basicAssertArrayApproxEquals()
+    {
+        assert_array_approx_equals([10, 11], [11, 10], 1, "[10, 11] is approximately (+/- 1) [11, 10]")
+    }
+    test(basicAssertArrayApproxEquals, "basic assert_array_approx_equals test");
+
+    function basicAssertApproxEquals()
+    {
+        assert_approx_equals(10, 11, 1, "10 is approximately (+/- 1) 11")
+    }
+    test(basicAssertApproxEquals, "basic assert_approx_equals test");
+
+    function basicAssertLessThan()
+    {
+        assert_less_than(10, 11, "10 is less than 11")
+    }
+    test(basicAssertApproxEquals, "basic assert_less_than test");
+
+    function basicAssertGreaterThan()
+    {
+        assert_greater_than(10, 11, "10 is not greater than 11");
+    }
+    test(basicAssertGreaterThan, "assert_greater_than expected to fail");
+
+    function basicAssertGreaterThanEqual()
+    {
+        assert_greater_than_equal(10, 10, "10 is greater than or equal to 10")
+    }
+    test(basicAssertGreaterThanEqual, "basic assert_greater_than_equal test");
+
+    function basicAssertLessThanEqual()
+    {
+        assert_greater_than_equal('10', 10, "'10' is not a number")
+    }
+    test(basicAssertLessThanEqual, "assert_less_than_equal expected to fail");
+
+    function testAssertInherits() {
+        var A = function(){this.a = "a"}
+        A.prototype = {b:"b"}
+        var a = new A();
+        assert_exists(a, "a");
+        assert_not_exists(a, "b");
+        assert_inherits(a, "b");
+    }
+    test(testAssertInherits, "test for assert[_not]_exists and insert_inherits")
+
+    test(function()
+    {
+        var a = document.createElement("a")
+        var b = document.createElement("b")
+        assert_throws("NOT_FOUND_ERR", function () {a.removeChild(b)});
+    }, "Test throw DOM exception")
+
+    test(function()
+    {
+        var a = document.createTextNode("a")
+        var b = document.createElement("b")
+        assert_throws("NOT_FOUND_ERR", function () {a.appendChild(b)});
+    }, "Test throw DOM exception expected to fail")
+
+    test(function()
+    {
+        var e = {code:0, name:"TEST_ERR", TEST_ERR:0}
+        assert_throws("TEST_ERR", function() {throw e});
+    }, "Test assert_throws with non-DOM-exception expected to Fail");
+
+    var t = async_test("Test step_func")
+    setTimeout(
+      t.step_func(
+        function () {
+          assert_true(true); t.done();
+        }), 0);
+
+    async_test(function(t) {
+        setTimeout(t.step_func(function (){assert_true(true); t.done();}), 0);
+    }, "Test async test with callback");
+
+    async_test(function() {
+        setTimeout(this.step_func(function (){assert_true(true); this.done();}), 0);
+    }, "Test async test with callback and `this` obj.");
+
+    async_test("test should timeout (fail) with the default of 2 seconds").step(function(){});
+
+    async_test("test should timeout (fail) with a custom set timeout value of 1 second",
+               {timeout:1000}).step(function(){});
+
+    async_test("async test that is never started, should have status Not Run", {timeout:1000});
+
+
+    test(function(t) {
+             window.global = 1;
+             t.add_cleanup(function() {delete window.global});
+             assert_equals(window.global, 1);
+         },
+         "Test that defines a global and cleans it up");
+
+    test(function() {assert_equals(window.global, undefined)},
+         "Test that cleanup handlers from previous test ran");
+
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "TIMEOUT",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Setup function ran",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Test assert_throws with non-DOM-exception expected to Fail",
+      "message": "Test bug: unrecognized DOMException code \"TEST_ERR\" passed to assert_throws()",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test async test with callback",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test async test with callback and `this` obj.",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test step_func",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test that cleanup handlers from previous test ran",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test that defines a global and cleans it up",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test throw DOM exception",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Test throw DOM exception expected to fail",
+      "message": "assert_throws: function \"function () {a.appendChild(b)}\" threw object \"HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy\" that is not a DOMException NOT_FOUND_ERR: property \"code\" is equal to 3, expected 8",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_array_equals with first param 1",
+      "message": "assert_array_equals: 1 equals [1]? value is 1, expected array",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_array_equals with first param false",
+      "message": "assert_array_equals: false equals [1]? value is false, expected array",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_array_equals with first param null",
+      "message": "assert_array_equals: null equals [1]? value is null, expected array",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_array_equals with first param true",
+      "message": "assert_array_equals: true equals [1]? value is true, expected array",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_array_equals with first param undefined",
+      "message": "assert_array_equals: undefined equals [1]? value is undefined, expected array",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "assert_equals tests",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_equals tests expected to fail",
+      "message": "assert_equals: Zero case expected 0 but got -0",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_greater_than expected to fail",
+      "message": "assert_greater_than: 10 is not greater than 11 expected a number greater than 11 but got 10",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_less_than_equal expected to fail",
+      "message": "assert_greater_than_equal: '10' is not a number expected a number but got a \"string\"",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "assert_not_equals tests",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "assert_true expected to fail",
+      "message": "assert_true: false should not be true expected true got false",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "assert_true expected to pass",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "NOTRUN",
+      "name": "async test that is never started, should have status Not Run",
+      "message": null,
+      "properties": {
+        "timeout": 1000
+      }
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_approx_equals test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_array_approx_equals test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_array_equals test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_greater_than_equal test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_less_than test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "basic assert_object_equals test",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "body element fires the onload event set from the attribute",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "document.body should be the first body element in the document",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "test for assert[_not]_exists and insert_inherits",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "test should timeout (fail) with a custom set timeout value of 1 second",
+      "message": "Test timed out",
+      "properties": {
+        "timeout": 1000
+      }
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "test should timeout (fail) with the default of 2 seconds",
+      "message": "Test timed out",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "window onload event fires when set from the handler",
+      "message": null,
+      "properties": {}
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/api-tests-2.html b/resources/test/tests/functional/api-tests-2.html
new file mode 100644
index 0000000..0c26902
--- /dev/null
+++ b/resources/test/tests/functional/api-tests-2.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Sample HTML5 API Tests</title>
+</head>
+<body>
+<h1>Sample HTML5 API Tests</h1>
+<p>There should be two results</p>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+setup({explicit_done:true})
+test(function() {assert_true(true)}, "Test defined before onload");
+
+onload = function() {test(function (){assert_true(true)}, "Test defined after onload");
+done();
+}
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Test defined after onload",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test defined before onload",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/api-tests-3.html b/resources/test/tests/functional/api-tests-3.html
new file mode 100644
index 0000000..991fc6d
--- /dev/null
+++ b/resources/test/tests/functional/api-tests-3.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Sample HTML5 API Tests</title>
+</head>
+<script src="/resources/testharness.js"></script>
+
+<body>
+<h1>Sample HTML5 API Tests</h1>
+<div id="log"></div>
+<script>
+setup({explicit_timeout:true});
+var t = async_test("This test should give a status of 'Not Run' without a delay");
+timeout();
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "TIMEOUT",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "NOTRUN",
+      "name": "This test should give a status of 'Not Run' without a delay",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/force_timeout.html b/resources/test/tests/functional/force_timeout.html
new file mode 100644
index 0000000..2058fdb
--- /dev/null
+++ b/resources/test/tests/functional/force_timeout.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Test#force_timeout</title>
+</head>
+<body>
+<h1>Test#force_timeout</h1>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+setup({ explicit_timeout: true });
+
+test(function(t) {
+    t.force_timeout();
+  }, 'test (synchronous)');
+
+async_test(function(t) {
+    t.step_timeout(function() {
+        t.force_timeout();
+      }, 0);
+  }, 'async_test');
+
+promise_test(function(t) {
+    t.force_timeout();
+
+    return new Promise(function() {});
+  }, 'promise_test');
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "TIMEOUT",
+      "name": "async_test",
+      "message": "Test timed out",
+      "properties": {}
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "promise_test",
+      "message": "Test timed out",
+      "properties": {}
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "test (synchronous)",
+      "message": "Test timed out",
+      "properties": {}
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/generate-callback.html b/resources/test/tests/functional/generate-callback.html
new file mode 100644
index 0000000..11d4174
--- /dev/null
+++ b/resources/test/tests/functional/generate-callback.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Sample for using generate_tests to create a series of tests that share the same callback.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+// generate_tests takes an array of arrays that define tests
+// but lets pass it an empty array and verify it does nothing.
+function null_callback() {
+  throw "null_callback should not be called.";
+}
+generate_tests(null_callback, []);
+
+// Generate 3 tests specifying the name and one parameter
+function validate_arguments(arg1) {
+  assert_equals(arg1, 1, "Ensure that we get our expected argument");
+}
+generate_tests(validate_arguments, [
+  ["first test", 1],
+  ["second test", 1],
+  ["third test", 1],
+]);
+
+// Generate a test passing in a properties object that is shared across tests.
+function validate_properties() {
+  assert_true(this.properties.sentinel, "Ensure that we got the right properties object.");
+}
+generate_tests(validate_properties, [["sentinel check 1"], ["sentinel check 2"]], {sentinel: true});
+
+// Generate a test passing in a properties object that is shared across tests.
+function validate_separate_properties() {
+  if (this.name === "sentinel check 1 unique properties") {
+    assert_true(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: true.");
+  }
+  else {
+    assert_false(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: false.");
+  }
+}
+generate_tests(validate_separate_properties, [["sentinel check 1 unique properties"], ["sentinel check 2 unique properties"]], [{sentinel: true}, {sentinel: false}]);
+
+// Finally generate a complicated set of tests from another data source
+var letters = ["a", "b", "c", "d", "e", "f"];
+var numbers = [0, 1, 2, 3, 4, 5];
+function validate_related_arguments(arg1, arg2) {
+  assert_equals(arg1.charCodeAt(0) - "a".charCodeAt(0), arg2, "Ensure that we can map letters to numbers.");
+}
+function format_as_test(letter, index, letters) {
+  return ["Test to map " + letter + " to " + numbers[index], letter, numbers[index]];
+}
+generate_tests(validate_related_arguments, letters.map(format_as_test));
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Test to map a to 0",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test to map b to 1",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test to map c to 2",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test to map d to 3",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test to map e to 4",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test to map f to 5",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "first test",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "second test",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "sentinel check 1",
+      "properties": {
+        "sentinel": true
+      },
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "sentinel check 1 unique properties",
+      "properties": {
+        "sentinel": true
+      },
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "sentinel check 2",
+      "properties": {
+        "sentinel": true
+      },
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "sentinel check 2 unique properties",
+      "properties": {
+        "sentinel": false
+      },
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "third test",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/idlharness/IdlInterface/test_immutable_prototype.html b/resources/test/tests/functional/idlharness/IdlInterface/test_immutable_prototype.html
new file mode 100644
index 0000000..ed578bc
--- /dev/null
+++ b/resources/test/tests/functional/idlharness/IdlInterface/test_immutable_prototype.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>idlharness: Immutable prototypes</title>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script src="/resources/WebIDLParser.js"></script>
+  <script src="/resources/idlharness.js"></script>
+</head>
+<body>
+<script>
+"use strictt";
+
+Object.defineProperty(window, "Foo", {
+    enumerable: false,
+    writable: true,
+    configurable: true,
+    value: function Foo() {}
+  });
+Object.defineProperty(window.Foo, "prototype", {
+    writable: false,
+    value: window.Foo.prototype
+  });
+Foo.prototype[Symbol.toStringTag] = "Foo";
+
+var idlArray = new IdlArray();
+idlArray.add_untested_idls("interface EventTarget {};");
+idlArray.add_idls(
+    "[Global=Window, Exposed=Window]\n" +
+    "interface Window : EventTarget {};\n" +
+
+    "[Global=Window, Exposed=Window, Constructor()]\n" +
+    "interface Foo {};"
+  );
+idlArray.add_objects({
+  Foo: ["new Foo()"],
+  Window: ["window"]
+});
+idlArray.test();
+</script>
+<script type="text/json" id="expected">
+{
+    "summarized_status": {
+        "message": null,
+        "status_string": "OK"
+    },
+    "summarized_tests": [
+        {
+            "name": "Foo interface object length",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface object name",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: existence and properties of interface object",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: existence and properties of interface prototype object",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: existence and properties of interface prototype object's \"constructor\" property",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: existence and properties of interface prototype object's @@unscopables property",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_throws: function \"function() {\n            Object.setPrototypeOf(obj, newValue);\n        }\" did not throw"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_false: expected false got true"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_throws: function \"function() {\n            obj.__proto__ = newValue;\n        }\" did not throw"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_throws: function \"function() {\n            Object.setPrototypeOf(obj, newValue);\n        }\" did not throw"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_false: expected false got true"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError",
+            "status_string": "FAIL",
+            "properties": {},
+            "message": "assert_throws: function \"function() {\n            obj.__proto__ = newValue;\n        }\" did not throw"
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Foo must be primary interface of new Foo()",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Stringification of new Foo()",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Stringification of window",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface object length",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface object name",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: existence and properties of interface object",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: existence and properties of interface prototype object",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: existence and properties of interface prototype object's \"constructor\" property",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: existence and properties of interface prototype object's @@unscopables property",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        },
+        {
+            "name": "Window must be primary interface of window",
+            "status_string": "PASS",
+            "properties": {},
+            "message": null
+        }
+    ],
+    "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/test_primary_interface_of.html b/resources/test/tests/functional/idlharness/IdlInterface/test_primary_interface_of.html
similarity index 100%
rename from resources/test/tests/idlharness/IdlInterface/test_primary_interface_of.html
rename to resources/test/tests/functional/idlharness/IdlInterface/test_primary_interface_of.html
diff --git a/resources/test/tests/functional/idlharness/IdlInterface/test_to_json_operation.html b/resources/test/tests/functional/idlharness/IdlInterface/test_to_json_operation.html
new file mode 100644
index 0000000..5c60465
--- /dev/null
+++ b/resources/test/tests/functional/idlharness/IdlInterface/test_to_json_operation.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>IdlInterface.prototype.test_to_json_operation()</title>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script src="/resources/WebIDLParser.js"></script>
+  <script src="/resources/idlharness.js"></script>
+  <script src="../../../../idl-helper.js"></script>
+</head>
+<body>
+<script>
+    "use strict";
+    function wrap(member, obj) {
+        function F(obj) {
+            this._obj = obj;
+        }
+
+        F.prototype.toJSON = function() {
+            return this._obj;
+        }
+        Object.defineProperty(F, 'name', { value: member.name });
+        return new F(obj);
+    }
+
+    var i, obj;
+    i = interfaceFrom("interface A { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, { foo: 123 }), i.members[0]);
+
+    // should fail (wrong type)
+    i = interfaceFrom("interface B { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, { foo: "a value" }), i.members[0]);
+
+    // should handle extraneous attributes (e.g. from an extension specification)
+    i = interfaceFrom("interface C { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, { foo: 123, bar: 456 }), i.members[0]);
+
+    // should fail (missing property)
+    i = interfaceFrom("interface D { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, { }), i.members[0]);
+
+    // should fail (should be writable)
+    obj = Object.defineProperties({}, { foo: {
+        writable: false,
+        enumerable: true,
+        configurable: true,
+        value: 123
+    }});
+    i = interfaceFrom("interface F { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, obj), i.members[0]);
+
+    // should fail (should be enumerable)
+    obj = Object.defineProperties({}, { foo: {
+        writable: true,
+        enumerable: false,
+        configurable: true,
+        value: 123
+    }});
+    i = interfaceFrom("interface G { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, obj), i.members[0]);
+
+    // should fail (should be configurable)
+    obj = Object.defineProperties({}, { foo: {
+        writable: true,
+        enumerable: true,
+        configurable: false,
+        value: 123
+    }});
+    i = interfaceFrom("interface H { [Default] object toJSON(); attribute long foo; };");
+    i.test_to_json_operation(wrap(i, obj), i.members[0]);
+
+    var idl = new IdlArray();
+    idl.add_idls("interface I : J { [Default] object toJSON(); attribute long foo; };");
+    idl.add_idls("interface J { [Default] object toJSON(); attribute DOMString foo;};");
+    var i = idl.members.I;
+    i.test_to_json_operation(wrap(i, { foo: 123 }), i.members[0]);
+
+    i = interfaceFrom("interface K { [Default] object toJSON(); };");
+    i.test_to_json_operation(wrap(i, {}), i.members[0]);
+
+    i = interfaceFrom("interface L { DOMString toJSON(); };");
+    i.test_to_json_operation(wrap(i, "a string"), i.members[0]);
+
+    // should fail (wrong output type)
+    i = interfaceFrom("interface M { DOMString toJSON(); };");
+    i.test_to_json_operation(wrap(i, {}), i.members[0]);
+
+    // should fail (not an IDL type)
+    i = interfaceFrom("interface N { DOMException toJSON(); };");
+    i.test_to_json_operation(wrap(i, {}), i.members[0]);
+</script>
+<script type="text/json" id="expected">
+    {
+        "summarized_status": {
+            "message": null,
+            "status_string": "OK"
+        },
+        "summarized_tests": [
+            {
+                "message": null,
+                "name": "Test default toJSON operation of A",
+                "properties": {},
+                "status_string": "PASS"
+            },
+            {
+                "message": "assert_equals: expected \"number\" but got \"string\"",
+                "name": "Test default toJSON operation of B",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": null,
+                "name": "Test default toJSON operation of C",
+                "properties": {},
+                "status_string": "PASS"
+            },
+            {
+                "message": "assert_true: property \"foo\" should be present in the output of D.prototype.toJSON() expected true got false",
+                "name": "Test default toJSON operation of D",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": "assert_true: property foo should be writable expected true got false",
+                "name": "Test default toJSON operation of F",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": "assert_true: property foo should be enumerable expected true got false",
+                "name": "Test default toJSON operation of G",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": "assert_true: property foo should be configurable expected true got false",
+                "name": "Test default toJSON operation of H",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": null,
+                "name": "Test default toJSON operation of I",
+                "properties": {},
+                "status_string": "PASS"
+            },
+            {
+                "message": null,
+                "name": "Test default toJSON operation of K",
+                "properties": {},
+                "status_string": "PASS"
+            },
+            {
+                "message": null,
+                "name": "Test toJSON operation of L",
+                "properties": {},
+                "status_string": "PASS"
+            },
+            {
+                "message": "assert_equals: expected \"string\" but got \"object\"",
+                "name": "Test toJSON operation of M",
+                "properties": {},
+                "status_string": "FAIL"
+            },
+            {
+                "message": "assert_true: {\"type\":\"return-type\",\"sequence\":false,\"generic\":null,\"nullable\":false,\"union\":false,\"idlType\":\"DOMException\"} is not an appropriate return value for the toJSON operation of N expected true got false",
+                "name": "Test toJSON operation of N",
+                "properties": {},
+                "status_string": "FAIL"
+            }
+        ],
+        "type": "complete"
+    }
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/iframe-callback.html b/resources/test/tests/functional/iframe-callback.html
new file mode 100644
index 0000000..f49d0aa
--- /dev/null
+++ b/resources/test/tests/functional/iframe-callback.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with iframe that notifies containing document via callbacks</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body onload="start_test_in_iframe()">
+<h1>Callbacks From Tests Running In An IFRAME</h1>
+<p>A test is run inside an <tt>iframe</tt> with a same origin document. The
+containing document should receive callbacks as the tests progress inside the
+<tt>iframe</tt>. A single passing test is expected in the summary below.
+<div id="log"></div>
+
+<script>
+var callbacks = [];
+var START = 1
+var TEST_STATE = 2
+var RESULT = 3
+var COMPLETION = 4
+var test_complete = false;
+
+setup({explicit_done: true});
+
+// The following callbacks are called for tests in this document as well as the
+// tests in the IFRAME. Currently, callbacks invoked from this document and any
+// child document are indistinguishable from each other.
+
+function start_callback(properties) {
+    callbacks.push(START);
+}
+
+function test_state_callback(test) {
+    callbacks.push(TEST_STATE);
+}
+
+function result_callback(test) {
+    callbacks.push(RESULT);
+}
+
+function completion_callback(tests, status) {
+    if (test_complete) {
+        return;
+    }
+    test_complete = true;
+    callbacks.push(COMPLETION);
+    verify_received_callbacks();
+    done();
+}
+
+function verify_received_callbacks() {
+    var copy_of_callbacks = callbacks.slice(0);
+
+    // Note that you can't run test assertions directly in a callback even if
+    // this is a file test. When the callback is invoked from a same-origin child
+    // page, the callstack reaches into the calling child document. Any
+    // exception thrown in a callback will be handled by the child rather than
+    // this document.
+    test(
+        function() {
+            // callbacks list should look like:
+            //     START 1*(TEST_STATE) RESULT COMPLETION
+            assert_equals(copy_of_callbacks.shift(), START,
+                          "The first received callback should be 'start_callback'.");
+            assert_equals(copy_of_callbacks.shift(), TEST_STATE,
+                          "'test_state_callback' should be received before any " +
+                          "result or completion callbacks.");
+            while(copy_of_callbacks.length > 0) {
+                var callback = copy_of_callbacks.shift();
+                if (callback != TEST_STATE) {
+                    copy_of_callbacks.unshift(callback);
+                    break;
+                }
+            }
+            assert_equals(copy_of_callbacks.shift(), RESULT,
+                          "'test_state_callback' should be followed by 'result_callback'.");
+            assert_equals(copy_of_callbacks.shift(), COMPLETION,
+                          "Final 'result_callback' should be followed by 'completion_callback'.");
+            assert_equals(copy_of_callbacks.length, 0,
+                          "'completion_callback' should be the last callback.");
+        });
+}
+
+function start_test_in_iframe() {
+    // This document is going to clear any received callbacks and maintain
+    // radio silence until the test in the iframe runs to completion. The
+    // completion_callback() will then complete the testing on this document.
+    callbacks.length = 0;
+    var iframe = document.createElement("iframe");
+    // single-page-test-pass.html has a single test.
+    iframe.src = "single-page-test-pass.html";
+    iframe.style.setProperty("display", "none");
+    document.getElementById("target").appendChild(iframe);
+}
+</script>
+
+<div id="target">
+</div>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Example with iframe that notifies containing document via callbacks",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
diff --git a/resources/test/tests/functional/iframe-consolidate-errors.html b/resources/test/tests/functional/iframe-consolidate-errors.html
new file mode 100644
index 0000000..67655fd
--- /dev/null
+++ b/resources/test/tests/functional/iframe-consolidate-errors.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with iframe that consolidates errors via fetch_tests_from_window</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+var parent_test = async_test("Test executing in parent context");
+</script>
+</head>
+<body onload="parent_test.done()">
+<h1>Fetching Tests From a Child Context</h1>
+<p>This test demonstrates the use of <tt>fetch_tests_from_window</tt> to pull
+tests from an <tt>iframe</tt> into the primary document.</p>
+<p>The test suite is expected to fail due to an unhandled exception in the
+child context.</p>
+<div id="log"></div>
+
+<iframe id="childContext" src="uncaught-exception-handle.html" style="display:none"></iframe>
+<!-- apisample4.html is a failing suite due to an unhandled Error. -->
+
+<script>
+  var childContext = document.getElementById("childContext");
+  fetch_tests_from_window(childContext.contentWindow);
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Error in remote: Error: Example Error"
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Test executing in parent context",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/iframe-consolidate-tests.html b/resources/test/tests/functional/iframe-consolidate-tests.html
new file mode 100644
index 0000000..0fa1f20
--- /dev/null
+++ b/resources/test/tests/functional/iframe-consolidate-tests.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with iframe that consolidates tests via fetch_tests_from_window</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+var parent_test = async_test("Test executing in parent context");
+</script>
+</head>
+<body onload="parent_test.done()">
+<h1>Fetching Tests From a Child Context</h1>
+<p>This test demonstrates the use of <tt>fetch_tests_from_window</tt> to pull
+tests from an <tt>iframe</tt> into the primary document.</p>
+<p>The test suite will not complete until tests in the child context have finished
+executing</p>
+<div id="log"></div>
+
+<iframe id="childContext" src="promise-async.html" style="display:none"></iframe>
+<!-- promise-async.html has async tests with promises -->
+
+<script>
+  var childContext = document.getElementById("childContext");
+  fetch_tests_from_window(childContext.contentWindow);
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Promise rejection",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promise resolution",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Promises and test assertion failures (should fail)",
+      "properties": {},
+      "message": "assert_true: This failure is expected expected true got false"
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promises are supported in your browser",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promises resolution chaining",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test executing in parent context",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Use of step_func with Promises",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Use of unreached_func with Promises (should fail)",
+      "properties": {},
+      "message": "assert_unreached: This failure is expected Reached unreachable code"
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/iframe-msg.html b/resources/test/tests/functional/iframe-msg.html
new file mode 100644
index 0000000..283a5d9
--- /dev/null
+++ b/resources/test/tests/functional/iframe-msg.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with iframe that notifies containing document via cross document messaging</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<h1>Notifications From Tests Running In An IFRAME</h1>
+<p>A test is run inside an <tt>iframe</tt> with a same origin document. The
+containing document should receive messages via <tt>postMessage</tt>/
+<tt>onmessage</tt> as the tests progress inside the <tt>iframe</tt>. A single
+passing test is expected in the summary below.
+</p>
+<div id="log"></div>
+
+<script>
+var t = async_test("Containing document receives messages");
+var start_received = false;
+var result_received = false;
+var completion_received = false;
+
+// These are the messages that are expected to be seen while running the tests
+// in the IFRAME.
+var expected_messages = [
+    t.step_func(
+        function(message) {
+            assert_equals(message.data.type, "start");
+            assert_own_property(message.data, "properties");
+        }),
+
+    t.step_func(
+        function(message) {
+            assert_equals(message.data.type, "test_state");
+            assert_equals(message.data.test.status, message.data.test.NOTRUN);
+        }),
+
+    t.step_func(
+        function(message) {
+            assert_equals(message.data.type, "result");
+            assert_equals(message.data.test.status, message.data.test.PASS);
+        }),
+
+    t.step_func(
+        function(message) {
+            assert_equals(message.data.type, "complete");
+            assert_equals(message.data.tests.length, 1);
+            assert_equals(message.data.tests[0].status,
+                          message.data.tests[0].PASS);
+            assert_equals(message.data.status.status, message.data.status.OK);
+            t.done();
+        }),
+
+    t.unreached_func("Too many messages received")
+];
+
+on_event(window,
+         "message",
+         function(message) {
+             var handler = expected_messages.shift();
+             handler(message);
+         });
+</script>
+<iframe src="single-page-test-pass.html" style="display:none">
+  <!-- single-page-test-pass.html implements a file_is_test test. -->
+</iframe>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Containing document receives messages",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
diff --git a/resources/test/tests/functional/order.html b/resources/test/tests/functional/order.html
new file mode 100644
index 0000000..6863838
--- /dev/null
+++ b/resources/test/tests/functional/order.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Ordering</title>
+<meta name="timeout" content="6000">
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(function() {}, 'second');
+test(function() {}, 'first');
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [{
+    "status_string": "PASS",
+    "name": "first",
+    "message": null,
+    "properties": {}
+  }, {
+    "status_string": "PASS",
+    "name": "second",
+    "message": null,
+    "properties": {}
+  }],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/promise-async.html b/resources/test/tests/functional/promise-async.html
new file mode 100644
index 0000000..fa82665
--- /dev/null
+++ b/resources/test/tests/functional/promise-async.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Async Tests and Promises</title>
+</head>
+<body>
+<h1>Async Tests and Promises</h1>
+<p>This test assumes ECMAScript 6 Promise support. Some failures are expected.</p>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+test(function() {
+  var p = new Promise(function(resolve, reject) {});
+  assert_true('then' in p);
+  assert_equals(typeof Promise.resolve, 'function');
+  assert_equals(typeof Promise.reject, 'function');
+}, "Promises are supported in your browser");
+
+(function() {
+  var t = async_test("Promise resolution");
+  t.step(function() {
+    Promise.resolve('x').then(
+      t.step_func(function(value) {
+        assert_equals(value, 'x');
+        t.done();
+      }),
+      t.unreached_func('Promise should not reject')
+    );
+  });
+}());
+
+(function() {
+  var t = async_test("Promise rejection");
+  t.step(function() {
+    Promise.reject(Error('fail')).then(
+      t.unreached_func('Promise should reject'),
+      t.step_func(function(reason) {
+        assert_true(reason instanceof Error);
+        assert_equals(reason.message, 'fail');
+        t.done();
+      })
+    );
+  });
+}());
+
+(function() {
+  var t = async_test("Promises resolution chaining");
+  t.step(function() {
+    var resolutions = [];
+    Promise.resolve('a').then(
+      t.step_func(function(value) {
+        resolutions.push(value);
+        return 'b';
+      })
+    ).then(
+      t.step_func(function(value) {
+        resolutions.push(value);
+        return 'c';
+      })
+    ).then(
+      t.step_func(function(value) {
+        resolutions.push(value);
+
+        assert_array_equals(resolutions, ['a', 'b', 'c']);
+        t.done();
+      })
+    ).catch(
+      t.unreached_func('promise should not have rejected')
+    );
+  });
+}());
+
+(function() {
+  var t = async_test("Use of step_func with Promises");
+  t.step(function() {
+    var resolutions = [];
+    Promise.resolve('x').then(
+      t.step_func_done(),
+      t.unreached_func('Promise should not have rejected')
+    );
+  });
+}());
+
+(function() {
+  var t = async_test("Promises and test assertion failures (should fail)");
+  t.step(function() {
+    var resolutions = [];
+    Promise.resolve('x').then(
+      t.step_func(function(value) {
+        assert_true(false, 'This failure is expected');
+      })
+    ).then(
+      t.unreached_func('Promise should not have resolved')
+    ).catch(
+      t.unreached_func('Promise should not have rejected')
+    );
+  });
+}());
+
+(function() {
+  var t = async_test("Use of unreached_func with Promises (should fail)");
+  t.step(function() {
+    var resolutions = [];
+    var r;
+    var p = new Promise(function(resolve, reject) {
+      // Reject instead of resolve, to demonstrate failure.
+      reject(123);
+    });
+    p.then(
+      function(value) {
+        assert_equals(value, 123, 'This should not actually happen');
+      },
+      t.unreached_func('This failure is expected')
+    );
+  });
+}());
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Promise rejection",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promise resolution",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Promises and test assertion failures (should fail)",
+      "properties": {},
+      "message": "assert_true: This failure is expected expected true got false"
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promises are supported in your browser",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promises resolution chaining",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Use of step_func with Promises",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Use of unreached_func with Promises (should fail)",
+      "properties": {},
+      "message": "assert_unreached: This failure is expected Reached unreachable code"
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/promise.html b/resources/test/tests/functional/promise.html
new file mode 100644
index 0000000..bbda011
--- /dev/null
+++ b/resources/test/tests/functional/promise.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Promise Tests</title>
+</head>
+<body>
+<h1>Promise Tests</h1>
+<p>This test demonstrates the use of <tt>promise_test</tt>. Assumes ECMAScript 6
+Promise support. Some failures are expected.</p>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(
+    function() {
+        var p = new Promise(function(resolve, reject){});
+        assert_true("then" in p);
+        assert_equals(typeof Promise.resolve, "function");
+        assert_equals(typeof Promise.reject, "function");
+    },
+    "Promises are supported in your browser");
+
+promise_test(
+    function() {
+        return Promise.resolve("x")
+            .then(
+                function(value) {
+                    assert_equals(value,
+                                  "x",
+                                  "Fulfilled promise should pass result to " +
+                                  "fulfill reaction.");
+                });
+    },
+    "Promise fulfillment with result");
+
+promise_test(
+    function(t) {
+        return Promise.reject(new Error("fail"))
+            .then(t.unreached_func("Promise should reject"),
+                function(reason) {
+                    assert_true(
+                        reason instanceof Error,
+                        "Rejected promise should pass reason to fulfill reaction.");
+                    assert_equals(
+                        reason.message,
+                        "fail",
+                        "Rejected promise should pass reason to reject reaction.");
+                });
+    },
+    "Promise rejection with result");
+
+promise_test(
+    function() {
+        var resolutions = [];
+        return Promise.resolve("a")
+            .then(
+                function(value) {
+                    resolutions.push(value);
+                    return "b";
+                })
+            .then(
+                function(value) {
+                    resolutions.push(value);
+                    return "c";
+                })
+            .then(
+                function(value) {
+                    resolutions.push(value);
+                    assert_array_equals(resolutions, ["a", "b", "c"]);
+                });
+    },
+    "Chain of promise resolutions");
+
+promise_test(
+    function(t) {
+        var resolutions = [];
+        return Promise.resolve("x")
+            .then(
+                function(value) {
+                    assert_true(false, "Expected failure.");
+                })
+            .then(t.unreached_func("UNEXPECTED FAILURE: Promise should not have resolved."));
+    },
+    "Assertion failure in a fulfill reaction (should FAIL with an expected failure)");
+
+promise_test(
+    function(t) {
+        return new Promise(
+                function(resolve, reject) {
+                    reject(123);
+                })
+            .then(t.unreached_func("UNEXPECTED FAILURE: Fulfill reaction reached after rejection."),
+                  t.unreached_func("Expected failure."));
+    },
+    "unreached_func as reactor (should FAIL with an expected failure)");
+
+promise_test(
+    function() {
+        return true;
+    },
+    "promise_test with function that doesn't return a Promise");
+
+promise_test(function(){},
+             "promise_test with function that doesn't return anything");
+
+promise_test(
+    function() {
+        return Promise.reject("Expected rejection");
+    },
+    "promise_test with unhandled rejection (should FAIL)");
+
+promise_test(
+    function() {
+        return Promise.resolve(10)
+            .then(
+                function(value) {
+                    throw Error("Expected exception.");
+                });
+    },
+    "promise_test with unhandled exception in fulfill reaction (should FAIL)");
+
+promise_test(
+    function(t) {
+        return Promise.reject(10)
+            .then(
+                t.unreached_func("UNEXPECTED FAILURE: Fulfill reaction reached after rejection."),
+                function(value) {
+                    throw Error("Expected exception.");
+                });
+    },
+    "promise_test with unhandled exception in reject reaction (should FAIL)");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "FAIL",
+      "name": "Assertion failure in a fulfill reaction (should FAIL with an expected failure)",
+      "message": "assert_true: Expected failure. expected true got false",
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Chain of promise resolutions",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promise fulfillment with result",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promise rejection with result",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "Promises are supported in your browser",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "PASS",
+      "name": "promise_test with function that doesn't return a Promise",
+      "message": null,
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "promise_test with function that doesn't return anything",
+      "message": "assert_not_equals: got disallowed value undefined",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "promise_test with unhandled exception in fulfill reaction (should FAIL)",
+      "message": "promise_test: Unhandled rejection with value: object \"Error: Expected exception.\"",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "promise_test with unhandled exception in reject reaction (should FAIL)",
+      "message": "promise_test: Unhandled rejection with value: object \"Error: Expected exception.\"",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "promise_test with unhandled rejection (should FAIL)",
+      "message": "promise_test: Unhandled rejection with value: \"Expected rejection\"",
+      "properties": {}
+    },
+    {
+      "status_string": "FAIL",
+      "name": "unreached_func as reactor (should FAIL with an expected failure)",
+      "message": "assert_unreached: Expected failure. Reached unreachable code",
+      "properties": {}
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/single-page-test-fail.html b/resources/test/tests/functional/single-page-test-fail.html
new file mode 100644
index 0000000..ca90aab
--- /dev/null
+++ b/resources/test/tests/functional/single-page-test-fail.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<title>Example with file_is_test (should fail)</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+onload = function() {
+  assert_true(false);
+  done();
+}
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "FAIL",
+      "name": "Example with file_is_test (should fail)",
+      "properties": {},
+      "message": "uncaught exception: Error: assert_true: expected true got false"
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/single-page-test-no-assertions.html b/resources/test/tests/functional/single-page-test-no-assertions.html
new file mode 100644
index 0000000..063a4ca
--- /dev/null
+++ b/resources/test/tests/functional/single-page-test-no-assertions.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<title>Example single page test with no asserts</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+done();
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Example single page test with no asserts",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/single-page-test-no-body.html b/resources/test/tests/functional/single-page-test-no-body.html
new file mode 100644
index 0000000..41671b8
--- /dev/null
+++ b/resources/test/tests/functional/single-page-test-no-body.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<title>Example single page test with no body</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+assert_true(true);
+done();
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Example single page test with no body",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/single-page-test-pass.html b/resources/test/tests/functional/single-page-test-pass.html
new file mode 100644
index 0000000..1376e28
--- /dev/null
+++ b/resources/test/tests/functional/single-page-test-pass.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<title>Example with file_is_test</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+onload = function() {
+  assert_true(true);
+  done();
+}
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Example with file_is_test",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
diff --git a/resources/test/tests/functional/uncaught-exception-handle.html b/resources/test/tests/functional/uncaught-exception-handle.html
new file mode 100644
index 0000000..764b0c4
--- /dev/null
+++ b/resources/test/tests/functional/uncaught-exception-handle.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Harness Handling Uncaught Exception</title>
+</head>
+<script src="/resources/testharness.js"></script>
+
+<body>
+<h1>Harness Handling Uncaught Exception</h1>
+<div id="log"></div>
+<script>
+var t = async_test("This should show a harness status of 'Error' and a test status of 'Not Run'");
+throw new Error("Example Error");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Error: Example Error"
+  },
+  "summarized_tests": [
+    {
+      "status_string": "NOTRUN",
+      "name": "This should show a harness status of 'Error' and a test status of 'Not Run'",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/uncaught-exception-ignore.html b/resources/test/tests/functional/uncaught-exception-ignore.html
new file mode 100644
index 0000000..6bd0ddb
--- /dev/null
+++ b/resources/test/tests/functional/uncaught-exception-ignore.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Harness Ignoring Uncaught Exception</title>
+</head>
+<script src="/resources/testharness.js"></script>
+
+<body>
+<h1>Harness Ignoring Uncaught Exception</h1>
+<div id="log"></div>
+<script>
+setup({allow_uncaught_exception:true});
+var t = async_test("setup({allow_uncaught_exception:true}) should allow tests to pass even if there is an exception");
+onerror = t.step_func(function() {t.done()});
+throw new Error("Example Error");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "OK",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "setup({allow_uncaught_exception:true}) should allow tests to pass even if there is an exception",
+      "properties": {},
+      "message": null
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/functional/worker-dedicated.html b/resources/test/tests/functional/worker-dedicated.html
new file mode 100644
index 0000000..dad4676
--- /dev/null
+++ b/resources/test/tests/functional/worker-dedicated.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Dedicated Worker Tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<h1>Dedicated Web Worker Tests</h1>
+<p>Demonstrates running <tt>testharness</tt> based tests inside a dedicated web worker.
+<p>The test harness is expected to fail due to an uncaught exception in one worker.</p>
+<div id="log"></div>
+
+<script>
+test(function(t) {
+        assert_true("Worker" in self, "Browser should support Workers");
+    },
+    "Browser supports Workers");
+
+fetch_tests_from_worker(new Worker("worker.js"));
+
+fetch_tests_from_worker(new Worker("worker-error.js"));
+
+test(function(t) {
+        assert_false(false, "False is false");
+    },
+    "Test running on main document.");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "ERROR",
+    "message": "Error: This failure is expected."
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Browser supports Workers",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Test running on main document.",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Untitled",
+      "properties": {},
+      "message": "Error: This failure is expected."
+    },
+    {
+      "status_string": "PASS",
+      "name": "Worker async_test that completes successfully",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Worker test that completes successfully",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "NOTRUN",
+      "name": "Worker test that doesn't run ('NOT RUN')",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Worker test that fails ('FAIL')",
+      "properties": {},
+      "message": "assert_true: Failing test expected true got false"
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "Worker test that times out ('TIMEOUT')",
+      "properties": {},
+      "message": "Test timed out"
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
diff --git a/resources/test/tests/functional/worker-error.js b/resources/test/tests/functional/worker-error.js
new file mode 100644
index 0000000..8ef2d22
--- /dev/null
+++ b/resources/test/tests/functional/worker-error.js
@@ -0,0 +1,3 @@
+importScripts("/resources/testharness.js");
+
+throw new Error("This failure is expected.");
diff --git a/resources/test/tests/functional/worker-service.html b/resources/test/tests/functional/worker-service.html
new file mode 100644
index 0000000..2e07746
--- /dev/null
+++ b/resources/test/tests/functional/worker-service.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with a service worker</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<h1>Service Worker Tests</h1>
+<p>Demonstrates running <tt>testharness</tt> based tests inside a service worker.
+<p>The test harness should time out due to one of the tests inside the worker timing out.
+<p>This test assumes that the browser supports <a href="http://www.w3.org/TR/service-workers/">ServiceWorkers</a>.
+<div id="log"></div>
+
+<script>
+test(
+    function(t) {
+        assert_true("serviceWorker" in navigator,
+                    "navigator.serviceWorker exists");
+    },
+    "Browser supports ServiceWorker");
+
+promise_test(
+    function() {
+        // Since the service worker registration could be in an indeterminate
+        // state (due to, for example, a previous test run failing), we start by
+        // unregstering our service worker and then registering it again.
+        var scope = "service-worker-scope";
+        var worker_url = "worker.js";
+
+        return navigator.serviceWorker.register(worker_url, {scope: scope})
+            .then(
+                function(registration) {
+                    return registration.unregister();
+                })
+            .then(
+                function() {
+                    return navigator.serviceWorker.register(worker_url, {scope: scope});
+                })
+            .then(
+                function(registration) {
+                    add_completion_callback(
+                        function() {
+                            registration.unregister();
+                        });
+
+                    return new Promise(
+                        function(resolve) {
+                            registration.addEventListener("updatefound",
+                                function() {
+                                    resolve(registration.installing);
+                                });
+                        });
+                })
+            .then(
+                function(worker) {
+                    fetch_tests_from_worker(worker);
+                });
+    },
+    "Register ServiceWorker");
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "TIMEOUT",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Browser supports ServiceWorker",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Register ServiceWorker",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Worker async_test that completes successfully",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "PASS",
+      "name": "Worker test that completes successfully",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "NOTRUN",
+      "name": "Worker test that doesn't run ('NOT RUN')",
+      "properties": {},
+      "message": null
+    },
+    {
+      "status_string": "FAIL",
+      "name": "Worker test that fails ('FAIL')",
+      "properties": {},
+      "message": "assert_true: Failing test expected true got false"
+    },
+    {
+      "status_string": "TIMEOUT",
+      "name": "Worker test that times out ('TIMEOUT')",
+      "properties": {},
+      "message": "Test timed out"
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
diff --git a/resources/test/tests/functional/worker-shared.html b/resources/test/tests/functional/worker-shared.html
new file mode 100644
index 0000000..e26f17d
--- /dev/null
+++ b/resources/test/tests/functional/worker-shared.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Example with a shared worker</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<h1>Shared Web Worker Tests</h1>
+<p>Demonstrates running <tt>testharness</tt> based tests inside a shared worker.
+<p>The test harness should time out due to one of the tests in the worker timing out.
+<p>This test assumes that the browser supports <a href="http://www.w3.org/TR/workers/#shared-workers-and-the-sharedworker-interface">shared web workers</a>.
+<div id="log"></div>
+
+<script>
+test(
+    function(t) {
+        assert_true("SharedWorker" in self,
+                    "Browser should support SharedWorkers");
+    },
+    "Browser supports SharedWorkers");
+
+fetch_tests_from_worker(new SharedWorker("worker.js",
+                                         "My shared worker"));
+</script>
+<script type="text/json" id="expected">
+{
+  "summarized_status": {
+    "status_string": "TIMEOUT",
+    "message": null
+  },
+  "summarized_tests": [
+    {
+      "status_string": "PASS",
+      "name": "Browser supports SharedWorkers",
+      "properties": {},
+      "message": null
+    },
+    {
+      "message": null,
+      "name": "Worker async_test that completes successfully",
+      "properties": {},
+      "status_string": "PASS"
+    },
+    {
+      "message": null,
+      "name": "Worker test that completes successfully",
+      "properties": {},
+      "status_string": "PASS"
+    },
+    {
+      "message": null,
+      "name": "Worker test that doesn't run ('NOT RUN')",
+      "properties": {},
+      "status_string": "NOTRUN"
+    },
+    {
+      "message": "assert_true: Failing test expected true got false",
+      "name": "Worker test that fails ('FAIL')",
+      "properties": {},
+      "status_string": "FAIL"
+    },
+    {
+      "message": "Test timed out",
+      "name": "Worker test that times out ('TIMEOUT')",
+      "properties": {},
+      "status_string": "TIMEOUT"
+    }
+  ],
+  "type": "complete"
+}
+</script>
+</body>
diff --git a/resources/test/tests/functional/worker.js b/resources/test/tests/functional/worker.js
new file mode 100644
index 0000000..a923bc2
--- /dev/null
+++ b/resources/test/tests/functional/worker.js
@@ -0,0 +1,34 @@
+importScripts("/resources/testharness.js");
+
+test(
+    function(test) {
+        assert_true(true, "True is true");
+    },
+    "Worker test that completes successfully");
+
+test(
+    function(test) {
+        assert_true(false, "Failing test");
+    },
+    "Worker test that fails ('FAIL')");
+
+async_test(
+    function(test) {
+        assert_true(true, "True is true");
+    },
+    "Worker test that times out ('TIMEOUT')");
+
+async_test("Worker test that doesn't run ('NOT RUN')");
+
+async_test(
+    function(test) {
+        self.setTimeout(
+            function() {
+                test.done();
+            },
+            0);
+    },
+    "Worker async_test that completes successfully");
+
+// An explicit done() is required for dedicated and shared web workers.
+done();
diff --git a/resources/test/tests/generate-callback.html b/resources/test/tests/generate-callback.html
deleted file mode 100644
index 574f430..0000000
--- a/resources/test/tests/generate-callback.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Sample for using generate_tests to create a series of tests that share the same callback.</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<script>
-// generate_tests takes an array of arrays that define tests
-// but lets pass it an empty array and verify it does nothing.
-function null_callback() {
-  throw "null_callback should not be called.";
-}
-generate_tests(null_callback, []);
-
-// Generate 3 tests specifying the name and one parameter
-function validate_arguments(arg1) {
-  assert_equals(arg1, 1, "Ensure that we get our expected argument");
-}
-generate_tests(validate_arguments, [
-  ["first test", 1],
-  ["second test", 1],
-  ["third test", 1],
-]);
-
-// Generate a test passing in a properties object that is shared across tests.
-function validate_properties() {
-  assert_true(this.properties.sentinel, "Ensure that we got the right properties object.");
-}
-generate_tests(validate_properties, [["sentinel check 1"], ["sentinel check 2"]], {sentinel: true});
-
-// Generate a test passing in a properties object that is shared across tests.
-function validate_separate_properties() {
-  if (this.name === "sentinel check 1 unique properties") {
-    assert_true(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: true.");
-  }
-  else {
-    assert_false(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: false.");
-  }
-}
-generate_tests(validate_separate_properties, [["sentinel check 1 unique properties"], ["sentinel check 2 unique properties"]], [{sentinel: true}, {sentinel: false}]);
-
-// Finally generate a complicated set of tests from another data source
-var letters = ["a", "b", "c", "d", "e", "f"];
-var numbers = [0, 1, 2, 3, 4, 5];
-function validate_related_arguments(arg1, arg2) {
-  assert_equals(arg1.charCodeAt(0) - "a".charCodeAt(0), arg2, "Ensure that we can map letters to numbers.");
-}
-function format_as_test(letter, index, letters) {
-  return ["Test to map " + letter + " to " + numbers[index], letter, numbers[index]];
-}
-generate_tests(validate_related_arguments, letters.map(format_as_test));
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Test to map a to 0",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test to map b to 1",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test to map c to 2",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test to map d to 3",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test to map e to 4",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test to map f to 5",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "first test",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "second test",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "sentinel check 1",
-      "properties": {
-        "sentinel": true
-      },
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "sentinel check 1 unique properties",
-      "properties": {
-        "sentinel": true
-      },
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "sentinel check 2",
-      "properties": {
-        "sentinel": true
-      },
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "sentinel check 2 unique properties",
-      "properties": {
-        "sentinel": false
-      },
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "third test",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlArray/is_json_type.html b/resources/test/tests/idlharness/IdlArray/is_json_type.html
deleted file mode 100644
index f7ebc9d..0000000
--- a/resources/test/tests/idlharness/IdlArray/is_json_type.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlArray.prototype.is_json_type()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("DOMString")));
-        assert_true(idl.is_json_type(typeFrom("ByteString")));
-        assert_true(idl.is_json_type(typeFrom("USVString")));
-        idl.add_untested_idls('enum BarEnum { "a", "b", "c" };');
-        assert_true(idl.is_json_type(typeFrom("BarEnum")));
-    }, 'should return true for all string types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("Error")));
-        assert_false(idl.is_json_type(typeFrom("DOMException")));
-    }, 'should return false for all exception types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("Int8Array")));
-        assert_false(idl.is_json_type(typeFrom("Int16Array")));
-        assert_false(idl.is_json_type(typeFrom("Int32Array")));
-        assert_false(idl.is_json_type(typeFrom("Uint8Array")));
-        assert_false(idl.is_json_type(typeFrom("Uint16Array")));
-        assert_false(idl.is_json_type(typeFrom("Uint32Array")));
-        assert_false(idl.is_json_type(typeFrom("Uint8ClampedArray")));
-        assert_false(idl.is_json_type(typeFrom("Float32Array")));
-        assert_false(idl.is_json_type(typeFrom("ArrayBuffer")));
-        assert_false(idl.is_json_type(typeFrom("DataView")));
-    }, 'should return false for all buffer source types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("boolean")));
-    }, 'should return true for boolean');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("byte")));
-        assert_true(idl.is_json_type(typeFrom("octet")));
-        assert_true(idl.is_json_type(typeFrom("short")));
-        assert_true(idl.is_json_type(typeFrom("unsigned short")));
-        assert_true(idl.is_json_type(typeFrom("long")));
-        assert_true(idl.is_json_type(typeFrom("unsigned long")));
-        assert_true(idl.is_json_type(typeFrom("long long")));
-        assert_true(idl.is_json_type(typeFrom("unsigned long long")));
-        assert_true(idl.is_json_type(typeFrom("float")));
-        assert_true(idl.is_json_type(typeFrom("unrestricted float")));
-        assert_true(idl.is_json_type(typeFrom("double")));
-        assert_true(idl.is_json_type(typeFrom("unrestricted double")));
-    }, 'should return true for all numeric types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("Promise<DOMString>")));
-    }, 'should return false for promises');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("sequence<DOMException>")));
-        assert_true(idl.is_json_type(typeFrom("sequence<DOMString>")));
-    }, 'should handle sequences according to their inner types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("FrozenArray<DOMException>")));
-        assert_true(idl.is_json_type(typeFrom("FrozenArray<DOMString>")));
-    }, 'should handle frozen arrays according to their inner types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("record<DOMString, DOMString>")));
-        assert_false(idl.is_json_type(typeFrom("record<DOMString, Error>")));
-    }, 'should handle records according to their inner types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("object")));
-    }, 'should return true for object type');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("any")));
-    }, 'should return false for any type');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('dictionary Foo { DOMString foo; }; dictionary Bar : Foo { DOMString bar; };');
-        assert_true(idl.is_json_type(typeFrom("Foo")));
-        assert_true(idl.is_json_type(typeFrom("Bar")));
-    }, 'should return true for dictionaries whose members are all JSON types');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('dictionary Foo { };');
-        assert_true(idl.is_json_type(typeFrom("Foo")));
-    }, 'should return true for dictionaries which have no members');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('dictionary FooBar { DOMString a; Error b; }; dictionary Baz : FooBar {};');
-        assert_false(idl.is_json_type(typeFrom("FooBar")));
-        assert_false(idl.is_json_type(typeFrom("Baz")));
-    }, 'should return false for dictionaries whose members are not all JSON types');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo { DOMString toJSON(); };');
-        assert_true(idl.is_json_type(typeFrom("Foo")));
-    }, 'should return true for interfaces which declare a toJSON operation');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo { DOMString toJSON(); }; interface Bar : Foo { };');
-        assert_true(idl.is_json_type(typeFrom("Bar")));
-    }, 'should return true for interfaces which inherit from an interface which declares a toJSON operation');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo { }; interface Bar { DOMString toJSON(); }; Foo implements Bar;');
-        assert_true(idl.is_json_type(typeFrom("Foo")));
-    }, 'should return true for interfaces which mixin an interface which declare a toJSON operation');
-
-//    test(function() {
-//        var idl = new IdlArray();
-//        idl.add_untested_idls('interface Foo { }; interface Bar { }; interface Baz { DOMString toJSON(); }; Foo implements Bar; Bar implements Baz;');
-//        assert_true(idl.is_json_type(typeFrom("Foo")));
-//    }, 'should return true for interfaces which mixin an interface which itself mixes in an interface which declares a toJSON operation');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo { };');
-        assert_false(idl.is_json_type(typeFrom("Foo")));
-    }, 'should return false for interfaces which do not declare a toJSON operation');
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo { object toJSON(); };');
-        assert_true(idl.is_json_type(typeFrom("(Foo or DOMString)")));
-    }, 'should return true for union types whose member types are JSON types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typeFrom("(DataView or DOMString)")));
-    }, 'should return false for union types whose member types are not all JSON types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("DOMString?")));
-        assert_false(idl.is_json_type(typeFrom("DataView?")));
-    }, 'should consider the inner types of nullable types');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typeFrom("[XAttr] long")));
-        assert_false(idl.is_json_type(typeFrom("[XAttr] DataView")));
-    }, 'should consider the inner types of annotated types.');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_throws(new Error(), _ => idl.is_json_type(typeFrom("Foo")));
-    }, "should throw if it references a dictionary, enum or interface which wasn't added to the IdlArray");
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface Foo : Bar { };');
-        assert_throws(new Error(), _ => idl.is_json_type(typeFrom("Foo")));
-    }, "should throw for interfaces which inherit from another interface which wasn't added to the IdlArray");
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_true(idl.is_json_type(typedefFrom("typedef double DOMHighResTimeStamp;").idlType));
-    }, 'should return true for typedefs whose source type is a JSON type');
-
-    test(function() {
-        var idl = new IdlArray();
-        assert_false(idl.is_json_type(typedefFrom("typedef DataView DOMHighResTimeStamp;").idlType));
-    }, 'should return false for typedefs whose source type is not a JSON type');
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlDictionary/get_inheritance_stack.html b/resources/test/tests/idlharness/IdlDictionary/get_inheritance_stack.html
deleted file mode 100644
index 98168ee1..0000000
--- a/resources/test/tests/idlharness/IdlDictionary/get_inheritance_stack.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlDictionary.prototype.get_inheritance_stack()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-    test(function() {
-        var stack = dictionaryFrom('dictionary A { };').get_inheritance_stack();
-        assert_array_equals(stack.map(d => d.name), ["A"]);
-    }, 'should return an array that includes itself.');
-
-    test(function() {
-        var d = dictionaryFrom('dictionary A : B { };');
-        assert_throws(new Error(), _ => d.get_inheritance_stack());
-    }, "should throw for dictionaries which inherit from another dictionary which wasn't added to the IdlArray");
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_idls('dictionary A : B { };');
-        idl.add_untested_idls('dictionary B : C { }; dictionary C { };');
-        var A = idl.members["A"];
-        assert_array_equals(A.get_inheritance_stack().map(d => d.name), ["A", "B", "C"]);
-    }, 'should return an array of inherited dictionaries in order of inheritance, starting with itself.');
-
-    test(function () {
-      let i = new IdlArray();
-      i.add_untested_idls('dictionary A : B {};');
-      i.assert_throws(new IdlHarnessError('A inherits B, but B is undefined.'), i => i.test());
-    }, 'A : B with B undeclared should throw IdlHarnessError');
-
-    test(function () {
-      let i = new IdlArray();
-      i.add_untested_idls('dictionary A : B {};');
-      i.add_untested_idls('interface B {};');
-      i.assert_throws(new IdlHarnessError('A inherits B, but A is not an interface.'), i => i.test());
-    }, 'dictionary A : B with B interface should throw IdlHarnessError');
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlDictionary/test_partial_dictionary.html b/resources/test/tests/idlharness/IdlDictionary/test_partial_dictionary.html
deleted file mode 100644
index f716b93..0000000
--- a/resources/test/tests/idlharness/IdlDictionary/test_partial_dictionary.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-
-<head>
-  <meta charset="utf-8">
-  <title>idlharness: partial dictionaries</title>
-  <script src="/resources/testharness.js"></script>
-  <script src="/resources/testharnessreport.js"></script>
-  <script src="/resources/WebIDLParser.js"></script>
-  <script src="/resources/idlharness.js"></script>
-  <script src="../helper.js"></script>
-</head>
-
-<body>
-<pre id='idl'>
-dictionary A {};
-partial dictionary A {
-  boolean B;
-};
-partial dictionary A {
-  boolean C;
-};
-</pre>
-
-<script>
-'use strict';
-
-test(() => {
-  let idlArray = new IdlArray();
-  idlArray.add_idls(document.getElementById('idl').textContent);
-  idlArray.test();
-
-  let members = idlArray.members["A"].members.map(m => m.name);
-  assert_array_equals(members, ["B", "C"], 'A should contain B, C');
-}, 'Partial dictionaries');
-
-test(() => {
-  let idlArray = new IdlArray();
-  idlArray.add_idls('partial dictionary D {};');
-  idlArray.assert_throws('Partial dictionary D with no original dictionary', i => i.test());
-}, 'Partial-only dictionary definition')
-</script>
-
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/default_to_json_operation.html b/resources/test/tests/idlharness/IdlInterface/default_to_json_operation.html
deleted file mode 100644
index a77ee3e..0000000
--- a/resources/test/tests/idlharness/IdlInterface/default_to_json_operation.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlDictionary.prototype.default_to_json_operation()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<pre id=fragments>
-    interface A : B {
-      attribute DOMString a;
-    };
-
-    interface B : C {
-      [Default] object toJSON();
-      attribute long b;
-    };
-
-    interface C {
-      attribute DOMString c;
-    };
-
-    interface D : E {
-      [Default] object toJSON();
-      attribute float d;
-    };
-
-    interface E : F {
-      attribute DOMString e;
-    };
-
-    interface F {
-      [Default] object toJSON();
-      attribute unrestricted double f;
-    };
-
-    interface G {
-      [Default] object toJSON();
-      attribute octet g;
-    };
-
-    interface H {
-      [Default] object toJSON();
-      attribute DOMString h;
-    };
-
-    interface I {
-      [Default] object toJSON();
-      attribute boolean i;
-    };
-
-    interface J {
-      [Default] object toJSON();
-      attribute D j;
-    };
-
-    A implements G;
-    A implements H;
-    B implements D;
-    E implements I;
-    H implements J;
-</pre>
-<script>
-    "use strict";
-    test(function() {
-        var map = interfaceFrom('interface A { [Default] object toJSON(); };').default_to_json_operation();
-        assert_equals(map.size, 0);
-    }, 'should return an empty map when there are no attributes');
-
-    test(function() {
-        var r = interfaceFrom('interface A { };').default_to_json_operation();
-        assert_equals(r, null);
-    }, 'should return null when there is no toJSON method');
-
-    test(function() {
-        var r = interfaceFrom('interface A { DOMString toJSON(); };').default_to_json_operation();
-        assert_equals(r, null);
-    }, 'should return null when there is a toJSON method but it does not have the [Default] extended attribute');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A : B { DOMString toJSON(); };");
-        context.add_idls("interface B { [Default] object toJSON(); };");
-        var r = context.members.A.default_to_json_operation();
-        assert_equals(r, null);
-    }, 'should return null when there is a toJSON method but it does not have the [Default] extended attribute even if this extended attribute exists on inherited interfaces');
-
-    test(function() {
-        var map = interfaceFrom('interface A { [Default] object toJSON(); static attribute DOMString foo; };').default_to_json_operation();
-        assert_equals(map.size, 0);
-    }, 'should not include static attributes');
-
-    test(function() {
-        var map = interfaceFrom('interface A { [Default] object toJSON(); attribute Promise<DOMString> bar; };').default_to_json_operation();
-        assert_equals(map.size, 0);
-    }, 'should not include attributes which are not JSON types');
-
-    test(function() {
-        var map = interfaceFrom('interface A { [Default] object toJSON(); DOMString bar(); };').default_to_json_operation();
-        assert_equals(map.size, 0);
-    }, 'should not include operations');
-
-    test(function() {
-        var map = interfaceFrom('interface A { [Default] object toJSON(); attribute DOMString bar; };').default_to_json_operation();
-        assert_equals(map.size, 1);
-        assert_true(map.has("bar"));
-        assert_equals(map.get("bar").idlType, "DOMString");
-    }, 'should return a map whose key/value pair represent the identifier and IDL type of valid attributes');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A : B { [Default] object toJSON(); attribute DOMString a; };");
-        context.add_idls("interface B { [Default] object toJSON(); attribute long b; };");
-        var map = context.members.A.default_to_json_operation();
-        assert_array_equals([...map.keys()], ["b", "a"]);
-        assert_array_equals([...map.values()].map(v => v.idlType), ["long", "DOMString"]);
-    }, 'should return a properly ordered map that contains IDL types of valid attributes for inherited interfaces');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A : B { attribute DOMString a; };");
-        context.add_idls("interface B { [Default] object toJSON(); attribute long b; };");
-        var map = context.members.A.default_to_json_operation();
-        assert_equals(map.size, 1);
-        assert_true(map.has("b"));
-        assert_equals(map.get("b").idlType, "long");
-        assert_array_equals([...map.keys()], ["b"]);
-    }, 'should not include attributes of the current interface when the [Default] toJSON method in inherited');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A : B { [Default] object toJSON(); };");
-        context.add_idls("interface B : C { [Default] object toJSON(); attribute DOMString foo; };");
-        context.add_idls("interface C { [Default] object toJSON(); attribute long foo; };");
-        var map = context.members.A.default_to_json_operation();
-        assert_equals(map.size, 1);
-        assert_true(map.has("foo"));
-        assert_equals(map.get("foo").idlType, "DOMString");
-    }, 'attributes declared further away in the inheritance hierarchy should be masked by attributes declared closer');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A : B { [Default] object toJSON(); attribute DOMString a; };");
-        context.add_idls("interface B { object toJSON(); attribute long b; };");
-        var map = context.members.A.default_to_json_operation();
-        assert_equals(map.size, 1);
-        assert_true(map.has("a"));
-        assert_false(map.has("b"));
-        assert_equals(map.get("a").idlType, "DOMString");
-    }, 'should return an ordered map that ignores attributes of inherited interfaces which do not declare a [Default] toJSON operation.');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A { [Default] object toJSON(); attribute DOMString a; };");
-        context.add_idls("interface N { [Default] object toJSON(); attribute long n; };");
-        context.add_idls("A implements N;");
-        var map = context.members.A.default_to_json_operation();
-        assert_array_equals([...map.keys()], ["a", "n"]);
-        assert_array_equals([...map.values()].map(v => v.idlType), ["DOMString", "long"]);
-    }, 'should return a properly ordered map that accounts for mixed-in interfaces which declare a [Default] toJSON operation.');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A { [Default] object toJSON(); attribute DOMString a; };");
-        context.add_idls("interface N { attribute long n; };");
-        context.add_idls("A implements N;");
-        var map = context.members.A.default_to_json_operation();
-        assert_equals(map.size, 1);
-        assert_true(map.has("a"));
-        assert_false(map.has("n"));
-        assert_equals(map.get("a").idlType, "DOMString");
-    }, 'should return a properly ordered map that ignores mixed-in interfaces which do not declare a [Default] toJSON operation.');
-
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls(document.getElementById('fragments').textContent);
-        var map = context.members.A.default_to_json_operation();
-        assert_array_equals([...map.keys()], ["b", "f", "i", "d", "g", "h", "j"]);
-        assert_array_equals([...map.values()].map(v => v.idlType), ["long", "unrestricted double", "boolean", "float", "octet", "DOMString", "D"]);
-    }, 'should return a properly ordered map of name/type pairs handling inherited and consequential interfaces as specified.');
-</script>
-</body>
-</html>
-
diff --git a/resources/test/tests/idlharness/IdlInterface/get_inheritance_stack.html b/resources/test/tests/idlharness/IdlInterface/get_inheritance_stack.html
deleted file mode 100644
index fed6f92..0000000
--- a/resources/test/tests/idlharness/IdlInterface/get_inheritance_stack.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlInterface.prototype.get_inheritance_stack()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-    test(function() {
-        var stack = interfaceFrom('interface A { };').get_inheritance_stack();
-        assert_array_equals(stack.map(i => i.name), ["A"]);
-    }, 'should return an array that includes itself.');
-
-    test(function() {
-        var i = interfaceFrom('interface A : B { };');
-        assert_throws(new Error(), _ => i.get_inheritance_stack());
-    }, "should throw for interfaces which inherit from another interface which wasn't added to the IdlArray");
-
-    test(function() {
-        var idl = new IdlArray();
-        idl.add_idls('interface A : B { };');
-        idl.add_untested_idls('interface B : C { }; interface C { };');
-        var A = idl.members["A"];
-        assert_array_equals(A.get_inheritance_stack().map(i => i.name), ["A", "B", "C"]);
-    }, 'should return an array of inherited interfaces in order of inheritance, starting with itself.');
-
-    test(function () {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface A : B { };');
-        idl.add_untested_idls('interface B : A { };');
-        idl.assert_throws('A has a circular dependency: A,B,A', i => i.test());
-    }, 'should throw when inheritance is circular');
-
-    test(function () {
-        var idl = new IdlArray();
-        idl.add_untested_idls('interface A : B { };');
-        idl.assert_throws(
-            'Duplicate identifier A',
-            i => i.add_untested_idls('interface A : C { };'));
-    }, 'should throw when multiple inheritances defined');
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/has_default_to_json_regular_operation.html b/resources/test/tests/idlharness/IdlInterface/has_default_to_json_regular_operation.html
deleted file mode 100644
index 9498a3a..0000000
--- a/resources/test/tests/idlharness/IdlInterface/has_default_to_json_regular_operation.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlInterface.prototype.has_default_to_json_regular_operation()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-    test(function() {
-        var i = interfaceFrom('interface A { };');
-        assert_false(i.has_default_to_json_regular_operation());
-    }, 'should return false when the interface declares no toJSON operation.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { static object toJSON(); };');
-        assert_false(i.has_default_to_json_regular_operation());
-    }, 'should return false when the interface declares a static toJSON operation.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { object toJSON(); };');
-        assert_false(i.has_default_to_json_regular_operation());
-    }, 'should return false when the interface declares a regular toJSON operation with no extended attribute.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { [x] object toJSON(); };');
-        assert_false(i.has_default_to_json_regular_operation());
-    }, 'should return false when the interface declares a regular toJSON operation with another extented attribute.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { [Default] object toJSON(); };');
-        assert_true(i.has_default_to_json_regular_operation());
-    }, 'should return true when the interface declares a regular toJSON operation with the [Default] extented attribute.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { [Attr, AnotherAttr, Default] object toJSON(); };');
-        assert_true(i.has_default_to_json_regular_operation());
-    }, 'should return true when the interface declares a regular toJSON operation with multiple extended attributes, including [Default].');
-</script>
-</body>
-</html>
-
diff --git a/resources/test/tests/idlharness/IdlInterface/has_to_json_regular_operation.html b/resources/test/tests/idlharness/IdlInterface/has_to_json_regular_operation.html
deleted file mode 100644
index bf7d926..0000000
--- a/resources/test/tests/idlharness/IdlInterface/has_to_json_regular_operation.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlInterface.prototype.has_to_json_regular_operation()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-    test(function() {
-        var i = interfaceFrom('interface A { };');
-        assert_false(i.has_to_json_regular_operation());
-    }, 'should return false when the interface declares no toJSON operation.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { static object toJSON(); };');
-        assert_false(i.has_to_json_regular_operation());
-    }, 'should return false when the interface declares a static toJSON operation.');
-
-    test(function() {
-        var i = interfaceFrom('interface A { object toJSON(); };');
-        assert_true(i.has_to_json_regular_operation());
-    }, 'should return true when the interface declares a regular toJSON operation.');
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/test_immutable_prototype.html b/resources/test/tests/idlharness/IdlInterface/test_immutable_prototype.html
deleted file mode 100644
index a9d631d..0000000
--- a/resources/test/tests/idlharness/IdlInterface/test_immutable_prototype.html
+++ /dev/null
@@ -1,294 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>idlharness: Immutable prototypes</title>
-  <script src="../../../../testharness.js"></script>
-  <script src="../../../../testharnessreport.js"></script>
-  <script src="../../../../WebIDLParser.js"></script>
-  <script src="../../../../idlharness.js"></script>
-</head>
-<body>
-<script>
-"use strictt";
-
-Object.defineProperty(window, "Foo", {
-    enumerable: false,
-    writable: true,
-    configurable: true,
-    value: function Foo() {}
-  });
-Object.defineProperty(window.Foo, "prototype", {
-    writable: false,
-    value: window.Foo.prototype
-  });
-Foo.prototype[Symbol.toStringTag] = "Foo";
-
-var idlArray = new IdlArray();
-idlArray.add_untested_idls("interface EventTarget {};");
-idlArray.add_idls(
-    "[Global=Window, Exposed=Window]\n" +
-    "interface Window : EventTarget {};\n" +
-
-    "[Global=Window, Exposed=Window, Constructor()]\n" +
-    "interface Foo {};"
-  );
-idlArray.add_objects({
-  Foo: ["new Foo()"],
-  Window: ["window"]
-});
-idlArray.test();
-</script>
-<script type="text/json" id="expected">
-{
-    "summarized_status": {
-        "message": null,
-        "status_string": "OK"
-    },
-    "summarized_tests": [
-        {
-            "name": "Foo interface object length",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface object name",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: existence and properties of interface object",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: existence and properties of interface prototype object",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: existence and properties of interface prototype object's \"constructor\" property",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: existence and properties of interface prototype object's @@unscopables property",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_throws: function \"function() {\n            Object.setPrototypeOf(obj, newValue);\n        }\" did not throw"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_false: expected false got true"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_throws: function \"function() {\n            obj.__proto__ = newValue;\n        }\" did not throw"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_throws: function \"function() {\n            Object.setPrototypeOf(obj, newValue);\n        }\" did not throw"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_false: expected false got true"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError",
-            "status_string": "FAIL",
-            "properties": {},
-            "message": "assert_throws: function \"function() {\n            obj.__proto__ = newValue;\n        }\" did not throw"
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Foo must be primary interface of new Foo()",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Stringification of new Foo()",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Stringification of window",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface object length",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface object name",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: existence and properties of interface object",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: existence and properties of interface prototype object",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: existence and properties of interface prototype object's \"constructor\" property",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: existence and properties of interface prototype object's @@unscopables property",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        },
-        {
-            "name": "Window must be primary interface of window",
-            "status_string": "PASS",
-            "properties": {},
-            "message": null
-        }
-    ],
-    "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html b/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html
deleted file mode 100644
index ef8fcc9..0000000
--- a/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>IdlInterface.prototype.test_to_json_operation()</title>
-  <script src="/resources/testharness.js"></script>
-  <script src="/resources/testharnessreport.js"></script>
-  <script src="/resources/WebIDLParser.js"></script>
-  <script src="/resources/idlharness.js"></script>
-  <script src="../helper.js"></script>
-</head>
-<body>
-<script>
-    "use strict";
-    function wrap(member, obj) {
-        function F(obj) {
-            this._obj = obj;
-        }
-
-        F.prototype.toJSON = function() {
-            return this._obj;
-        }
-        Object.defineProperty(F, 'name', { value: member.name });
-        return new F(obj);
-    }
-
-    var i, obj;
-    i = interfaceFrom("interface A { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, { foo: 123 }), i.members[0]);
-
-    // should fail (wrong type)
-    i = interfaceFrom("interface B { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, { foo: "a value" }), i.members[0]);
-
-    // should handle extraneous attributes (e.g. from an extension specification)
-    i = interfaceFrom("interface C { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, { foo: 123, bar: 456 }), i.members[0]);
-
-    // should fail (missing property)
-    i = interfaceFrom("interface D { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, { }), i.members[0]);
-
-    // should fail (should be writable)
-    obj = Object.defineProperties({}, { foo: {
-        writable: false,
-        enumerable: true,
-        configurable: true,
-        value: 123
-    }});
-    i = interfaceFrom("interface F { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, obj), i.members[0]);
-
-    // should fail (should be enumerable)
-    obj = Object.defineProperties({}, { foo: {
-        writable: true,
-        enumerable: false,
-        configurable: true,
-        value: 123
-    }});
-    i = interfaceFrom("interface G { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, obj), i.members[0]);
-
-    // should fail (should be configurable)
-    obj = Object.defineProperties({}, { foo: {
-        writable: true,
-        enumerable: true,
-        configurable: false,
-        value: 123
-    }});
-    i = interfaceFrom("interface H { [Default] object toJSON(); attribute long foo; };");
-    i.test_to_json_operation(wrap(i, obj), i.members[0]);
-
-    var idl = new IdlArray();
-    idl.add_idls("interface I : J { [Default] object toJSON(); attribute long foo; };");
-    idl.add_idls("interface J { [Default] object toJSON(); attribute DOMString foo;};");
-    var i = idl.members.I;
-    i.test_to_json_operation(wrap(i, { foo: 123 }), i.members[0]);
-
-    i = interfaceFrom("interface K { [Default] object toJSON(); };");
-    i.test_to_json_operation(wrap(i, {}), i.members[0]);
-
-    i = interfaceFrom("interface L { DOMString toJSON(); };");
-    i.test_to_json_operation(wrap(i, "a string"), i.members[0]);
-
-    // should fail (wrong output type)
-    i = interfaceFrom("interface M { DOMString toJSON(); };");
-    i.test_to_json_operation(wrap(i, {}), i.members[0]);
-
-    // should fail (not an IDL type)
-    i = interfaceFrom("interface N { DOMException toJSON(); };");
-    i.test_to_json_operation(wrap(i, {}), i.members[0]);
-</script>
-<script type="text/json" id="expected">
-    {
-        "summarized_status": {
-            "message": null,
-            "status_string": "OK"
-        },
-        "summarized_tests": [
-            {
-                "message": null,
-                "name": "Test default toJSON operation of A",
-                "properties": {},
-                "status_string": "PASS"
-            },
-            {
-                "message": "assert_equals: expected \"number\" but got \"string\"",
-                "name": "Test default toJSON operation of B",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": null,
-                "name": "Test default toJSON operation of C",
-                "properties": {},
-                "status_string": "PASS"
-            },
-            {
-                "message": "assert_true: property \"foo\" should be present in the output of D.prototype.toJSON() expected true got false",
-                "name": "Test default toJSON operation of D",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": "assert_true: property foo should be writable expected true got false",
-                "name": "Test default toJSON operation of F",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": "assert_true: property foo should be enumerable expected true got false",
-                "name": "Test default toJSON operation of G",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": "assert_true: property foo should be configurable expected true got false",
-                "name": "Test default toJSON operation of H",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": null,
-                "name": "Test default toJSON operation of I",
-                "properties": {},
-                "status_string": "PASS"
-            },
-            {
-                "message": null,
-                "name": "Test default toJSON operation of K",
-                "properties": {},
-                "status_string": "PASS"
-            },
-            {
-                "message": null,
-                "name": "Test toJSON operation of L",
-                "properties": {},
-                "status_string": "PASS"
-            },
-            {
-                "message": "assert_equals: expected \"string\" but got \"object\"",
-                "name": "Test toJSON operation of M",
-                "properties": {},
-                "status_string": "FAIL"
-            },
-            {
-                "message": "assert_true: {\"type\":\"return-type\",\"sequence\":false,\"generic\":null,\"nullable\":false,\"union\":false,\"idlType\":\"DOMException\"} is not an appropriate return value for the toJSON operation of N expected true got false",
-                "name": "Test toJSON operation of N",
-                "properties": {},
-                "status_string": "FAIL"
-            }
-        ],
-        "type": "complete"
-    }
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/traverse_inherited_and_consequential_interfaces.html b/resources/test/tests/idlharness/IdlInterface/traverse_inherited_and_consequential_interfaces.html
deleted file mode 100644
index 667c791..0000000
--- a/resources/test/tests/idlharness/IdlInterface/traverse_inherited_and_consequential_interfaces.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlDictionary.prototype.traverse_inherited_and_consequential_interfaces()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<pre id=fragments>
-    interface A : B { };
-    interface B : C { };
-    interface C { };
-    interface D : E { };
-    interface E : F { };
-    interface F { };
-    interface G { };
-    interface H { };
-    interface I { };
-    interface J { };
-
-    A implements G;
-    A implements H;
-    B implements D;
-    E implements I;
-    H implements J;
-</pre>
-<script>
-    "use strict";
-    test(function() {
-        var interfaces = [];
-        interfaceFrom('interface A { };').traverse_inherited_and_consequential_interfaces(function(i) {
-            interfaces.push(i.name);
-        });
-        assert_array_equals(interfaces, ["A"]);
-    }, 'should return an array that includes itself.');
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A { }; A implements B;");
-        assert_throws(new Error(), _ => context.members["A"].traverse_inherited_and_consequential_interfaces(function() {}));
-    }, "should throw for interfaces which are extended by another interface which wasn't added to the IdlArray.");
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls("interface A { };");
-        assert_throws(new TypeError(), _ => context.members["A"].traverse_inherited_and_consequential_interfaces());
-    }, "should throw if not passed a callback");
-
-    test(function() {
-        var context = new IdlArray();
-        context.add_idls(document.getElementById('fragments').textContent);
-        var interfaces = [];
-        context.members["A"].traverse_inherited_and_consequential_interfaces(function(i) {
-            interfaces.push(i.name);
-        });
-        assert_array_equals(interfaces, ["C", "B", "F", "E", "I", "D", "A", "G", "H", "J"]);
-    }, 'should return an array that includes the identifier of the interfaces in the correct order.');
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/idlharness/IdlInterfaceMember/is_to_json_regular_operation.html b/resources/test/tests/idlharness/IdlInterfaceMember/is_to_json_regular_operation.html
deleted file mode 100644
index ac923dd..0000000
--- a/resources/test/tests/idlharness/IdlInterfaceMember/is_to_json_regular_operation.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>IdlInterfaceMember.prototype.is_to_json_regular_operation()</title>
-</head>
-<body>
-<div id="log"></div>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script src="../helper.js"></script>
-<script>
-    "use strict";
-    test(function() {
-        var m = memberFrom("readonly attribute DOMString foo");
-        assert_false(m.is_to_json_regular_operation());
-    }, 'should return false when member is an attribute.');
-
-    test(function() {
-        var m = memberFrom("static void foo()");
-        assert_false(m.is_to_json_regular_operation());
-    }, 'should return false when member is a static operation.');
-
-    test(function() {
-        var m = memberFrom("static object toJSON()");
-        assert_false(m.is_to_json_regular_operation());
-    }, 'should return false when member is a static toJSON operation.');
-
-    test(function() {
-        var m = memberFrom("object toJSON()");
-        assert_true(m.is_to_json_regular_operation());
-    }, 'should return true when member is a regular toJSON operation.');
-
-    test(function() {
-        var m = memberFrom("[Foo] object toJSON()");
-        assert_true(m.is_to_json_regular_operation());
-    }, 'should return true when member is a regular toJSON operation with extensible attributes.');
-</script>
-</body>
-</html>
-
diff --git a/resources/test/tests/iframe-callback.html b/resources/test/tests/iframe-callback.html
deleted file mode 100644
index b6b751b..0000000
--- a/resources/test/tests/iframe-callback.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with iframe that notifies containing document via callbacks</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body onload="start_test_in_iframe()">
-<h1>Callbacks From Tests Running In An IFRAME</h1>
-<p>A test is run inside an <tt>iframe</tt> with a same origin document. The
-containing document should receive callbacks as the tests progress inside the
-<tt>iframe</tt>. A single passing test is expected in the summary below.
-<div id="log"></div>
-
-<script>
-var callbacks = [];
-var START = 1
-var TEST_STATE = 2
-var RESULT = 3
-var COMPLETION = 4
-var test_complete = false;
-
-setup({explicit_done: true});
-
-// The following callbacks are called for tests in this document as well as the
-// tests in the IFRAME. Currently, callbacks invoked from this document and any
-// child document are indistinguishable from each other.
-
-function start_callback(properties) {
-    callbacks.push(START);
-}
-
-function test_state_callback(test) {
-    callbacks.push(TEST_STATE);
-}
-
-function result_callback(test) {
-    callbacks.push(RESULT);
-}
-
-function completion_callback(tests, status) {
-    if (test_complete) {
-        return;
-    }
-    test_complete = true;
-    callbacks.push(COMPLETION);
-    verify_received_callbacks();
-    done();
-}
-
-function verify_received_callbacks() {
-    var copy_of_callbacks = callbacks.slice(0);
-
-    // Note that you can't run test assertions directly in a callback even if
-    // this is a file test. When the callback is invoked from a same-origin child
-    // page, the callstack reaches into the calling child document. Any
-    // exception thrown in a callback will be handled by the child rather than
-    // this document.
-    test(
-        function() {
-            // callbacks list should look like:
-            //     START 1*(TEST_STATE) RESULT COMPLETION
-            assert_equals(copy_of_callbacks.shift(), START,
-                          "The first received callback should be 'start_callback'.");
-            assert_equals(copy_of_callbacks.shift(), TEST_STATE,
-                          "'test_state_callback' should be received before any " +
-                          "result or completion callbacks.");
-            while(copy_of_callbacks.length > 0) {
-                var callback = copy_of_callbacks.shift();
-                if (callback != TEST_STATE) {
-                    copy_of_callbacks.unshift(callback);
-                    break;
-                }
-            }
-            assert_equals(copy_of_callbacks.shift(), RESULT,
-                          "'test_state_callback' should be followed by 'result_callback'.");
-            assert_equals(copy_of_callbacks.shift(), COMPLETION,
-                          "Final 'result_callback' should be followed by 'completion_callback'.");
-            assert_equals(copy_of_callbacks.length, 0,
-                          "'completion_callback' should be the last callback.");
-        });
-}
-
-function start_test_in_iframe() {
-    // This document is going to clear any received callbacks and maintain
-    // radio silence until the test in the iframe runs to completion. The
-    // completion_callback() will then complete the testing on this document.
-    callbacks.length = 0;
-    var iframe = document.createElement("iframe");
-    // single-page-test-pass.html has a single test.
-    iframe.src = "single-page-test-pass.html";
-    iframe.style.setProperty("display", "none");
-    document.getElementById("target").appendChild(iframe);
-}
-</script>
-
-<div id="target">
-</div>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Example with iframe that notifies containing document via callbacks",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
diff --git a/resources/test/tests/iframe-consolidate-errors.html b/resources/test/tests/iframe-consolidate-errors.html
deleted file mode 100644
index a44d034..0000000
--- a/resources/test/tests/iframe-consolidate-errors.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with iframe that consolidates errors via fetch_tests_from_window</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-var parent_test = async_test("Test executing in parent context");
-</script>
-</head>
-<body onload="parent_test.done()">
-<h1>Fetching Tests From a Child Context</h1>
-<p>This test demonstrates the use of <tt>fetch_tests_from_window</tt> to pull
-tests from an <tt>iframe</tt> into the primary document.</p>
-<p>The test suite is expected to fail due to an unhandled exception in the
-child context.</p>
-<div id="log"></div>
-
-<iframe id="childContext" src="uncaught-exception-handle.html" style="display:none"></iframe>
-<!-- apisample4.html is a failing suite due to an unhandled Error. -->
-
-<script>
-  var childContext = document.getElementById("childContext");
-  fetch_tests_from_window(childContext.contentWindow);
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Error in remote: Error: Example Error"
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Test executing in parent context",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/iframe-consolidate-tests.html b/resources/test/tests/iframe-consolidate-tests.html
deleted file mode 100644
index 7b8a897..0000000
--- a/resources/test/tests/iframe-consolidate-tests.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with iframe that consolidates tests via fetch_tests_from_window</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-var parent_test = async_test("Test executing in parent context");
-</script>
-</head>
-<body onload="parent_test.done()">
-<h1>Fetching Tests From a Child Context</h1>
-<p>This test demonstrates the use of <tt>fetch_tests_from_window</tt> to pull
-tests from an <tt>iframe</tt> into the primary document.</p>
-<p>The test suite will not complete until tests in the child context have finished
-executing</p>
-<div id="log"></div>
-
-<iframe id="childContext" src="promise-async.html" style="display:none"></iframe>
-<!-- promise-async.html has async tests with promises -->
-
-<script>
-  var childContext = document.getElementById("childContext");
-  fetch_tests_from_window(childContext.contentWindow);
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Promise rejection",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promise resolution",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Promises and test assertion failures (should fail)",
-      "properties": {},
-      "message": "assert_true: This failure is expected expected true got false"
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promises are supported in your browser",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promises resolution chaining",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test executing in parent context",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Use of step_func with Promises",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Use of unreached_func with Promises (should fail)",
-      "properties": {},
-      "message": "assert_unreached: This failure is expected Reached unreachable code"
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/iframe-msg.html b/resources/test/tests/iframe-msg.html
deleted file mode 100644
index c6bc97b..0000000
--- a/resources/test/tests/iframe-msg.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with iframe that notifies containing document via cross document messaging</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<h1>Notifications From Tests Running In An IFRAME</h1>
-<p>A test is run inside an <tt>iframe</tt> with a same origin document. The
-containing document should receive messages via <tt>postMessage</tt>/
-<tt>onmessage</tt> as the tests progress inside the <tt>iframe</tt>. A single
-passing test is expected in the summary below.
-</p>
-<div id="log"></div>
-
-<script>
-var t = async_test("Containing document receives messages");
-var start_received = false;
-var result_received = false;
-var completion_received = false;
-
-// These are the messages that are expected to be seen while running the tests
-// in the IFRAME.
-var expected_messages = [
-    t.step_func(
-        function(message) {
-            assert_equals(message.data.type, "start");
-            assert_own_property(message.data, "properties");
-        }),
-
-    t.step_func(
-        function(message) {
-            assert_equals(message.data.type, "test_state");
-            assert_equals(message.data.test.status, message.data.test.NOTRUN);
-        }),
-
-    t.step_func(
-        function(message) {
-            assert_equals(message.data.type, "result");
-            assert_equals(message.data.test.status, message.data.test.PASS);
-        }),
-
-    t.step_func(
-        function(message) {
-            assert_equals(message.data.type, "complete");
-            assert_equals(message.data.tests.length, 1);
-            assert_equals(message.data.tests[0].status,
-                          message.data.tests[0].PASS);
-            assert_equals(message.data.status.status, message.data.status.OK);
-            t.done();
-        }),
-
-    t.unreached_func("Too many messages received")
-];
-
-on_event(window,
-         "message",
-         function(message) {
-             var handler = expected_messages.shift();
-             handler(message);
-         });
-</script>
-<iframe src="single-page-test-pass.html" style="display:none">
-  <!-- single-page-test-pass.html implements a file_is_test test. -->
-</iframe>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Containing document receives messages",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
diff --git a/resources/test/tests/order.html b/resources/test/tests/order.html
deleted file mode 100644
index 1604f43..0000000
--- a/resources/test/tests/order.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Ordering</title>
-<meta name="timeout" content="6000">
-</head>
-<body>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-test(function() {}, 'second');
-test(function() {}, 'first');
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [{
-    "status_string": "PASS",
-    "name": "first",
-    "message": null,
-    "properties": {}
-  }, {
-    "status_string": "PASS",
-    "name": "second",
-    "message": null,
-    "properties": {}
-  }],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/promise-async.html b/resources/test/tests/promise-async.html
deleted file mode 100644
index 18101ee..0000000
--- a/resources/test/tests/promise-async.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Async Tests and Promises</title>
-</head>
-<body>
-<h1>Async Tests and Promises</h1>
-<p>This test assumes ECMAScript 6 Promise support. Some failures are expected.</p>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-
-test(function() {
-  var p = new Promise(function(resolve, reject) {});
-  assert_true('then' in p);
-  assert_equals(typeof Promise.resolve, 'function');
-  assert_equals(typeof Promise.reject, 'function');
-}, "Promises are supported in your browser");
-
-(function() {
-  var t = async_test("Promise resolution");
-  t.step(function() {
-    Promise.resolve('x').then(
-      t.step_func(function(value) {
-        assert_equals(value, 'x');
-        t.done();
-      }),
-      t.unreached_func('Promise should not reject')
-    );
-  });
-}());
-
-(function() {
-  var t = async_test("Promise rejection");
-  t.step(function() {
-    Promise.reject(Error('fail')).then(
-      t.unreached_func('Promise should reject'),
-      t.step_func(function(reason) {
-        assert_true(reason instanceof Error);
-        assert_equals(reason.message, 'fail');
-        t.done();
-      })
-    );
-  });
-}());
-
-(function() {
-  var t = async_test("Promises resolution chaining");
-  t.step(function() {
-    var resolutions = [];
-    Promise.resolve('a').then(
-      t.step_func(function(value) {
-        resolutions.push(value);
-        return 'b';
-      })
-    ).then(
-      t.step_func(function(value) {
-        resolutions.push(value);
-        return 'c';
-      })
-    ).then(
-      t.step_func(function(value) {
-        resolutions.push(value);
-
-        assert_array_equals(resolutions, ['a', 'b', 'c']);
-        t.done();
-      })
-    ).catch(
-      t.unreached_func('promise should not have rejected')
-    );
-  });
-}());
-
-(function() {
-  var t = async_test("Use of step_func with Promises");
-  t.step(function() {
-    var resolutions = [];
-    Promise.resolve('x').then(
-      t.step_func_done(),
-      t.unreached_func('Promise should not have rejected')
-    );
-  });
-}());
-
-(function() {
-  var t = async_test("Promises and test assertion failures (should fail)");
-  t.step(function() {
-    var resolutions = [];
-    Promise.resolve('x').then(
-      t.step_func(function(value) {
-        assert_true(false, 'This failure is expected');
-      })
-    ).then(
-      t.unreached_func('Promise should not have resolved')
-    ).catch(
-      t.unreached_func('Promise should not have rejected')
-    );
-  });
-}());
-
-(function() {
-  var t = async_test("Use of unreached_func with Promises (should fail)");
-  t.step(function() {
-    var resolutions = [];
-    var r;
-    var p = new Promise(function(resolve, reject) {
-      // Reject instead of resolve, to demonstrate failure.
-      reject(123);
-    });
-    p.then(
-      function(value) {
-        assert_equals(value, 123, 'This should not actually happen');
-      },
-      t.unreached_func('This failure is expected')
-    );
-  });
-}());
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Promise rejection",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promise resolution",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Promises and test assertion failures (should fail)",
-      "properties": {},
-      "message": "assert_true: This failure is expected expected true got false"
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promises are supported in your browser",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promises resolution chaining",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Use of step_func with Promises",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Use of unreached_func with Promises (should fail)",
-      "properties": {},
-      "message": "assert_unreached: This failure is expected Reached unreachable code"
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/promise.html b/resources/test/tests/promise.html
deleted file mode 100644
index 4825a38..0000000
--- a/resources/test/tests/promise.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Promise Tests</title>
-</head>
-<body>
-<h1>Promise Tests</h1>
-<p>This test demonstrates the use of <tt>promise_test</tt>. Assumes ECMAScript 6
-Promise support. Some failures are expected.</p>
-<div id="log"></div>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-test(
-    function() {
-        var p = new Promise(function(resolve, reject){});
-        assert_true("then" in p);
-        assert_equals(typeof Promise.resolve, "function");
-        assert_equals(typeof Promise.reject, "function");
-    },
-    "Promises are supported in your browser");
-
-promise_test(
-    function() {
-        return Promise.resolve("x")
-            .then(
-                function(value) {
-                    assert_equals(value,
-                                  "x",
-                                  "Fulfilled promise should pass result to " +
-                                  "fulfill reaction.");
-                });
-    },
-    "Promise fulfillment with result");
-
-promise_test(
-    function(t) {
-        return Promise.reject(new Error("fail"))
-            .then(t.unreached_func("Promise should reject"),
-                function(reason) {
-                    assert_true(
-                        reason instanceof Error,
-                        "Rejected promise should pass reason to fulfill reaction.");
-                    assert_equals(
-                        reason.message,
-                        "fail",
-                        "Rejected promise should pass reason to reject reaction.");
-                });
-    },
-    "Promise rejection with result");
-
-promise_test(
-    function() {
-        var resolutions = [];
-        return Promise.resolve("a")
-            .then(
-                function(value) {
-                    resolutions.push(value);
-                    return "b";
-                })
-            .then(
-                function(value) {
-                    resolutions.push(value);
-                    return "c";
-                })
-            .then(
-                function(value) {
-                    resolutions.push(value);
-                    assert_array_equals(resolutions, ["a", "b", "c"]);
-                });
-    },
-    "Chain of promise resolutions");
-
-promise_test(
-    function(t) {
-        var resolutions = [];
-        return Promise.resolve("x")
-            .then(
-                function(value) {
-                    assert_true(false, "Expected failure.");
-                })
-            .then(t.unreached_func("UNEXPECTED FAILURE: Promise should not have resolved."));
-    },
-    "Assertion failure in a fulfill reaction (should FAIL with an expected failure)");
-
-promise_test(
-    function(t) {
-        return new Promise(
-                function(resolve, reject) {
-                    reject(123);
-                })
-            .then(t.unreached_func("UNEXPECTED FAILURE: Fulfill reaction reached after rejection."),
-                  t.unreached_func("Expected failure."));
-    },
-    "unreached_func as reactor (should FAIL with an expected failure)");
-
-promise_test(
-    function() {
-        return true;
-    },
-    "promise_test with function that doesn't return a Promise");
-
-promise_test(function(){},
-             "promise_test with function that doesn't return anything");
-
-promise_test(
-    function() {
-        return Promise.reject("Expected rejection");
-    },
-    "promise_test with unhandled rejection (should FAIL)");
-
-promise_test(
-    function() {
-        return Promise.resolve(10)
-            .then(
-                function(value) {
-                    throw Error("Expected exception.");
-                });
-    },
-    "promise_test with unhandled exception in fulfill reaction (should FAIL)");
-
-promise_test(
-    function(t) {
-        return Promise.reject(10)
-            .then(
-                t.unreached_func("UNEXPECTED FAILURE: Fulfill reaction reached after rejection."),
-                function(value) {
-                    throw Error("Expected exception.");
-                });
-    },
-    "promise_test with unhandled exception in reject reaction (should FAIL)");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "FAIL",
-      "name": "Assertion failure in a fulfill reaction (should FAIL with an expected failure)",
-      "message": "assert_true: Expected failure. expected true got false",
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Chain of promise resolutions",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promise fulfillment with result",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promise rejection with result",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "Promises are supported in your browser",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "PASS",
-      "name": "promise_test with function that doesn't return a Promise",
-      "message": null,
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "promise_test with function that doesn't return anything",
-      "message": "assert_not_equals: got disallowed value undefined",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "promise_test with unhandled exception in fulfill reaction (should FAIL)",
-      "message": "promise_test: Unhandled rejection with value: object \"Error: Expected exception.\"",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "promise_test with unhandled exception in reject reaction (should FAIL)",
-      "message": "promise_test: Unhandled rejection with value: object \"Error: Expected exception.\"",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "promise_test with unhandled rejection (should FAIL)",
-      "message": "promise_test: Unhandled rejection with value: \"Expected rejection\"",
-      "properties": {}
-    },
-    {
-      "status_string": "FAIL",
-      "name": "unreached_func as reactor (should FAIL with an expected failure)",
-      "message": "assert_unreached: Expected failure. Reached unreachable code",
-      "properties": {}
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/single-page-test-fail.html b/resources/test/tests/single-page-test-fail.html
deleted file mode 100644
index a8f247d..0000000
--- a/resources/test/tests/single-page-test-fail.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML>
-<title>Example with file_is_test (should fail)</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-onload = function() {
-  assert_true(false);
-  done();
-}
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "FAIL",
-      "name": "Example with file_is_test (should fail)",
-      "properties": {},
-      "message": "uncaught exception: Error: assert_true: expected true got false"
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/single-page-test-no-assertions.html b/resources/test/tests/single-page-test-no-assertions.html
deleted file mode 100644
index d1a7532..0000000
--- a/resources/test/tests/single-page-test-no-assertions.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML>
-<title>Example single page test with no asserts</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-done();
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Example single page test with no asserts",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/single-page-test-no-body.html b/resources/test/tests/single-page-test-no-body.html
deleted file mode 100644
index c62ee18..0000000
--- a/resources/test/tests/single-page-test-no-body.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML>
-<title>Example single page test with no body</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-assert_true(true);
-done();
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Example single page test with no body",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/single-page-test-pass.html b/resources/test/tests/single-page-test-pass.html
deleted file mode 100644
index 91d26b0..0000000
--- a/resources/test/tests/single-page-test-pass.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML>
-<title>Example with file_is_test</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-<script>
-onload = function() {
-  assert_true(true);
-  done();
-}
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Example with file_is_test",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
diff --git a/resources/test/tests/uncaught-exception-handle.html b/resources/test/tests/uncaught-exception-handle.html
deleted file mode 100644
index 061fb80..0000000
--- a/resources/test/tests/uncaught-exception-handle.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Harness Handling Uncaught Exception</title>
-</head>
-<script src="../../testharness.js"></script>
-
-<body>
-<h1>Harness Handling Uncaught Exception</h1>
-<div id="log"></div>
-<script>
-var t = async_test("This should show a harness status of 'Error' and a test status of 'Not Run'");
-throw new Error("Example Error");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Error: Example Error"
-  },
-  "summarized_tests": [
-    {
-      "status_string": "NOTRUN",
-      "name": "This should show a harness status of 'Error' and a test status of 'Not Run'",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/uncaught-exception-ignore.html b/resources/test/tests/uncaught-exception-ignore.html
deleted file mode 100644
index 6624078..0000000
--- a/resources/test/tests/uncaught-exception-ignore.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Harness Ignoring Uncaught Exception</title>
-</head>
-<script src="../../testharness.js"></script>
-
-<body>
-<h1>Harness Ignoring Uncaught Exception</h1>
-<div id="log"></div>
-<script>
-setup({allow_uncaught_exception:true});
-var t = async_test("setup({allow_uncaught_exception:true}) should allow tests to pass even if there is an exception");
-onerror = t.step_func(function() {t.done()});
-throw new Error("Example Error");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "OK",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "setup({allow_uncaught_exception:true}) should allow tests to pass even if there is an exception",
-      "properties": {},
-      "message": null
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
-</html>
diff --git a/resources/test/tests/unit/IdlArray/is_json_type.html b/resources/test/tests/unit/IdlArray/is_json_type.html
new file mode 100644
index 0000000..d31d917
--- /dev/null
+++ b/resources/test/tests/unit/IdlArray/is_json_type.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlArray.prototype.is_json_type()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("DOMString")));
+        assert_true(idl.is_json_type(typeFrom("ByteString")));
+        assert_true(idl.is_json_type(typeFrom("USVString")));
+        idl.add_untested_idls('enum BarEnum { "a", "b", "c" };');
+        assert_true(idl.is_json_type(typeFrom("BarEnum")));
+    }, 'should return true for all string types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("Error")));
+        assert_false(idl.is_json_type(typeFrom("DOMException")));
+    }, 'should return false for all exception types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("Int8Array")));
+        assert_false(idl.is_json_type(typeFrom("Int16Array")));
+        assert_false(idl.is_json_type(typeFrom("Int32Array")));
+        assert_false(idl.is_json_type(typeFrom("Uint8Array")));
+        assert_false(idl.is_json_type(typeFrom("Uint16Array")));
+        assert_false(idl.is_json_type(typeFrom("Uint32Array")));
+        assert_false(idl.is_json_type(typeFrom("Uint8ClampedArray")));
+        assert_false(idl.is_json_type(typeFrom("Float32Array")));
+        assert_false(idl.is_json_type(typeFrom("ArrayBuffer")));
+        assert_false(idl.is_json_type(typeFrom("DataView")));
+    }, 'should return false for all buffer source types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("boolean")));
+    }, 'should return true for boolean');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("byte")));
+        assert_true(idl.is_json_type(typeFrom("octet")));
+        assert_true(idl.is_json_type(typeFrom("short")));
+        assert_true(idl.is_json_type(typeFrom("unsigned short")));
+        assert_true(idl.is_json_type(typeFrom("long")));
+        assert_true(idl.is_json_type(typeFrom("unsigned long")));
+        assert_true(idl.is_json_type(typeFrom("long long")));
+        assert_true(idl.is_json_type(typeFrom("unsigned long long")));
+        assert_true(idl.is_json_type(typeFrom("float")));
+        assert_true(idl.is_json_type(typeFrom("unrestricted float")));
+        assert_true(idl.is_json_type(typeFrom("double")));
+        assert_true(idl.is_json_type(typeFrom("unrestricted double")));
+    }, 'should return true for all numeric types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("Promise<DOMString>")));
+    }, 'should return false for promises');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("sequence<DOMException>")));
+        assert_true(idl.is_json_type(typeFrom("sequence<DOMString>")));
+    }, 'should handle sequences according to their inner types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("FrozenArray<DOMException>")));
+        assert_true(idl.is_json_type(typeFrom("FrozenArray<DOMString>")));
+    }, 'should handle frozen arrays according to their inner types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("record<DOMString, DOMString>")));
+        assert_false(idl.is_json_type(typeFrom("record<DOMString, Error>")));
+    }, 'should handle records according to their inner types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("object")));
+    }, 'should return true for object type');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("any")));
+    }, 'should return false for any type');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('dictionary Foo { DOMString foo; }; dictionary Bar : Foo { DOMString bar; };');
+        assert_true(idl.is_json_type(typeFrom("Foo")));
+        assert_true(idl.is_json_type(typeFrom("Bar")));
+    }, 'should return true for dictionaries whose members are all JSON types');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('dictionary Foo { };');
+        assert_true(idl.is_json_type(typeFrom("Foo")));
+    }, 'should return true for dictionaries which have no members');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('dictionary FooBar { DOMString a; Error b; }; dictionary Baz : FooBar {};');
+        assert_false(idl.is_json_type(typeFrom("FooBar")));
+        assert_false(idl.is_json_type(typeFrom("Baz")));
+    }, 'should return false for dictionaries whose members are not all JSON types');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo { DOMString toJSON(); };');
+        assert_true(idl.is_json_type(typeFrom("Foo")));
+    }, 'should return true for interfaces which declare a toJSON operation');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo { DOMString toJSON(); }; interface Bar : Foo { };');
+        assert_true(idl.is_json_type(typeFrom("Bar")));
+    }, 'should return true for interfaces which inherit from an interface which declares a toJSON operation');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo { }; interface Bar { DOMString toJSON(); }; Foo implements Bar;');
+        assert_true(idl.is_json_type(typeFrom("Foo")));
+    }, 'should return true for interfaces which mixin an interface which declare a toJSON operation');
+
+//    test(function() {
+//        var idl = new IdlArray();
+//        idl.add_untested_idls('interface Foo { }; interface Bar { }; interface Baz { DOMString toJSON(); }; Foo implements Bar; Bar implements Baz;');
+//        assert_true(idl.is_json_type(typeFrom("Foo")));
+//    }, 'should return true for interfaces which mixin an interface which itself mixes in an interface which declares a toJSON operation');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo { };');
+        assert_false(idl.is_json_type(typeFrom("Foo")));
+    }, 'should return false for interfaces which do not declare a toJSON operation');
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo { object toJSON(); };');
+        assert_true(idl.is_json_type(typeFrom("(Foo or DOMString)")));
+    }, 'should return true for union types whose member types are JSON types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typeFrom("(DataView or DOMString)")));
+    }, 'should return false for union types whose member types are not all JSON types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("DOMString?")));
+        assert_false(idl.is_json_type(typeFrom("DataView?")));
+    }, 'should consider the inner types of nullable types');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typeFrom("[XAttr] long")));
+        assert_false(idl.is_json_type(typeFrom("[XAttr] DataView")));
+    }, 'should consider the inner types of annotated types.');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_throws(new Error(), _ => idl.is_json_type(typeFrom("Foo")));
+    }, "should throw if it references a dictionary, enum or interface which wasn't added to the IdlArray");
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface Foo : Bar { };');
+        assert_throws(new Error(), _ => idl.is_json_type(typeFrom("Foo")));
+    }, "should throw for interfaces which inherit from another interface which wasn't added to the IdlArray");
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_true(idl.is_json_type(typedefFrom("typedef double DOMHighResTimeStamp;").idlType));
+    }, 'should return true for typedefs whose source type is a JSON type');
+
+    test(function() {
+        var idl = new IdlArray();
+        assert_false(idl.is_json_type(typedefFrom("typedef DataView DOMHighResTimeStamp;").idlType));
+    }, 'should return false for typedefs whose source type is not a JSON type');
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/unit/IdlDictionary/get_inheritance_stack.html b/resources/test/tests/unit/IdlDictionary/get_inheritance_stack.html
new file mode 100644
index 0000000..1ac9e8d
--- /dev/null
+++ b/resources/test/tests/unit/IdlDictionary/get_inheritance_stack.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlDictionary.prototype.get_inheritance_stack()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+    test(function() {
+        var stack = dictionaryFrom('dictionary A { };').get_inheritance_stack();
+        assert_array_equals(stack.map(d => d.name), ["A"]);
+    }, 'should return an array that includes itself.');
+
+    test(function() {
+        var d = dictionaryFrom('dictionary A : B { };');
+        assert_throws(new Error(), _ => d.get_inheritance_stack());
+    }, "should throw for dictionaries which inherit from another dictionary which wasn't added to the IdlArray");
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_idls('dictionary A : B { };');
+        idl.add_untested_idls('dictionary B : C { }; dictionary C { };');
+        var A = idl.members["A"];
+        assert_array_equals(A.get_inheritance_stack().map(d => d.name), ["A", "B", "C"]);
+    }, 'should return an array of inherited dictionaries in order of inheritance, starting with itself.');
+
+    test(function () {
+      let i = new IdlArray();
+      i.add_untested_idls('dictionary A : B {};');
+      i.assert_throws(new IdlHarnessError('A inherits B, but B is undefined.'), i => i.test());
+    }, 'A : B with B undeclared should throw IdlHarnessError');
+
+    test(function () {
+      let i = new IdlArray();
+      i.add_untested_idls('dictionary A : B {};');
+      i.add_untested_idls('interface B {};');
+      i.assert_throws(new IdlHarnessError('A inherits B, but A is not an interface.'), i => i.test());
+    }, 'dictionary A : B with B interface should throw IdlHarnessError');
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html b/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html
new file mode 100644
index 0000000..cfcea54
--- /dev/null
+++ b/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <title>idlharness: partial dictionaries</title>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script src="/resources/WebIDLParser.js"></script>
+  <script src="/resources/idlharness.js"></script>
+  <script src="../../../idl-helper.js"></script>
+</head>
+
+<body>
+<pre id='idl'>
+dictionary A {};
+partial dictionary A {
+  boolean B;
+};
+partial dictionary A {
+  boolean C;
+};
+</pre>
+
+<script>
+'use strict';
+
+test(() => {
+  let idlArray = new IdlArray();
+  idlArray.add_idls(document.getElementById('idl').textContent);
+  idlArray.test();
+
+  let members = idlArray.members["A"].members.map(m => m.name);
+  assert_array_equals(members, ["B", "C"], 'A should contain B, C');
+}, 'Partial dictionaries');
+
+test(() => {
+  let idlArray = new IdlArray();
+  idlArray.add_idls('partial dictionary D {};');
+  idlArray.assert_throws('Partial dictionary D with no original dictionary', i => i.test());
+}, 'Partial-only dictionary definition')
+</script>
+
+</body>
+</html>
diff --git a/resources/test/tests/unit/IdlInterface/default_to_json_operation.html b/resources/test/tests/unit/IdlInterface/default_to_json_operation.html
new file mode 100644
index 0000000..4b3dcfe
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterface/default_to_json_operation.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlDictionary.prototype.default_to_json_operation()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<pre id=fragments>
+    interface A : B {
+      attribute DOMString a;
+    };
+
+    interface B : C {
+      [Default] object toJSON();
+      attribute long b;
+    };
+
+    interface C {
+      attribute DOMString c;
+    };
+
+    interface D : E {
+      [Default] object toJSON();
+      attribute float d;
+    };
+
+    interface E : F {
+      attribute DOMString e;
+    };
+
+    interface F {
+      [Default] object toJSON();
+      attribute unrestricted double f;
+    };
+
+    interface G {
+      [Default] object toJSON();
+      attribute octet g;
+    };
+
+    interface H {
+      [Default] object toJSON();
+      attribute DOMString h;
+    };
+
+    interface I {
+      [Default] object toJSON();
+      attribute boolean i;
+    };
+
+    interface J {
+      [Default] object toJSON();
+      attribute D j;
+    };
+
+    A implements G;
+    A implements H;
+    B implements D;
+    E implements I;
+    H implements J;
+</pre>
+<script>
+    "use strict";
+    test(function() {
+        var map = interfaceFrom('interface A { [Default] object toJSON(); };').default_to_json_operation();
+        assert_equals(map.size, 0);
+    }, 'should return an empty map when there are no attributes');
+
+    test(function() {
+        var r = interfaceFrom('interface A { };').default_to_json_operation();
+        assert_equals(r, null);
+    }, 'should return null when there is no toJSON method');
+
+    test(function() {
+        var r = interfaceFrom('interface A { DOMString toJSON(); };').default_to_json_operation();
+        assert_equals(r, null);
+    }, 'should return null when there is a toJSON method but it does not have the [Default] extended attribute');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A : B { DOMString toJSON(); };");
+        context.add_idls("interface B { [Default] object toJSON(); };");
+        var r = context.members.A.default_to_json_operation();
+        assert_equals(r, null);
+    }, 'should return null when there is a toJSON method but it does not have the [Default] extended attribute even if this extended attribute exists on inherited interfaces');
+
+    test(function() {
+        var map = interfaceFrom('interface A { [Default] object toJSON(); static attribute DOMString foo; };').default_to_json_operation();
+        assert_equals(map.size, 0);
+    }, 'should not include static attributes');
+
+    test(function() {
+        var map = interfaceFrom('interface A { [Default] object toJSON(); attribute Promise<DOMString> bar; };').default_to_json_operation();
+        assert_equals(map.size, 0);
+    }, 'should not include attributes which are not JSON types');
+
+    test(function() {
+        var map = interfaceFrom('interface A { [Default] object toJSON(); DOMString bar(); };').default_to_json_operation();
+        assert_equals(map.size, 0);
+    }, 'should not include operations');
+
+    test(function() {
+        var map = interfaceFrom('interface A { [Default] object toJSON(); attribute DOMString bar; };').default_to_json_operation();
+        assert_equals(map.size, 1);
+        assert_true(map.has("bar"));
+        assert_equals(map.get("bar").idlType, "DOMString");
+    }, 'should return a map whose key/value pair represent the identifier and IDL type of valid attributes');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A : B { [Default] object toJSON(); attribute DOMString a; };");
+        context.add_idls("interface B { [Default] object toJSON(); attribute long b; };");
+        var map = context.members.A.default_to_json_operation();
+        assert_array_equals([...map.keys()], ["b", "a"]);
+        assert_array_equals([...map.values()].map(v => v.idlType), ["long", "DOMString"]);
+    }, 'should return a properly ordered map that contains IDL types of valid attributes for inherited interfaces');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A : B { attribute DOMString a; };");
+        context.add_idls("interface B { [Default] object toJSON(); attribute long b; };");
+        var map = context.members.A.default_to_json_operation();
+        assert_equals(map.size, 1);
+        assert_true(map.has("b"));
+        assert_equals(map.get("b").idlType, "long");
+        assert_array_equals([...map.keys()], ["b"]);
+    }, 'should not include attributes of the current interface when the [Default] toJSON method in inherited');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A : B { [Default] object toJSON(); };");
+        context.add_idls("interface B : C { [Default] object toJSON(); attribute DOMString foo; };");
+        context.add_idls("interface C { [Default] object toJSON(); attribute long foo; };");
+        var map = context.members.A.default_to_json_operation();
+        assert_equals(map.size, 1);
+        assert_true(map.has("foo"));
+        assert_equals(map.get("foo").idlType, "DOMString");
+    }, 'attributes declared further away in the inheritance hierarchy should be masked by attributes declared closer');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A : B { [Default] object toJSON(); attribute DOMString a; };");
+        context.add_idls("interface B { object toJSON(); attribute long b; };");
+        var map = context.members.A.default_to_json_operation();
+        assert_equals(map.size, 1);
+        assert_true(map.has("a"));
+        assert_false(map.has("b"));
+        assert_equals(map.get("a").idlType, "DOMString");
+    }, 'should return an ordered map that ignores attributes of inherited interfaces which do not declare a [Default] toJSON operation.');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A { [Default] object toJSON(); attribute DOMString a; };");
+        context.add_idls("interface N { [Default] object toJSON(); attribute long n; };");
+        context.add_idls("A implements N;");
+        var map = context.members.A.default_to_json_operation();
+        assert_array_equals([...map.keys()], ["a", "n"]);
+        assert_array_equals([...map.values()].map(v => v.idlType), ["DOMString", "long"]);
+    }, 'should return a properly ordered map that accounts for mixed-in interfaces which declare a [Default] toJSON operation.');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A { [Default] object toJSON(); attribute DOMString a; };");
+        context.add_idls("interface N { attribute long n; };");
+        context.add_idls("A implements N;");
+        var map = context.members.A.default_to_json_operation();
+        assert_equals(map.size, 1);
+        assert_true(map.has("a"));
+        assert_false(map.has("n"));
+        assert_equals(map.get("a").idlType, "DOMString");
+    }, 'should return a properly ordered map that ignores mixed-in interfaces which do not declare a [Default] toJSON operation.');
+
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls(document.getElementById('fragments').textContent);
+        var map = context.members.A.default_to_json_operation();
+        assert_array_equals([...map.keys()], ["b", "f", "i", "d", "g", "h", "j"]);
+        assert_array_equals([...map.values()].map(v => v.idlType), ["long", "unrestricted double", "boolean", "float", "octet", "DOMString", "D"]);
+    }, 'should return a properly ordered map of name/type pairs handling inherited and consequential interfaces as specified.');
+</script>
+</body>
+</html>
+
diff --git a/resources/test/tests/unit/IdlInterface/get_inheritance_stack.html b/resources/test/tests/unit/IdlInterface/get_inheritance_stack.html
new file mode 100644
index 0000000..66b79af
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterface/get_inheritance_stack.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlInterface.prototype.get_inheritance_stack()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+    test(function() {
+        var stack = interfaceFrom('interface A { };').get_inheritance_stack();
+        assert_array_equals(stack.map(i => i.name), ["A"]);
+    }, 'should return an array that includes itself.');
+
+    test(function() {
+        var i = interfaceFrom('interface A : B { };');
+        assert_throws(new Error(), _ => i.get_inheritance_stack());
+    }, "should throw for interfaces which inherit from another interface which wasn't added to the IdlArray");
+
+    test(function() {
+        var idl = new IdlArray();
+        idl.add_idls('interface A : B { };');
+        idl.add_untested_idls('interface B : C { }; interface C { };');
+        var A = idl.members["A"];
+        assert_array_equals(A.get_inheritance_stack().map(i => i.name), ["A", "B", "C"]);
+    }, 'should return an array of inherited interfaces in order of inheritance, starting with itself.');
+
+    test(function () {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface A : B { };');
+        idl.add_untested_idls('interface B : A { };');
+        idl.assert_throws('A has a circular dependency: A,B,A', i => i.test());
+    }, 'should throw when inheritance is circular');
+
+    test(function () {
+        var idl = new IdlArray();
+        idl.add_untested_idls('interface A : B { };');
+        idl.assert_throws(
+            'Duplicate identifier A',
+            i => i.add_untested_idls('interface A : C { };'));
+    }, 'should throw when multiple inheritances defined');
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/unit/IdlInterface/has_default_to_json_regular_operation.html b/resources/test/tests/unit/IdlInterface/has_default_to_json_regular_operation.html
new file mode 100644
index 0000000..b47262b
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterface/has_default_to_json_regular_operation.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlInterface.prototype.has_default_to_json_regular_operation()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+    test(function() {
+        var i = interfaceFrom('interface A { };');
+        assert_false(i.has_default_to_json_regular_operation());
+    }, 'should return false when the interface declares no toJSON operation.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { static object toJSON(); };');
+        assert_false(i.has_default_to_json_regular_operation());
+    }, 'should return false when the interface declares a static toJSON operation.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { object toJSON(); };');
+        assert_false(i.has_default_to_json_regular_operation());
+    }, 'should return false when the interface declares a regular toJSON operation with no extended attribute.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { [x] object toJSON(); };');
+        assert_false(i.has_default_to_json_regular_operation());
+    }, 'should return false when the interface declares a regular toJSON operation with another extented attribute.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { [Default] object toJSON(); };');
+        assert_true(i.has_default_to_json_regular_operation());
+    }, 'should return true when the interface declares a regular toJSON operation with the [Default] extented attribute.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { [Attr, AnotherAttr, Default] object toJSON(); };');
+        assert_true(i.has_default_to_json_regular_operation());
+    }, 'should return true when the interface declares a regular toJSON operation with multiple extended attributes, including [Default].');
+</script>
+</body>
+</html>
+
diff --git a/resources/test/tests/unit/IdlInterface/has_to_json_regular_operation.html b/resources/test/tests/unit/IdlInterface/has_to_json_regular_operation.html
new file mode 100644
index 0000000..a1a641b
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterface/has_to_json_regular_operation.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlInterface.prototype.has_to_json_regular_operation()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+    test(function() {
+        var i = interfaceFrom('interface A { };');
+        assert_false(i.has_to_json_regular_operation());
+    }, 'should return false when the interface declares no toJSON operation.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { static object toJSON(); };');
+        assert_false(i.has_to_json_regular_operation());
+    }, 'should return false when the interface declares a static toJSON operation.');
+
+    test(function() {
+        var i = interfaceFrom('interface A { object toJSON(); };');
+        assert_true(i.has_to_json_regular_operation());
+    }, 'should return true when the interface declares a regular toJSON operation.');
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/idlharness/IdlInterface/test_primary_interface_of_undefined.html b/resources/test/tests/unit/IdlInterface/test_primary_interface_of_undefined.html
similarity index 100%
rename from resources/test/tests/idlharness/IdlInterface/test_primary_interface_of_undefined.html
rename to resources/test/tests/unit/IdlInterface/test_primary_interface_of_undefined.html
diff --git a/resources/test/tests/unit/IdlInterface/traverse_inherited_and_consequential_interfaces.html b/resources/test/tests/unit/IdlInterface/traverse_inherited_and_consequential_interfaces.html
new file mode 100644
index 0000000..21817c4
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterface/traverse_inherited_and_consequential_interfaces.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlDictionary.prototype.traverse_inherited_and_consequential_interfaces()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<pre id=fragments>
+    interface A : B { };
+    interface B : C { };
+    interface C { };
+    interface D : E { };
+    interface E : F { };
+    interface F { };
+    interface G { };
+    interface H { };
+    interface I { };
+    interface J { };
+
+    A implements G;
+    A implements H;
+    B implements D;
+    E implements I;
+    H implements J;
+</pre>
+<script>
+    "use strict";
+    test(function() {
+        var interfaces = [];
+        interfaceFrom('interface A { };').traverse_inherited_and_consequential_interfaces(function(i) {
+            interfaces.push(i.name);
+        });
+        assert_array_equals(interfaces, ["A"]);
+    }, 'should return an array that includes itself.');
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A { }; A implements B;");
+        assert_throws(new Error(), _ => context.members["A"].traverse_inherited_and_consequential_interfaces(function() {}));
+    }, "should throw for interfaces which are extended by another interface which wasn't added to the IdlArray.");
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls("interface A { };");
+        assert_throws(new TypeError(), _ => context.members["A"].traverse_inherited_and_consequential_interfaces());
+    }, "should throw if not passed a callback");
+
+    test(function() {
+        var context = new IdlArray();
+        context.add_idls(document.getElementById('fragments').textContent);
+        var interfaces = [];
+        context.members["A"].traverse_inherited_and_consequential_interfaces(function(i) {
+            interfaces.push(i.name);
+        });
+        assert_array_equals(interfaces, ["C", "B", "F", "E", "I", "D", "A", "G", "H", "J"]);
+    }, 'should return an array that includes the identifier of the interfaces in the correct order.');
+</script>
+</body>
+</html>
diff --git a/resources/test/tests/unit/IdlInterfaceMember/is_to_json_regular_operation.html b/resources/test/tests/unit/IdlInterfaceMember/is_to_json_regular_operation.html
new file mode 100644
index 0000000..abfa4ab
--- /dev/null
+++ b/resources/test/tests/unit/IdlInterfaceMember/is_to_json_regular_operation.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>IdlInterfaceMember.prototype.is_to_json_regular_operation()</title>
+</head>
+<body>
+<div id="log"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script src="../../../idl-helper.js"></script>
+<script>
+    "use strict";
+    test(function() {
+        var m = memberFrom("readonly attribute DOMString foo");
+        assert_false(m.is_to_json_regular_operation());
+    }, 'should return false when member is an attribute.');
+
+    test(function() {
+        var m = memberFrom("static void foo()");
+        assert_false(m.is_to_json_regular_operation());
+    }, 'should return false when member is a static operation.');
+
+    test(function() {
+        var m = memberFrom("static object toJSON()");
+        assert_false(m.is_to_json_regular_operation());
+    }, 'should return false when member is a static toJSON operation.');
+
+    test(function() {
+        var m = memberFrom("object toJSON()");
+        assert_true(m.is_to_json_regular_operation());
+    }, 'should return true when member is a regular toJSON operation.');
+
+    test(function() {
+        var m = memberFrom("[Foo] object toJSON()");
+        assert_true(m.is_to_json_regular_operation());
+    }, 'should return true when member is a regular toJSON operation with extensible attributes.');
+</script>
+</body>
+</html>
+
diff --git a/resources/test/tests/idlharness/OWNERS b/resources/test/tests/unit/OWNERS
similarity index 100%
rename from resources/test/tests/idlharness/OWNERS
rename to resources/test/tests/unit/OWNERS
diff --git a/resources/test/tests/idlharness/basic.html b/resources/test/tests/unit/basic.html
similarity index 100%
rename from resources/test/tests/idlharness/basic.html
rename to resources/test/tests/unit/basic.html
diff --git a/resources/test/tests/worker-dedicated.html b/resources/test/tests/worker-dedicated.html
deleted file mode 100644
index 98a010d..0000000
--- a/resources/test/tests/worker-dedicated.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Dedicated Worker Tests</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<h1>Dedicated Web Worker Tests</h1>
-<p>Demonstrates running <tt>testharness</tt> based tests inside a dedicated web worker.
-<p>The test harness is expected to fail due to an uncaught exception in one worker.</p>
-<div id="log"></div>
-
-<script>
-test(function(t) {
-        assert_true("Worker" in self, "Browser should support Workers");
-    },
-    "Browser supports Workers");
-
-fetch_tests_from_worker(new Worker("worker.js"));
-
-fetch_tests_from_worker(new Worker("worker-error.js"));
-
-test(function(t) {
-        assert_false(false, "False is false");
-    },
-    "Test running on main document.");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "ERROR",
-    "message": "Error: This failure is expected."
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Browser supports Workers",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Test running on main document.",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Untitled",
-      "properties": {},
-      "message": "Error: This failure is expected."
-    },
-    {
-      "status_string": "PASS",
-      "name": "Worker async_test that completes successfully",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Worker test that completes successfully",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "NOTRUN",
-      "name": "Worker test that doesn't run ('NOT RUN')",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Worker test that fails ('FAIL')",
-      "properties": {},
-      "message": "assert_true: Failing test expected true got false"
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "Worker test that times out ('TIMEOUT')",
-      "properties": {},
-      "message": "Test timed out"
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
diff --git a/resources/test/tests/worker-error.js b/resources/test/tests/worker-error.js
deleted file mode 100644
index a25f0db..0000000
--- a/resources/test/tests/worker-error.js
+++ /dev/null
@@ -1,3 +0,0 @@
-importScripts("../../testharness.js");
-
-throw new Error("This failure is expected.");
diff --git a/resources/test/tests/worker-service.html b/resources/test/tests/worker-service.html
deleted file mode 100644
index d970827..0000000
--- a/resources/test/tests/worker-service.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with a service worker</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<h1>Service Worker Tests</h1>
-<p>Demonstrates running <tt>testharness</tt> based tests inside a service worker.
-<p>The test harness should time out due to one of the tests inside the worker timing out.
-<p>This test assumes that the browser supports <a href="http://www.w3.org/TR/service-workers/">ServiceWorkers</a>.
-<div id="log"></div>
-
-<script>
-test(
-    function(t) {
-        assert_true("serviceWorker" in navigator,
-                    "navigator.serviceWorker exists");
-    },
-    "Browser supports ServiceWorker");
-
-promise_test(
-    function() {
-        // Since the service worker registration could be in an indeterminate
-        // state (due to, for example, a previous test run failing), we start by
-        // unregstering our service worker and then registering it again.
-        var scope = "service-worker-scope";
-        var worker_url = "worker.js";
-
-        return navigator.serviceWorker.register(worker_url, {scope: scope})
-            .then(
-                function(registration) {
-                    return registration.unregister();
-                })
-            .then(
-                function() {
-                    return navigator.serviceWorker.register(worker_url, {scope: scope});
-                })
-            .then(
-                function(registration) {
-                    add_completion_callback(
-                        function() {
-                            registration.unregister();
-                        });
-
-                    return new Promise(
-                        function(resolve) {
-                            registration.addEventListener("updatefound",
-                                function() {
-                                    resolve(registration.installing);
-                                });
-                        });
-                })
-            .then(
-                function(worker) {
-                    fetch_tests_from_worker(worker);
-                });
-    },
-    "Register ServiceWorker");
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "TIMEOUT",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Browser supports ServiceWorker",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Register ServiceWorker",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Worker async_test that completes successfully",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "PASS",
-      "name": "Worker test that completes successfully",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "NOTRUN",
-      "name": "Worker test that doesn't run ('NOT RUN')",
-      "properties": {},
-      "message": null
-    },
-    {
-      "status_string": "FAIL",
-      "name": "Worker test that fails ('FAIL')",
-      "properties": {},
-      "message": "assert_true: Failing test expected true got false"
-    },
-    {
-      "status_string": "TIMEOUT",
-      "name": "Worker test that times out ('TIMEOUT')",
-      "properties": {},
-      "message": "Test timed out"
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
diff --git a/resources/test/tests/worker-shared.html b/resources/test/tests/worker-shared.html
deleted file mode 100644
index 9c5666b..0000000
--- a/resources/test/tests/worker-shared.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<title>Example with a shared worker</title>
-<script src="../../testharness.js"></script>
-<script src="../../testharnessreport.js"></script>
-</head>
-<body>
-<h1>Shared Web Worker Tests</h1>
-<p>Demonstrates running <tt>testharness</tt> based tests inside a shared worker.
-<p>The test harness should time out due to one of the tests in the worker timing out.
-<p>This test assumes that the browser supports <a href="http://www.w3.org/TR/workers/#shared-workers-and-the-sharedworker-interface">shared web workers</a>.
-<div id="log"></div>
-
-<script>
-test(
-    function(t) {
-        assert_true("SharedWorker" in self,
-                    "Browser should support SharedWorkers");
-    },
-    "Browser supports SharedWorkers");
-
-fetch_tests_from_worker(new SharedWorker("worker.js",
-                                         "My shared worker"));
-</script>
-<script type="text/json" id="expected">
-{
-  "summarized_status": {
-    "status_string": "TIMEOUT",
-    "message": null
-  },
-  "summarized_tests": [
-    {
-      "status_string": "PASS",
-      "name": "Browser supports SharedWorkers",
-      "properties": {},
-      "message": null
-    },
-    {
-      "message": null,
-      "name": "Worker async_test that completes successfully",
-      "properties": {},
-      "status_string": "PASS"
-    },
-    {
-      "message": null,
-      "name": "Worker test that completes successfully",
-      "properties": {},
-      "status_string": "PASS"
-    },
-    {
-      "message": null,
-      "name": "Worker test that doesn't run ('NOT RUN')",
-      "properties": {},
-      "status_string": "NOTRUN"
-    },
-    {
-      "message": "assert_true: Failing test expected true got false",
-      "name": "Worker test that fails ('FAIL')",
-      "properties": {},
-      "status_string": "FAIL"
-    },
-    {
-      "message": "Test timed out",
-      "name": "Worker test that times out ('TIMEOUT')",
-      "properties": {},
-      "status_string": "TIMEOUT"
-    }
-  ],
-  "type": "complete"
-}
-</script>
-</body>
diff --git a/resources/test/tests/worker.js b/resources/test/tests/worker.js
deleted file mode 100644
index a25621a..0000000
--- a/resources/test/tests/worker.js
+++ /dev/null
@@ -1,34 +0,0 @@
-importScripts("../../testharness.js");
-
-test(
-    function(test) {
-        assert_true(true, "True is true");
-    },
-    "Worker test that completes successfully");
-
-test(
-    function(test) {
-        assert_true(false, "Failing test");
-    },
-    "Worker test that fails ('FAIL')");
-
-async_test(
-    function(test) {
-        assert_true(true, "True is true");
-    },
-    "Worker test that times out ('TIMEOUT')");
-
-async_test("Worker test that doesn't run ('NOT RUN')");
-
-async_test(
-    function(test) {
-        self.setTimeout(
-            function() {
-                test.done();
-            },
-            0);
-    },
-    "Worker async_test that completes successfully");
-
-// An explicit done() is required for dedicated and shared web workers.
-done();
diff --git a/resources/test/wptserver.py b/resources/test/wptserver.py
index 79220e8..6acad83 100644
--- a/resources/test/wptserver.py
+++ b/resources/test/wptserver.py
@@ -1,3 +1,4 @@
+import logging
 import os
 import subprocess
 import time
@@ -19,15 +20,19 @@
 
     def start(self):
         self.devnull = open(os.devnull, 'w')
+        wptserve_cmd = [os.path.join(self.wpt_root, 'wpt'), 'serve']
+        logging.info('Executing %s' % ' '.join(wptserve_cmd))
         self.proc = subprocess.Popen(
-            [os.path.join(self.wpt_root, 'wpt'), 'serve'],
+            wptserve_cmd,
             stderr=self.devnull,
             cwd=self.wpt_root)
 
         for retry in range(5):
             # Exponential backoff.
             time.sleep(2 ** retry)
-            if self.proc.poll() != None:
+            exit_code = self.proc.poll()
+            if exit_code != None:
+                logging.warn('Command "%s" exited with %s', ' '.join(wptserve_cmd), exit_code)
                 break
             try:
                 urllib2.urlopen(self.base_url, timeout=1)
@@ -35,7 +40,7 @@
             except urllib2.URLError:
                 pass
 
-        raise Exception('Could not start wptserve.')
+        raise Exception('Could not start wptserve on %s' % self.base_url)
 
     def stop(self):
         self.proc.terminate()
diff --git a/resources/testharness.css b/resources/testharness.css
deleted file mode 100644
index e2ed5a0..0000000
--- a/resources/testharness.css
+++ /dev/null
@@ -1,102 +0,0 @@
-html {
-    font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;
-}
-
-#log .warning,
-#log .warning a {
-  color: black;
-  background: yellow;
-}
-
-#log .error,
-#log .error a {
-  color: white;
-  background: red;
-}
-
-section#summary {
-    margin-bottom:1em;
-}
-
-table#results {
-    border-collapse:collapse;
-    table-layout:fixed;
-    width:100%;
-}
-
-table#results th:first-child,
-table#results td:first-child {
-    width:4em;
-}
-
-table#results th:last-child,
-table#results td:last-child {
-    width:50%;
-}
-
-table#results.assertions th:last-child,
-table#results.assertions td:last-child {
-    width:35%;
-}
-
-table#results th {
-    padding:0;
-    padding-bottom:0.5em;
-    border-bottom:medium solid black;
-}
-
-table#results td {
-    padding:1em;
-    padding-bottom:0.5em;
-    border-bottom:thin solid black;
-}
-
-tr.pass > td:first-child {
-    color:green;
-}
-
-tr.fail > td:first-child {
-    color:red;
-}
-
-tr.timeout > td:first-child {
-    color:red;
-}
-
-tr.notrun > td:first-child {
-    color:blue;
-}
-
-.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child {
-    font-variant:small-caps;
-}
-
-table#results span {
-    display:block;
-}
-
-table#results span.expected {
-    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;
-    white-space:pre;
-}
-
-table#results span.actual {
-    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;
-    white-space:pre;
-}
-
-span.ok {
-    color:green;
-}
-
-tr.error {
-    color:red;
-}
-
-span.timeout {
-    color:red;
-}
-
-span.ok, span.timeout, span.error {
-    font-variant:small-caps;
-}
\ No newline at end of file
diff --git a/resources/testharness.js b/resources/testharness.js
index a48a0cf..9889795 100644
--- a/resources/testharness.js
+++ b/resources/testharness.js
@@ -2403,15 +2403,11 @@
             log.removeChild(log.lastChild);
         }
 
-        var harness_url = get_harness_url();
-        if (harness_url !== undefined) {
-            var stylesheet = output_document.createElementNS(xhtml_ns, "link");
-            stylesheet.setAttribute("rel", "stylesheet");
-            stylesheet.setAttribute("href", harness_url + "testharness.css");
-            var heads = output_document.getElementsByTagName("head");
-            if (heads.length) {
-                heads[0].appendChild(stylesheet);
-            }
+        var stylesheet = output_document.createElementNS(xhtml_ns, "style");
+        stylesheet.textContent = stylesheetContent;
+        var heads = output_document.getElementsByTagName("head");
+        if (heads.length) {
+            heads[0].appendChild(stylesheet);
         }
 
         var status_text_harness = {};
@@ -2921,16 +2917,6 @@
         return undefined;
     }
 
-    /** Returns the URL path at which the files for testharness.js are assumed to reside (e.g., '/resources/').
-        The path is derived from inspecting the 'src' of the <script> tag that included 'testharness.js'. */
-    function get_harness_url()
-    {
-        var script_url = get_script_url();
-
-        // Exclude the 'testharness.js' file from the returned path, but '+ 1' to include the trailing slash.
-        return script_url ? script_url.slice(0, script_url.lastIndexOf('/') + 1) : undefined;
-    }
-
     function supports_post_message(w)
     {
         var supports;
@@ -3009,5 +2995,113 @@
 
     test_environment.on_tests_ready();
 
+    /**
+     * Stylesheet
+     */
+     var stylesheetContent = "\
+html {\
+    font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans;\
+}\
+\
+#log .warning,\
+#log .warning a {\
+  color: black;\
+  background: yellow;\
+}\
+\
+#log .error,\
+#log .error a {\
+  color: white;\
+  background: red;\
+}\
+\
+section#summary {\
+    margin-bottom:1em;\
+}\
+\
+table#results {\
+    border-collapse:collapse;\
+    table-layout:fixed;\
+    width:100%;\
+}\
+\
+table#results th:first-child,\
+table#results td:first-child {\
+    width:4em;\
+}\
+\
+table#results th:last-child,\
+table#results td:last-child {\
+    width:50%;\
+}\
+\
+table#results.assertions th:last-child,\
+table#results.assertions td:last-child {\
+    width:35%;\
+}\
+\
+table#results th {\
+    padding:0;\
+    padding-bottom:0.5em;\
+    border-bottom:medium solid black;\
+}\
+\
+table#results td {\
+    padding:1em;\
+    padding-bottom:0.5em;\
+    border-bottom:thin solid black;\
+}\
+\
+tr.pass > td:first-child {\
+    color:green;\
+}\
+\
+tr.fail > td:first-child {\
+    color:red;\
+}\
+\
+tr.timeout > td:first-child {\
+    color:red;\
+}\
+\
+tr.notrun > td:first-child {\
+    color:blue;\
+}\
+\
+.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child {\
+    font-variant:small-caps;\
+}\
+\
+table#results span {\
+    display:block;\
+}\
+\
+table#results span.expected {\
+    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;\
+    white-space:pre;\
+}\
+\
+table#results span.actual {\
+    font-family:DejaVu Sans Mono, Bitstream Vera Sans Mono, Monospace;\
+    white-space:pre;\
+}\
+\
+span.ok {\
+    color:green;\
+}\
+\
+tr.error {\
+    color:red;\
+}\
+\
+span.timeout {\
+    color:red;\
+}\
+\
+span.ok, span.timeout, span.error {\
+    font-variant:small-caps;\
+}\
+";
+
 })(this);
 // vim: set expandtab shiftwidth=4 tabstop=4:
diff --git a/service-workers/cache-storage/serviceworker/cache-keys-attributes-for-service-worker.https.html b/service-workers/cache-storage/serviceworker/cache-keys-attributes-for-service-worker.https.html
index 2024076..b6044c5 100644
--- a/service-workers/cache-storage/serviceworker/cache-keys-attributes-for-service-worker.https.html
+++ b/service-workers/cache-storage/serviceworker/cache-keys-attributes-for-service-worker.https.html
@@ -7,6 +7,10 @@
 <script>
 const worker = '../resources/cache-keys-attributes-for-service-worker.js';
 
+function wait(ms) {
+  return new Promise(resolve => step_timeout(resolve, ms));
+}
+
 promise_test(async (t) => {
     const scope = '../resources/blank.html?name=isReloadNavigation';
     let frame;
@@ -33,4 +37,39 @@
       }
     }
 }, 'Request.IsReloadNavigation should persist.');
+
+promise_test(async (t) => {
+    const scope = '../resources/blank.html?name=isHistoryNavigation';
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'original: false, stored: false');
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.onload = resolve;
+        frame.src = '../resources/blank.html?ignore';
+      });
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.onload = resolve;
+        frame.contentWindow.history.go(-1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'original: true, stored: true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+}, 'Request.IsHistoryNavigation should persist.');
 </script>
diff --git a/service-workers/service-worker/dedicated-worker-service-worker-interception.https.html b/service-workers/service-worker/dedicated-worker-service-worker-interception.https.html
new file mode 100644
index 0000000..2144f48
--- /dev/null
+++ b/service-workers/service-worker/dedicated-worker-service-worker-interception.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: ServiceWorker interception</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/test-helpers.sub.js"></script>
+<script>
+
+// Note that Chrome cannot pass these tests because of https://crbug.com/731599.
+
+function service_worker_interception_test(url, description) {
+  promise_test(async t => {
+    // Register a service worker whose scope includes |url|.
+    const kServiceWorkerScriptURL =
+        'resources/service-worker-interception-service-worker.js';
+    const registration = await service_worker_unregister_and_register(
+        t, kServiceWorkerScriptURL, url);
+    add_result_callback(() => registration.unregister());
+    await wait_for_state(t, registration.installing, 'activated');
+
+    // Start a dedicated worker for |url|. The top-level script request and any
+    // module imports should be intercepted by the service worker.
+    const worker = new Worker(url, { type: 'module' });
+    const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+    assert_equals(msg_event.data, 'LOADED_FROM_SERVICE_WORKER');
+  }, description);
+}
+
+service_worker_interception_test(
+    'resources/service-worker-interception-network-worker.js',
+    'Top-level module loading should be intercepted by a service worker.');
+
+service_worker_interception_test(
+    'resources/service-worker-interception-static-import-worker.js',
+    'Static import should be intercepted by a service worker.');
+
+service_worker_interception_test(
+    'resources/service-worker-interception-dynamic-import-worker.js',
+    'Dynamic import should be intercepted by a service worker.');
+
+</script>
diff --git a/service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html b/service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html
new file mode 100644
index 0000000..3cf5922
--- /dev/null
+++ b/service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<body>
+<p>Click <a href="resources/install-worker.html?isHistoryNavigation&amp;script=fetch-event-test-worker.js">this link</a>.
+   Once you see &quot;method = GET,...&quot; in the page, go to another page, and then go back to the page using the Backward button.
+   You should see &quot;method = GET, isHistoryNavigation = true&quot;.
+</p>
+</body>
+</html>
diff --git a/service-workers/service-worker/fetch-event-is-history-forward-navigation-manual.https.html b/service-workers/service-worker/fetch-event-is-history-forward-navigation-manual.https.html
new file mode 100644
index 0000000..401939b
--- /dev/null
+++ b/service-workers/service-worker/fetch-event-is-history-forward-navigation-manual.https.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<body>
+<p>Click <a href="resources/install-worker.html?isHistoryNavigation&amp;script=fetch-event-test-worker.js">this link</a>.
+   Once you see &quot;method = GET,...&quot; in the page, go back to this page using the Backward button, and then go to the second page using the Forward button.
+   You should see &quot;method = GET, isHistoryNavigation = true&quot;.
+</p>
+</body>
+</html>
diff --git a/service-workers/service-worker/fetch-event.https.html b/service-workers/service-worker/fetch-event.https.html
index 02f8d0e..8ecf8e6 100644
--- a/service-workers/service-worker/fetch-event.https.html
+++ b/service-workers/service-worker/fetch-event.https.html
@@ -770,5 +770,311 @@
     }
   }, 'FetchEvent#request.isReloadNavigation is true (with history traversal)');
 
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = anotherUrl;
+      });
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-1))');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(anotherUrl);
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = scope;
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-1);
+      });
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(1))');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(anotherUrl);
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = scope;
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-1);
+      });
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(0);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is false (with history.go(0))');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(anotherUrl);
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = scope;
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-1);
+      });
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.location.reload();
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is false (with location.reload)');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    const oneAnotherUrl = new Request('resources/simple.html?').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = anotherUrl;
+      });
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = oneAnotherUrl;
+      });
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-2);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-2))');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    const oneAnotherUrl = new Request('resources/simple.html?').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(anotherUrl);
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = oneAnotherUrl;
+      });
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = scope;
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-2);
+      });
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(2);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(2))');
+
+promise_test(async (t) => {
+    const scope = 'resources/simple.html?isHistoryNavigation';
+    const anotherUrl = new Request('resources/simple.html').url;
+    let frame;
+    let reg;
+
+    try {
+      reg = await service_worker_unregister_and_register(t, worker, scope);
+      await wait_for_state(t, reg.installing, 'activated');
+      frame = await with_iframe(scope);
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = GET, isHistoryNavigation = false');
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        const form = frame.contentDocument.createElement('form');
+        form.method = 'POST';
+        form.name = 'form';
+        form.action = new Request(scope).url;
+        frame.contentDocument.body.appendChild(form);
+        form.submit();
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = POST, isHistoryNavigation = false');
+      // Use step_timeout(0) to ensure the history entry is created for Blink
+      // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.src = anotherUrl;
+      });
+      assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+      await wait(0);
+      await new Promise((resolve) => {
+        frame.addEventListener('load', resolve);
+        frame.contentWindow.history.go(-1);
+      });
+      assert_equals(frame.contentDocument.body.textContent,
+                    'method = POST, isHistoryNavigation = true');
+    } finally {
+      if (frame) {
+        frame.remove();
+      }
+      if (reg) {
+        await reg.unregister();
+      }
+    }
+  }, 'FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))');
+
 </script>
 </body>
diff --git a/service-workers/service-worker/postmessage.https.html b/service-workers/service-worker/postmessage.https.html
index 5c43b95..6b2f6d7 100644
--- a/service-workers/service-worker/postmessage.https.html
+++ b/service-workers/service-worker/postmessage.https.html
@@ -16,7 +16,7 @@
           // TODO: return the Promise created by `r.unregister`once
           // `testharness.js` has been updated to honor thenables returned by
           // cleanup functions.
-          // See https://github.com/w3c/web-platform-tests/pull/8748
+          // See https://github.com/web-platform-tests/wpt/pull/8748
           t.add_cleanup(() => { r.unregister(); });
           registration = r;
           worker = registration.installing;
@@ -69,7 +69,7 @@
           // TODO: return the Promise created by `r.unregister`once
           // `testharness.js` has been updated to honor thenables returned by
           // cleanup functions.
-          // See https://github.com/w3c/web-platform-tests/pull/8748
+          // See https://github.com/web-platform-tests/wpt/pull/8748
           t.add_cleanup(() => { r.unregister(); });
 
           var ab = text_encoder.encode(message);
@@ -113,7 +113,7 @@
           // TODO: return the Promise created by `r.unregister`once
           // `testharness.js` has been updated to honor thenables returned by
           // cleanup functions.
-          // See https://github.com/w3c/web-platform-tests/pull/8748
+          // See https://github.com/web-platform-tests/wpt/pull/8748
           t.add_cleanup(() => { r.unregister(); });
 
           var channel = new MessageChannel;
diff --git a/service-workers/service-worker/resource-timing.https.html b/service-workers/service-worker/resource-timing.https.html
index f6e197c..123bbc8 100644
--- a/service-workers/service-worker/resource-timing.https.html
+++ b/service-workers/service-worker/resource-timing.https.html
@@ -13,15 +13,18 @@
 }
 
 function verify(options) {
-    var url = options.mode === 'cross-origin' ? crossOriginUrl(options.resource)
+    const url = options.mode === 'cross-origin' ? crossOriginUrl(options.resource)
                                       : resourceUrl(options.resource);
-    var entryList = options.performance.getEntriesByName(url);
-    if (entryList.length === 0 && options.allow_no_performance_entry) {
+    const entryList = options.performance.getEntriesByName(url);
+    if (options.should_no_performance_entry) {
         // The performance timeline may not have an entry for a resource
         // which failed to load.
+        assert_equals(entryList.length, 0, options.description);
         return;
     }
-    var entry = entryList[0];
+    assert_equals(entryList.length, 1, options.description);
+    const entry = entryList[0];
+    assert_equals(entry.entryType, 'resource', options.description);
     assert_greater_than(entry.workerStart, 0, options.description);
     assert_greater_than_equal(entry.workerStart, entry.startTime, options.description);
     assert_less_than_equal(entry.workerStart, entry.fetchStart, options.description);
@@ -42,12 +45,12 @@
     }
 }
 
-async_test(function(t) {
-    var worker_url = 'resources/resource-timing-worker.js';
-    var scope = 'resources/resource-timing-iframe.sub.html';
-    var registration;
+promise_test(function(t) {
+    const worker_url = 'resources/resource-timing-worker.js';
+    const scope = 'resources/resource-timing-iframe.sub.html';
+    let registration;
 
-    service_worker_unregister_and_register(t, worker_url, scope)
+    return service_worker_unregister_and_register(t, worker_url, scope)
       .then(function(r) {
           registration = r;
           return wait_for_state(t, r.installing, 'activated');
@@ -56,7 +59,7 @@
           return with_iframe(scope);
         })
       .then(function(frame) {
-          var performance = frame.contentWindow.performance;
+          const performance = frame.contentWindow.performance;
           verify({
               performance: performance,
               resource: 'resources/dummy.js',
@@ -96,28 +99,45 @@
               resource: 'resources/missing.jpg',
               mode: 'same-origin',
               description: 'Network fallback load failure',
-              allow_no_performance_entry: true,
+              should_no_performance_entry: true,
           });
           verify({
               performance: performance,
               resource: 'resources/missing.jpg',
               mode: 'cross-origin',
               description: 'Network fallback cross-origin load failure',
-              allow_no_performance_entry: true,
+              should_no_performance_entry: true,
+          });
+          // Tests for respondWith(fetch()).
+          verify({
+              performance: performance,
+              resource: 'resources/missing.jpg?SWRespondsWithFetch',
+              mode: 'same-origin',
+              description: 'Resource in iframe, nonexistent but responded with fetch to another.',
+          });
+          verify({
+              performance: performance,
+              resource: 'resources/dummy.txt?SWFetched',
+              mode: 'same-origin',
+              description: 'Resource fetched as response from missing.jpg?SWRespondsWithFetch.',
+              should_no_performance_entry: true,
+          });
+          // Test for a normal resource that is unaffected by the Service Worker.
+          verify({
+              performance: performance,
+              resource: 'resources/empty-worker.js',
+              mode: 'same-origin',
+              description: 'Resource untouched by the Service Worker.',
           });
 
           frame.remove();
           return registration.unregister();
-        })
-      .then(function() {
-          t.done();
-        })
-      .catch(unreached_rejection(t));
+      });
 }, 'Controlled resource loads');
 
-test(function() {
-    var url = resourceUrl('resources/test-helpers.sub.js');
-    var entry = window.performance.getEntriesByName(url)[0];
+test(() => {
+    const url = resourceUrl('resources/test-helpers.sub.js');
+    const entry = window.performance.getEntriesByName(url)[0];
     assert_equals(entry.workerStart, 0, 'Non-controlled');
 }, 'Non-controlled resource loads');
 
diff --git a/service-workers/service-worker/resources/fetch-event-test-worker.js b/service-workers/service-worker/resources/fetch-event-test-worker.js
index a313094..d503a66 100644
--- a/service-workers/service-worker/resources/fetch-event-test-worker.js
+++ b/service-workers/service-worker/resources/fetch-event-test-worker.js
@@ -137,6 +137,14 @@
   event.respondWith(new Response(body));
 }
 
+function handleIsHistoryNavigation(event) {
+  const request = event.request;
+  const body =
+    `method = ${request.method}, ` +
+    `isHistoryNavigation = ${request.isHistoryNavigation}`;
+  event.respondWith(new Response(body));
+}
+
 self.addEventListener('fetch', function(event) {
     var url = event.request.url;
     var handlers = [
@@ -160,6 +168,7 @@
       { pattern: '?request-body', fn: handleRequestBody },
       { pattern: '?keepalive', fn: handleKeepalive },
       { pattern: '?isReloadNavigation', fn: handleIsReloadNavigation },
+      { pattern: '?isHistoryNavigation', fn: handleIsHistoryNavigation },
     ];
 
     var handler = null;
diff --git a/service-workers/service-worker/resources/resource-timing-iframe.sub.html b/service-workers/service-worker/resources/resource-timing-iframe.sub.html
index 69cff7c..4b62657 100644
--- a/service-workers/service-worker/resources/resource-timing-iframe.sub.html
+++ b/service-workers/service-worker/resources/resource-timing-iframe.sub.html
@@ -6,3 +6,5 @@
 <img src="https://{{domains[www1]}}:{{ports[https][0]}}/service-workers/service-worker/resources/square.png">
 <img src="missing.jpg">
 <img src="https://{{domains[www1]}}:{{ports[https][0]}}/service-workers/service-worker/resources/missing.jpg">
+<img src='missing.jpg?SWRespondsWithFetch'>
+<script src='empty-worker.js'></script>
diff --git a/service-workers/service-worker/resources/resource-timing-worker.js b/service-workers/service-worker/resources/resource-timing-worker.js
index 8b30467..5bc6ef3 100644
--- a/service-workers/service-worker/resources/resource-timing-worker.js
+++ b/service-workers/service-worker/resources/resource-timing-worker.js
@@ -6,4 +6,7 @@
       setTimeout(_ => resolve(new Response('// Empty javascript')), 50);
     }));
   }
+  else if (event.request.url.indexOf('missing.jpg?SWRespondsWithFetch') != -1) {
+    event.respondWith(fetch('dummy.txt?SWFetched'));
+  }
 });
diff --git a/service-workers/service-worker/resources/service-worker-interception-dynamic-import-worker.js b/service-workers/service-worker/resources/service-worker-interception-dynamic-import-worker.js
new file mode 100644
index 0000000..680e07f
--- /dev/null
+++ b/service-workers/service-worker/resources/service-worker-interception-dynamic-import-worker.js
@@ -0,0 +1 @@
+import('./service-worker-interception-network-worker.js');
diff --git a/service-workers/service-worker/resources/service-worker-interception-network-worker.js b/service-workers/service-worker/resources/service-worker-interception-network-worker.js
new file mode 100644
index 0000000..5ff3900
--- /dev/null
+++ b/service-workers/service-worker/resources/service-worker-interception-network-worker.js
@@ -0,0 +1 @@
+postMessage('LOADED_FROM_NETWORK');
diff --git a/service-workers/service-worker/resources/service-worker-interception-service-worker.js b/service-workers/service-worker/resources/service-worker-interception-service-worker.js
new file mode 100644
index 0000000..6b43a37
--- /dev/null
+++ b/service-workers/service-worker/resources/service-worker-interception-service-worker.js
@@ -0,0 +1,9 @@
+const kURL = '/service-worker-interception-network-worker.js';
+const kScript = 'postMessage("LOADED_FROM_SERVICE_WORKER")';
+const kHeaders = [['content-type', 'text/javascript']];
+
+self.addEventListener('fetch', e => {
+  // Serve a generated response for kURL.
+  if (e.request.url.indexOf(kURL) != -1)
+    e.respondWith(new Response(kScript, { headers: kHeaders }));
+});
diff --git a/service-workers/service-worker/resources/service-worker-interception-static-import-worker.js b/service-workers/service-worker/resources/service-worker-interception-static-import-worker.js
new file mode 100644
index 0000000..e570958
--- /dev/null
+++ b/service-workers/service-worker/resources/service-worker-interception-static-import-worker.js
@@ -0,0 +1 @@
+import './service-worker-interception-network-worker.js';
diff --git a/service-workers/service-worker/resources/test-helpers.sub.js b/service-workers/service-worker/resources/test-helpers.sub.js
index 8fa3e3b..7efde35 100644
--- a/service-workers/service-worker/resources/test-helpers.sub.js
+++ b/service-workers/service-worker/resources/test-helpers.sub.js
@@ -46,9 +46,14 @@
     });
 }
 
-// Adds an iframe to the document and returns a promise that resolves to the
-// iframe when it finishes loading. The caller is responsible for removing the
-// iframe later if needed.
+/**
+ * Adds an iframe to the document and returns a promise that resolves to the
+ * iframe when it finishes loading. The caller is responsible for removing the
+ * iframe later if needed.
+ *
+ * @param {string} url
+ * @returns {HTMLIFrameElement}
+ */
 function with_iframe(url) {
   return new Promise(function(resolve) {
       var frame = document.createElement('iframe');
diff --git a/service-workers/service-worker/windowclient-navigate.https.html b/service-workers/service-worker/windowclient-navigate.https.html
index 8fb467a..8ea279e 100644
--- a/service-workers/service-worker/windowclient-navigate.https.html
+++ b/service-workers/service-worker/windowclient-navigate.https.html
@@ -166,7 +166,7 @@
     // executes. `Test#add_cleanup` cannot be used for this purpose because the
     // operation is asynchronous, and `add_cleanup` does not support
     // asynchronous operations at the time of this writing. See
-    // https://github.com/w3c/web-platform-tests/issues/6075
+    // https://github.com/web-platform-tests/wpt/issues/6075
     // Ensure also that test failure is not hidden by successful cleanup
     // operation.
     return test_body
diff --git a/shadow-dom/Document-prototype-currentScript.html b/shadow-dom/Document-prototype-currentScript.html
index 867cea9..ff0344f 100644
--- a/shadow-dom/Document-prototype-currentScript.html
+++ b/shadow-dom/Document-prototype-currentScript.html
@@ -40,10 +40,11 @@
 function executeNextTest()
 {
     var testCase = asyncScriptTests.shift();
-    var mode = testCase.mode;
     if (!testCase)
         return;
 
+    var mode = testCase.mode;
+
     testCase.test.step(function () {
         testedScriptElement = document.createElement('script');
         testedScriptElement.src = 'resources/Document-prototype-currentScript-helper.js';
@@ -75,7 +76,7 @@
         test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree'),
         mode: null, remove: false, expected: function () { return testedScriptElement; }},
     {
-        test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree'),
+        test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree (2)'),
         mode: null, remove: true, expected: function () { return testedScriptElement; }},
     {
         test: async_test('document.currentScript must not be set to a script element that loads an external script in an open shadow tree'),
diff --git a/shadow-dom/form-control-form-attribute.html b/shadow-dom/form-control-form-attribute.html
new file mode 100644
index 0000000..2e782b2
--- /dev/null
+++ b/shadow-dom/form-control-form-attribute.html
@@ -0,0 +1,80 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Form controls' form attribute</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id="testcontent">
+  <form id="form">form</form>
+  <input id="input" form="form">
+</div>
+
+<script>
+
+test(() => {
+  assert_equals(document.getElementById('input').form,
+                document.getElementById('form'));
+}, "Form control's form attribute should point to the form element.");
+
+test(() => {
+  var testcontent = document.getElementById("testcontent");
+  var host = document.createElement("div");
+  var sr = host.attachShadow({mode: "open"});
+  sr.innerHTML = testcontent.innerHTML;
+  var input = sr.getElementById("input");
+  var form = sr.getElementById("form");
+
+  // Should have null form when shadow DOM isn't connected.
+  assert_equals(input.form, null);
+
+  testcontent.appendChild(host);
+  assert_equals(input.form, form);
+
+  host.remove();
+  assert_equals(input.form, null);
+
+  testcontent.appendChild(host);
+  assert_equals(input.form, form);
+
+  input.remove();
+  assert_equals(input.form, null);
+
+  sr.appendChild(input);
+  assert_equals(input.form, form);
+
+  form.id = "foobar";
+  assert_equals(input.form, null);
+
+  form.id = "form";
+  assert_equals(input.form, form);
+
+  form.remove();
+  assert_equals(input.form, null);
+
+  sr.appendChild(form);
+  assert_equals(input.form, form);
+
+  host.remove();
+}, "Shadow form control's form attribute should work also in shadow DOM.");
+
+test(() => {
+  var testcontent = document.getElementById("testcontent");
+  var host = document.createElement("div");
+  var sr = host.attachShadow({mode: "open"});
+  sr.innerHTML = "<form id='form'><input id='input'></form>";
+  var input = sr.getElementById("input");
+  var form = sr.getElementById("form");
+
+  assert_equals(input.form, form);
+
+  input.remove();
+  assert_equals(input.form, null);
+
+  form.appendChild(input);
+  assert_equals(input.form, form);
+
+  form.remove();
+  assert_equals(input.form, form);
+
+  host.remove();
+}, "Form element as form control's ancestor should work also in shadow DOM.");
+</script>
diff --git a/shadow-dom/input-element-list.html b/shadow-dom/input-element-list.html
new file mode 100644
index 0000000..b571534
--- /dev/null
+++ b/shadow-dom/input-element-list.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Input.list</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id="testcontent">
+  <input id="input" list="datalist">
+</div>
+<script>
+
+test(() => {
+  assert_equals(document.getElementById('input').list, null);
+  var dl = document.createElement("datalist");
+  dl.id = "datalist";
+  document.getElementById("testcontent").appendChild(dl);
+  assert_equals(document.getElementById('input').list, dl);
+}, "Input element's list attribute should point to the datalist element.");
+
+
+test(() => {
+  var host = document.createElement("div");
+  document.getElementById("testcontent").appendChild(host);
+  var sr = host.attachShadow({mode: "open"});
+  var input = document.createElement("input");
+  input.setAttribute("list", "datalist");
+  sr.appendChild(input);
+  assert_equals(input.list, null);
+
+  var dl = document.createElement("datalist");
+  dl.id = "datalist";
+  sr.appendChild(dl);
+  assert_equals(input.list, dl);
+
+  dl.remove();
+  assert_equals(input.list, null);
+}, "Input element's list attribute should point to the datalist element in Shadow DOM.");
+
+
+</script>
diff --git a/streams/generate-test-wrappers.js b/streams/generate-test-wrappers.js
index 4a406fe..22e5c78 100644
--- a/streams/generate-test-wrappers.js
+++ b/streams/generate-test-wrappers.js
@@ -8,7 +8,7 @@
 //
 // It will turn any importScripts inside the .js file into <script>s in the browser context wrapper.
 //
-// This could become obsolete if https://github.com/w3c/web-platform-tests/issues/4210 gets fixed,
+// This could become obsolete if https://github.com/web-platform-tests/wpt/issues/4210 gets fixed,
 // allowing .any.js to work with all four contexts.
 
 const fs = require("fs");
diff --git a/streams/writable-streams/general.js b/streams/writable-streams/general.js
index 7187572..1fd041b 100644
--- a/streams/writable-streams/general.js
+++ b/streams/writable-streams/general.js
@@ -111,56 +111,54 @@
   );
 }, 'closed and ready on a released writer');
 
-promise_test(() => {
-  const promises = {};
-  const resolvers = {};
-  for (const methodName of ['start', 'write', 'close', 'abort']) {
-    promises[methodName] = new Promise(resolve => {
-      resolvers[methodName] = resolve;
-    });
-  }
-
+promise_test(t => {
+  let thisObject = null;
   // Calls to Sink methods after the first are implicitly ignored. Only the first value that is passed to the resolver
   // is used.
   class Sink {
     start() {
       // Called twice
-      resolvers.start(this);
+      t.step(() => {
+        assert_equals(this, thisObject, 'start should be called as a method');
+      });
     }
 
     write() {
-      resolvers.write(this);
+      t.step(() => {
+        assert_equals(this, thisObject, 'write should be called as a method');
+      });
     }
 
     close() {
-      resolvers.close(this);
+      t.step(() => {
+        assert_equals(this, thisObject, 'close should be called as a method');
+      });
     }
 
     abort() {
-      resolvers.abort(this);
+      t.step(() => {
+        assert_equals(this, thisObject, 'abort should be called as a method');
+      });
     }
   }
 
   const theSink = new Sink();
+  thisObject = theSink;
   const ws = new WritableStream(theSink);
 
   const writer = ws.getWriter();
 
   writer.write('a');
-  writer.close();
+  const closePromise = writer.close();
 
   const ws2 = new WritableStream(theSink);
   const writer2 = ws2.getWriter();
-  writer2.abort();
+  const abortPromise = writer2.abort();
 
-  return promises.start
-      .then(thisValue => assert_equals(thisValue, theSink, 'start should be called as a method'))
-      .then(() => promises.write)
-      .then(thisValue => assert_equals(thisValue, theSink, 'write should be called as a method'))
-      .then(() => promises.close)
-      .then(thisValue => assert_equals(thisValue, theSink, 'close should be called as a method'))
-      .then(() => promises.abort)
-      .then(thisValue => assert_equals(thisValue, theSink, 'abort should be called as a method'));
+  return Promise.all([
+    closePromise,
+    abortPromise
+  ]);
 }, 'WritableStream should call underlying sink methods as methods');
 
 promise_test(t => {
diff --git a/streams/writable-streams/start.js b/streams/writable-streams/start.js
index 0122799..52bcb28 100644
--- a/streams/writable-streams/start.js
+++ b/streams/writable-streams/start.js
@@ -154,7 +154,7 @@
     start() {
       return Promise.reject();
     }
-  }, new CountQueuingStrategy({ highWaterMark: 0 }));
+  }, { highWaterMark: 0 });
   const writer = ws.getWriter();
   catchAndRecord(writer.ready, 'ready');
   catchAndRecord(writer.closed, 'closed');
diff --git a/svg/foreignobject/foreign-object-circular-filter-reference-crash.html b/svg/extensibility/foreignObject/foreign-object-circular-filter-reference-crash.html
similarity index 100%
rename from svg/foreignobject/foreign-object-circular-filter-reference-crash.html
rename to svg/extensibility/foreignObject/foreign-object-circular-filter-reference-crash.html
diff --git a/svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html b/svg/extensibility/foreignObject/foreign-object-paints-before-rect-ref.html
similarity index 100%
rename from svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html
rename to svg/extensibility/foreignObject/foreign-object-paints-before-rect-ref.html
diff --git a/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html b/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html
index 928a136..5757d07 100644
--- a/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html
+++ b/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html
@@ -1,5 +1,5 @@
 <!doctype HTML>
-<link rel="match" href="foreign-object-paints-before-rect-expected.html">
+<link rel="match" href="foreign-object-paints-before-rect-ref.html">
 <link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#embedded-ForeignObjectElement"/>
 <style>
 * {
diff --git a/svg/extensibility/foreignObject/foreign-object-size-ref.html b/svg/extensibility/foreignObject/foreign-object-size-ref.html
new file mode 100644
index 0000000..e0b17a2
--- /dev/null
+++ b/svg/extensibility/foreignObject/foreign-object-size-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Reference</title>
+<link rel="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au">
+<style>
+div { width: 100px; height: 100px; background-color: green; }
+</style>
+<div></div>
diff --git a/svg/extensibility/foreignObject/foreign-object-size.html b/svg/extensibility/foreignObject/foreign-object-size.html
new file mode 100644
index 0000000..91fc3ef
--- /dev/null
+++ b/svg/extensibility/foreignObject/foreign-object-size.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test: auto values for width and height properties on foreignObject compute to zero</title>
+<link rel="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au">
+<link rel="help" href="https://svgwg.org/svg2-draft/geometry.html#Sizing">
+<link rel="match" href="foreign-object-size-ref.html">
+<style>
+div { width: 100px; height: 100px; }
+</style>
+<svg>
+  <foreignObject width="100" height="100">
+    <div style="background-color: green;"></div>
+  </foreignObject>
+  <!--
+    The foreignObject takes its size from its width and height properties.
+    Unlike HTML elements, a value of auto for these properties (as omitting
+    the width="" and height="" presentation attributes will do) will compute
+    to zero, causing it not to be rendered.
+    -->
+  <foreignObject>
+    <div style="background-color: red;"></div>
+  </foreignObject>
+</svg>
diff --git a/svg/foreignobject/position-svg-root-in-foreign-object-ref.html b/svg/extensibility/foreignObject/position-svg-root-in-foreign-object-ref.html
similarity index 100%
rename from svg/foreignobject/position-svg-root-in-foreign-object-ref.html
rename to svg/extensibility/foreignObject/position-svg-root-in-foreign-object-ref.html
diff --git a/svg/extensibility/foreignObject/position-svg-root-in-foreign-object.html b/svg/extensibility/foreignObject/position-svg-root-in-foreign-object.html
new file mode 100644
index 0000000..fd32d2a
--- /dev/null
+++ b/svg/extensibility/foreignObject/position-svg-root-in-foreign-object.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>SVG: svg root child of foreignObject should be positionable</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
+<link rel="help" href="https://svgwg.org/svg2-draft/embedded.html#ForeignObjectElement">
+<link rel="match" href="position-svg-root-in-foreign-object-ref.html">
+<p>You should see the word PASS and no red below.</p>
+<svg>
+  <foreignObject width="200" height="200">
+    PASS
+    <svg style="position:absolute; left: -1000px; width:100px; height: 100px; background: red"></svg>
+  </foreignObject>
+</svg>
diff --git a/svg/foreignobject/position-svg-root-in-foreign-object.html b/svg/foreignobject/position-svg-root-in-foreign-object.html
deleted file mode 100644
index 5bf3822..0000000
--- a/svg/foreignobject/position-svg-root-in-foreign-object.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>SVG: svg root child of foreignObject should be positionable</title>
-<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
-<link rel="help" href="https://svgwg.org/svg2-draft/embedded.html#ForeignObjectElement">
-<link rel="match" href="position-svg-root-in-foreign-object-ref.html">
-<p>You should see the word PASS and no red below.</p>
-<svg>
-  <foreignObject>
-    PASS
-    <svg style="position:absolute; left: -1000px; width:100px; height: 100px; background: red"></svg>
-  </foreignObject>
-</svg>
diff --git a/svg/types/scripted/SVGGeometryElement.getPointAtLength-01.svg b/svg/types/scripted/SVGGeometryElement.getPointAtLength-01.svg
new file mode 100644
index 0000000..e268386
--- /dev/null
+++ b/svg/types/scripted/SVGGeometryElement.getPointAtLength-01.svg
@@ -0,0 +1,44 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:html="http://www.w3.org/1999/xhtml">
+  <title>SVGGeometryElement.prototype.getPointAtLength clamps its argument to [0, length]</title>
+  <metadata>
+    <html:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
+    <html:meta name="assert" content="SVGGeometryElement.prototype.getPointAtLength clamps its argument."/>
+  </metadata>
+  <g stroke="blue">
+    <line id="line" x1="50" y1="60" x2="100" y2="60"/>
+    <path id="path" d="M40,70L110,70"/>
+  </g>
+  <html:script src="/resources/testharness.js"/>
+  <html:script src="/resources/testharnessreport.js"/>
+  <script><![CDATA[
+  test(function() {
+    let line = document.getElementById('line');
+    let point = line.getPointAtLength(-10);
+    assert_equals(point.x, 50, 'starting x');
+    assert_equals(point.y, 60, 'starting y');
+  }, document.title+', less than zero (SVGLineElement).');
+  test(function() {
+    let path = document.getElementById('path');
+    let point = path.getPointAtLength(-10);
+    assert_equals(point.x, 40, 'starting x');
+    assert_equals(point.y, 70, 'starting y');
+  }, document.title+', less than zero (SVGPathElement).');
+
+  test(function() {
+    let line = document.getElementById('line');
+    assert_less_than(line.getTotalLength(), 80);
+    let point = line.getPointAtLength(80);
+    assert_equals(point.x, 100, 'ending x');
+    assert_equals(point.y, 60, 'ending y');
+  }, document.title+', greater than \'length\' (SVGLineElement).');
+  test(function() {
+    let path = document.getElementById('path');
+    assert_less_than(path.getTotalLength(), 80);
+    let point = path.getPointAtLength(80);
+    assert_equals(point.x, 110, 'ending x');
+    assert_equals(point.y, 70, 'ending y');
+  }, document.title+', greater than \'length\' (SVGPathElement).');
+  ]]></script>
+</svg>
diff --git a/tools/ci/before_install.sh b/tools/ci/before_install.sh
index 9b80fd9..f6ef84f 100644
--- a/tools/ci/before_install.sh
+++ b/tools/ci/before_install.sh
@@ -1,7 +1,9 @@
 #!/bin/bash
 set -e
 
-if [[ -z ${RUN_JOB+x} && $(./wpt test-jobs --includes $JOB; echo $?) -eq 0 ]] || [[ $RUN_JOB -eq 1 ]]; then
+RELEVANT_JOBS=$(./wpt test-jobs)
+RELEVANT_CHANGES=$(echo "$RELEVANT_JOBS" | grep $JOB || true)
+if [[ -z ${RUN_JOB+x} && ! -z $RELEVANT_CHANGES ]] || [[ $RUN_JOB -eq 1 ]]; then
     export RUN_JOB=1
     git submodule update --init --recursive 1>&2
     export DISPLAY=:99.0
diff --git a/tools/ci/check_stability.py b/tools/ci/check_stability.py
index b215e3c..d781bae 100644
--- a/tools/ci/check_stability.py
+++ b/tools/ci/check_stability.py
@@ -7,8 +7,6 @@
 import sys
 from ConfigParser import SafeConfigParser
 
-import requests
-
 here = os.path.dirname(__file__)
 wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir))
 sys.path.insert(0, wpt_root)
@@ -178,52 +176,6 @@
     return pr if pr != "false" else None
 
 
-def post_results(results, pr_number, iterations, product, url, status):
-    """Post stability results to a given URL."""
-    payload_results = []
-
-    for test_name, test in results.iteritems():
-        subtests = []
-        for subtest_name, subtest in test['subtests'].items():
-            subtests.append({
-                'test': subtest_name,
-                'result': {
-                    'messages': list(subtest['messages']),
-                    'status': subtest['status']
-                },
-            })
-        payload_results.append({
-            'test': test_name,
-            'result': {
-                'status': test['status'],
-                'subtests': subtests
-            }
-        })
-
-    payload = {
-        "pull": {
-            "number": int(pr_number),
-            "sha": os.environ.get("TRAVIS_PULL_REQUEST_SHA"),
-        },
-        "job": {
-            "id": int(os.environ.get("TRAVIS_JOB_ID")),
-            "number": os.environ.get("TRAVIS_JOB_NUMBER"),
-            "allow_failure": os.environ.get("TRAVIS_ALLOW_FAILURE") == 'true',
-            "status": status,
-        },
-        "build": {
-            "id": int(os.environ.get("TRAVIS_BUILD_ID")),
-            "number": os.environ.get("TRAVIS_BUILD_NUMBER"),
-        },
-        "product": product,
-        "iterations": iterations,
-        "message": "All results were stable." if status == "passed" else "Unstable results.",
-        "results": payload_results,
-    }
-
-    requests.post(url, json=payload)
-
-
 def get_changed_files(manifest_path, rev, ignore_changes, skip_tests):
     if not rev:
         branch_point = testfiles.branch_point()
@@ -248,7 +200,6 @@
 
     venv = Virtualenv(os.environ.get("VIRTUAL_ENV", os.path.join(wpt_root, "_venv")))
     venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", "requirements.txt"))
-    venv.install("requests")
 
     args, wpt_args = get_parser().parse_known_args()
     return run(venv, wpt_args, **vars(args))
@@ -266,7 +217,6 @@
         config.readfp(config_fp)
         skip_tests = config.get("file detection", "skip_tests").split()
         ignore_changes = set(config.get("file detection", "ignore_changes").split())
-        results_url = config.get("file detection", "results_url")
 
     if kwargs["output_bytes"] is not None:
         replace_streams(kwargs["output_bytes"],
@@ -281,8 +231,6 @@
 
     setup_logging()
 
-    browser_name = wpt_args.product.split(":")[0]
-
     pr_number = pr()
 
     with TravisFold("browser_setup"):
@@ -345,10 +293,6 @@
             write_results(logger.info, results, iterations,
                           pr_number=pr_number,
                           use_details=True)
-            if pr_number:
-                post_results(results, iterations=iterations, url=results_url,
-                             product=wpt_args.product, pr_number=pr_number,
-                             status="failed" if inconsistent else "passed")
     else:
         logger.info("No tests run.")
         # Be conservative and only return errors when we know for sure tests are changed.
diff --git a/tools/ci/ci_tools_unittest.sh b/tools/ci/ci_tools_unittest.sh
index a8e4c41..eea6590 100755
--- a/tools/ci/ci_tools_unittest.sh
+++ b/tools/ci/ci_tools_unittest.sh
@@ -18,8 +18,10 @@
     export TOXENV="$OLD_TOXENV"
 }
 
+RELEVANT_JOBS=$(./wpt test-jobs)
 
-if [[ $(./wpt test-jobs --includes tools_unittest; echo $?) -eq 0 ]]; then
+RELEVANT_CHANGES_TOOLS=$(echo "$RELEVANT_JOBS" | grep "tools_unittest" || true)
+if [[ ! -z $RELEVANT_CHANGES_TOOLS ]]; then
     pip install -U tox codecov
     cd tools
     run_applicable_tox
@@ -28,7 +30,8 @@
     echo "Skipping tools unittest"
 fi
 
-if [[ $(./wpt test-jobs --includes wptrunner_unittest; echo $?) -eq 0 ]]; then
+RELEVANT_CHANGES_WPTRUNNER=$(echo "$RELEVANT_JOBS" | grep "wptrunner_unittest" || true)
+if [[ ! -z $RELEVANT_CHANGES_WPTRUNNER ]]; then
     cd tools/wptrunner
     run_applicable_tox
     cd $WPT_ROOT
diff --git a/tools/ci/ci_wpt.sh b/tools/ci/ci_wpt.sh
index 2b63413..e780c17 100755
--- a/tools/ci/ci_wpt.sh
+++ b/tools/ci/ci_wpt.sh
@@ -8,7 +8,7 @@
 source tools/ci/lib.sh
 
 main() {
-    git fetch --unshallow https://github.com/w3c/web-platform-tests.git +refs/heads/*:refs/remotes/origin/*
+    git fetch --unshallow https://github.com/web-platform-tests/wpt.git +refs/heads/*:refs/remotes/origin/*
     hosts_fixup
     install_chrome unstable
     pip install -U tox codecov
diff --git a/tools/ci/taskgraph.py b/tools/ci/taskgraph.py
index 894071d..162ca22 100644
--- a/tools/ci/taskgraph.py
+++ b/tools/ci/taskgraph.py
@@ -9,11 +9,11 @@
 here = os.path.dirname(__file__)
 wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir))
 
-docker_image = "harjgam/web-platform-tests:0.11"
+docker_image = "gsnedders/web-platform-tests:0.13"
 
 task_template = {
-    "provisionerId": "{{ taskcluster.docker.provisionerId }}",
-    "workerType": "{{ taskcluster.docker.workerType }}",
+    "provisionerId": "aws-provisioner-v1",
+    "workerType": "wpt-docker-worker",
     "extra": {
         "github": {
             "events": ["push"],
diff --git a/tools/docker/start.sh b/tools/docker/start.sh
index 2fa1204..6e6b2ac 100755
--- a/tools/docker/start.sh
+++ b/tools/docker/start.sh
@@ -1,7 +1,20 @@
+# This script is embedded in the docker image, and so the image must be updated when changes
+# to the script are made. To do this, assuming you have docker installed:
+# In tools/docker/ :
+#   docker build .
+#   docker ps # and look for the id of the image you just built
+#   docker tag <image> <tag>
+#   docker push <tag>
+# Edit tools/ci/taskgraph.py and update the docker_image = "<tag>" line
+# In the project root:
+#   ./wpt make-tasks
+# Commit the changes with .taskcluster.yml changes in a separate commit for easier review
+
+
 #!/bin/bash
 set -ex
 
-REMOTE=${1:-https://github.com/w3c/web-platform-tests}
+REMOTE=${1:-https://github.com/web-platform-tests/wpt}
 BRANCH=${2:-master}
 REV=${3:-FETCH_HEAD}
 BROWSER=${4:-all}
@@ -28,7 +41,7 @@
     deb_archive=google-chrome-unstable_current_amd64.deb
     wget https://dl.google.com/linux/direct/$deb_archive
 
-    sudo gdebi -n $deb_archive
+    sudo apt-get -qqy update && sudo gdebi -n $deb_archive
 fi
 
 sudo Xvfb $DISPLAY -screen 0 ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH} &
diff --git a/tools/lint/lint.py b/tools/lint/lint.py
index c1ffd50..058ee2b 100644
--- a/tools/lint/lint.py
+++ b/tools/lint/lint.py
@@ -157,7 +157,7 @@
                 if filter_string[0] != '!':
                     errors += [("IGNORED PATH", "%s matches an ignore filter in .gitignore - "
                                 "please add a .gitignore exception" % path, path, None)]
-        except subprocess.CalledProcessError as e:
+        except subprocess.CalledProcessError:
             # Nonzero return code means that no match exists.
             pass
     return errors
diff --git a/tools/lint/tests/test_lint.py b/tools/lint/tests/test_lint.py
index 2899b1d..c593c84 100644
--- a/tools/lint/tests/test_lint.py
+++ b/tools/lint/tests/test_lint.py
@@ -409,7 +409,7 @@
                           (os.path.join('.', 'dir_a'),
                            [],
                            ['file_c', 'file_d'])]
-    ) as m:
+    ):
         got = list(lint_mod.all_filesystem_paths('.'))
         assert got == ['file_a',
                        'file_b',
@@ -438,7 +438,7 @@
     try:
         sys.argv = ['./lint']
         with _mock_lint('lint', return_value=True) as m:
-            with _mock_lint('changed_files', return_value=['foo', 'bar']) as m2:
+            with _mock_lint('changed_files', return_value=['foo', 'bar']):
                 lint_mod.main(**vars(create_parser().parse_args()))
                 m.assert_called_once_with(repo_root, ['foo', 'bar'], "normal")
     finally:
@@ -450,7 +450,7 @@
     try:
         sys.argv = ['./lint', '--all']
         with _mock_lint('lint', return_value=True) as m:
-            with _mock_lint('all_filesystem_paths', return_value=['foo', 'bar']) as m2:
+            with _mock_lint('all_filesystem_paths', return_value=['foo', 'bar']):
                 lint_mod.main(**vars(create_parser().parse_args()))
                 m.assert_called_once_with(repo_root, ['foo', 'bar'], "normal")
     finally:
diff --git a/tools/manifest/download.py b/tools/manifest/download.py
index 611ada0..8bb3cb6 100644
--- a/tools/manifest/download.py
+++ b/tools/manifest/download.py
@@ -40,7 +40,7 @@
 
 def github_url(commits):
     try:
-        resp = urlopen("https://api.github.com/repos/w3c/web-platform-tests/releases")
+        resp = urlopen("https://api.github.com/repos/web-platform-tests/wpt/releases")
     except Exception:
         return None
 
diff --git a/tools/runner/index.html b/tools/runner/index.html
index 5dfc1dc..6c9a8af 100644
--- a/tools/runner/index.html
+++ b/tools/runner/index.html
@@ -94,7 +94,7 @@
   <div class="instructions">
     <p>
       To run a set of
-      <a href="https://github.com/w3c/web-platform-tests/blob/master/README.md">web-platform-tests</a>
+      <a href="https://github.com/web-platform-tests/wpt/blob/master/README.md">web-platform-tests</a>
       tests, specify a path value in the <b>Run tests under path</b> field above. Example paths:
     </p>
     <ul>
diff --git a/tools/serve/serve.py b/tools/serve/serve.py
index 0fd5f90..d77875b 100644
--- a/tools/serve/serve.py
+++ b/tools/serve/serve.py
@@ -434,7 +434,7 @@
 
         try:
             urllib2.urlopen("http://%s:%d/" % (domain, port))
-        except Exception as e:
+        except Exception:
             logger.critical("Failed probing domain %s. "
                             "You may need to edit /etc/hosts or similar, see README.md." % domain)
             sys.exit(1)
@@ -454,7 +454,7 @@
     # for this context. These systems do not reserve any value for this
     # purpose, so the inavailability of the domains must be taken for granted.
     #
-    # https://github.com/w3c/web-platform-tests/issues/10560
+    # https://github.com/web-platform-tests/wpt/issues/10560
     if platform.uname()[0] == "Windows":
         for not_domain in config.not_domains_set:
             rv.append("0.0.0.0\t%s\n" % not_domain)
diff --git a/tools/tox.ini b/tools/tox.ini
index 1db1b4e..cd97745 100644
--- a/tools/tox.ini
+++ b/tools/tox.ini
@@ -40,11 +40,8 @@
 # E901: SyntaxError or IndentationError
 # W601: .has_key() is deprecated, use ‘in’
 # F401: module imported but unused
-# F403: ‘from module import *’ used; unable to detect undefined names
-# F405: name may be undefined, or defined from star imports: module
-# F841: local variable name is assigned to but never used
 # N801: class names should use CapWords convention
 # N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,N801,N802
 max-line-length = 141
 exclude = .tox,html5lib,third_party/py,third_party/pytest,third_party/funcsigs,third_party/attrs,third_party/pluggy/,pywebsocket,six,_venv,webencodings,wptserve/docs,wptserve/tests/functional/docroot/,wpt,wptrunner
diff --git a/tools/webdriver/README.md b/tools/webdriver/README.md
index 015b31b..72de3b2 100644
--- a/tools/webdriver/README.md
+++ b/tools/webdriver/README.md
@@ -9,7 +9,7 @@
 so that different remote end drivers
 can determine whether they meet the recognised standard.
 The client is used for the WebDriver specification tests
-in the [Web Platform Tests](https://github.com/w3c/web-platform-tests).
+in the [Web Platform Tests](https://github.com/web-platform-tests/wpt).
 
 ## Installation
 
@@ -31,7 +31,7 @@
     >>> 
 
 If you are writing WebDriver specification tests for
-[WPT](https://github.com/w3c/web-platform-tests),
+[WPT](https://github.com/web-platform-tests/wpt),
 there is no need to install the client manually
 as it is included in the `tools/webdriver` directory.
 
diff --git a/tools/webdriver/webdriver/client.py b/tools/webdriver/webdriver/client.py
index a8abda0..45c4845 100644
--- a/tools/webdriver/webdriver/client.py
+++ b/tools/webdriver/webdriver/client.py
@@ -39,7 +39,7 @@
 
     def _set(self, key, secs):
         body = {key: secs * 1000}
-        timeouts = self.session.send_session_command("POST", "timeouts", body)
+        self.session.send_session_command("POST", "timeouts", body)
         return None
 
     @property
diff --git a/tools/wpt/browser.py b/tools/wpt/browser.py
index 1932cf4..de9f929 100644
--- a/tools/wpt/browser.py
+++ b/tools/wpt/browser.py
@@ -112,7 +112,7 @@
 
         try:
             mozinstall.install(filename, dest)
-        except mozinstall.mozinstall.InstallError as e:
+        except mozinstall.mozinstall.InstallError:
             if platform == "mac" and os.path.exists(os.path.join(dest, "Firefox Nightly.app")):
                 # mozinstall will fail if nightly is already installed in the venv because
                 # mac installation uses shutil.copy_tree
diff --git a/tools/wpt/tox.ini b/tools/wpt/tox.ini
index 229bc4b..86a025f 100644
--- a/tools/wpt/tox.ini
+++ b/tools/wpt/tox.ini
@@ -43,10 +43,7 @@
 # E901: SyntaxError or IndentationError
 # W601: .has_key() is deprecated, use ‘in’
 # F401: module imported but unused
-# F403: ‘from module import *’ used; unable to detect undefined names
-# F405: name may be undefined, or defined from star imports: module
-# F841: local variable name is assigned to but never used
 # N801: class names should use CapWords convention
 # N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,N801,N802
 max-line-length = 141
diff --git a/tools/wpt/wpt.py b/tools/wpt/wpt.py
index 49f463d..882d5ab 100644
--- a/tools/wpt/wpt.py
+++ b/tools/wpt/wpt.py
@@ -46,7 +46,7 @@
     parser.add_argument("--debug", action="store_true", help="Run the debugger in case of an exception")
     subparsers = parser.add_subparsers(dest="command")
     for command, props in iteritems(commands):
-        sub_parser = subparsers.add_parser(command, help=props["help"], add_help=False)
+        subparsers.add_parser(command, help=props["help"], add_help=False)
 
     args, extra = parser.parse_known_args(argv)
 
diff --git a/tools/wptrunner/README.rst b/tools/wptrunner/README.rst
index 8917922..76e496d 100644
--- a/tools/wptrunner/README.rst
+++ b/tools/wptrunner/README.rst
@@ -233,4 +233,4 @@
 `refurl`
   The reference url for reftests.
 
-.. _`web-platform-tests testsuite`: https://github.com/w3c/web-platform-tests
+.. _`web-platform-tests testsuite`: https://github.com/web-platform-tests/wpt
diff --git a/tools/wptrunner/docs/usage.rst b/tools/wptrunner/docs/usage.rst
index 258cca6..5997f42 100644
--- a/tools/wptrunner/docs/usage.rst
+++ b/tools/wptrunner/docs/usage.rst
@@ -32,7 +32,7 @@
 anywhere on the filesystem, but the easiest option is to put it
 under the same parent directory as the wptrunner checkout::
 
-  git clone https://github.com/w3c/web-platform-tests.git
+  git clone https://github.com/web-platform-tests/wpt.git
 
 It is also necessary to generate a web-platform-tests ``MANIFEST.json``
 file. It's recommended to also put that under the same parent directory as
@@ -220,7 +220,7 @@
 use when checking out the tests e.g.::
 
   [web-platform-tests]
-  remote_url = https://github.com/w3c/web-platform-tests.git
+  remote_url = https://github.com/web-platform-tests/wpt.git
   branch = master
   sync_path = sync
 
diff --git a/tools/wptrunner/test/test.py b/tools/wptrunner/test/test.py
index 622934a..3e82a98 100644
--- a/tools/wptrunner/test/test.py
+++ b/tools/wptrunner/test/test.py
@@ -73,7 +73,7 @@
     # This only allows one product per whatever for now
     for product in parser.sections():
         if product != "general":
-            dest = rv["products"][product] = {}
+            rv["products"][product] = {}
             for key, value in parser.items(product):
                 rv["products"][product][key] = value
 
diff --git a/tools/wptrunner/tox.ini b/tools/wptrunner/tox.ini
index f63e2c0..f939b32 100644
--- a/tools/wptrunner/tox.ini
+++ b/tools/wptrunner/tox.ini
@@ -53,10 +53,7 @@
 # E901: SyntaxError or IndentationError
 # W601: .has_key() is deprecated, use ‘in’
 # F401: module imported but unused
-# F403: ‘from module import *’ used; unable to detect undefined names
-# F405: name may be undefined, or defined from star imports: module
-# F841: local variable name is assigned to but never used
 # N801: class names should use CapWords convention
 # N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,N801,N802
 max-line-length = 141
diff --git a/tools/wptrunner/wptrunner.default.ini b/tools/wptrunner/wptrunner.default.ini
index 34d25f8..19462bc 100644
--- a/tools/wptrunner/wptrunner.default.ini
+++ b/tools/wptrunner/wptrunner.default.ini
@@ -1,7 +1,7 @@
 [products]
 
 [web-platform-tests]
-remote_url = https://github.com/w3c/web-platform-tests.git
+remote_url = https://github.com/web-platform-tests/wpt.git
 branch = master
 sync_path = %(pwd)s/sync
 
diff --git a/tools/wptrunner/wptrunner/browsers/chrome_android.py b/tools/wptrunner/wptrunner/browsers/chrome_android.py
index 985b1fe..89179a0 100644
--- a/tools/wptrunner/wptrunner/browsers/chrome_android.py
+++ b/tools/wptrunner/wptrunner/browsers/chrome_android.py
@@ -1,6 +1,5 @@
 import subprocess
 
-from ..config import *
 from .base import Browser, ExecutorBrowser, require_arg
 from ..webdriver_server import ChromeDriverServer
 from ..executors import executor_kwargs as base_executor_kwargs
diff --git a/tools/wptrunner/wptrunner/browsers/edge.py b/tools/wptrunner/wptrunner/browsers/edge.py
index b0ec6c1..db39a9a 100644
--- a/tools/wptrunner/wptrunner/browsers/edge.py
+++ b/tools/wptrunner/wptrunner/browsers/edge.py
@@ -43,7 +43,7 @@
     executor_kwargs["timeout_multiplier"] = get_timeout_multiplier(test_type,
                                                                    run_info_data,
                                                                    **kwargs)
-    executor_kwargs["capabilities"] = dict(DesiredCapabilities.EDGE.items())
+    executor_kwargs["capabilities"] = {}
     return executor_kwargs
 
 def env_extras(**kwargs):
diff --git a/tools/wptrunner/wptrunner/browsers/firefox.py b/tools/wptrunner/wptrunner/browsers/firefox.py
index 68017ab..309416e 100644
--- a/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -122,7 +122,7 @@
     # network.dns.localDomains preference set below) to resolve the test
     # domains to localhost without relying on the network stack.
     #
-    # https://github.com/w3c/web-platform-tests/pull/9480
+    # https://github.com/web-platform-tests/wpt/pull/9480
     return {"server_host": "127.0.0.1",
             "bind_address": False,
             "supports_debugger": True}
diff --git a/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat b/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
index 9d0878e..1a3e6fe 100644
--- a/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
+++ b/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
@@ -5,5 +5,5 @@
 REM Download and install the Ahem font
 REM - https://wiki.saucelabs.com/display/DOCS/Downloading+Files+to+a+Sauce+Labs+Virtual+Machine+Prior+to+Testing
 REM - https://superuser.com/questions/201896/how-do-i-install-a-font-from-the-windows-command-prompt
-bitsadmin.exe /transfer "JobName" https://github.com/w3c/web-platform-tests/raw/master/fonts/Ahem.ttf "%WINDIR%\Fonts\Ahem.ttf"
+bitsadmin.exe /transfer "JobName" https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf "%WINDIR%\Fonts\Ahem.ttf"
 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Ahem (TrueType)" /t REG_SZ /d Ahem.ttf /f
diff --git a/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh b/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
index 06c48bd..39390e6 100644
--- a/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
+++ b/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-curl https://raw.githubusercontent.com/w3c/web-platform-tests/master/fonts/Ahem.ttf > ~/Library/Fonts/Ahem.ttf
+curl https://raw.githubusercontent.com/web-platform-tests/wpt/master/fonts/Ahem.ttf > ~/Library/Fonts/Ahem.ttf
 defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool true
diff --git a/tools/wptrunner/wptrunner/executors/base.py b/tools/wptrunner/wptrunner/executors/base.py
index 08030b3..1e662b0 100644
--- a/tools/wptrunner/wptrunner/executors/base.py
+++ b/tools/wptrunner/wptrunner/executors/base.py
@@ -243,7 +243,6 @@
         return self.executor.logger
 
     def get_hash(self, test, viewport_size, dpi):
-        timeout = test.timeout * self.timeout_multiplier
         key = (test.url, viewport_size, dpi)
 
         if key not in self.screenshot_cache:
@@ -391,7 +390,7 @@
         executor = threading.Thread(target=self._run)
         executor.start()
 
-        flag = self.result_flag.wait(self.timeout)
+        self.result_flag.wait(self.timeout)
         if self.result[1] is None:
             self.result = False, ("EXTERNAL-TIMEOUT", None)
 
@@ -533,7 +532,7 @@
                 raise ValueError("Unknown action %s" % action)
             try:
                 action_handler(payload)
-            except Exception as e:
+            except Exception:
                 self.logger.warning("Action %s failed" % action)
                 self.logger.warning(traceback.format_exc())
                 self._send_message("complete", "failure")
diff --git a/tools/wptrunner/wptrunner/executors/executormarionette.py b/tools/wptrunner/wptrunner/executors/executormarionette.py
index bff509c..f04f0b5 100644
--- a/tools/wptrunner/wptrunner/executors/executormarionette.py
+++ b/tools/wptrunner/wptrunner/executors/executormarionette.py
@@ -445,7 +445,7 @@
         else:
             wait_timeout = None
 
-        flag = self.result_flag.wait(wait_timeout)
+        self.result_flag.wait(wait_timeout)
 
         if self.result == (None, None):
             self.logger.debug("Timed out waiting for a result")
@@ -675,9 +675,6 @@
         self.executor.protocol.marionette._send_message("reftest:setup", data)
 
     def run_test(self, test):
-        viewport_size = test.viewport_size
-        dpi = test.dpi
-
         references = self.get_references(test)
         rv = self.executor.protocol.marionette._send_message("reftest:run",
                                                              {"test": self.executor.test_url(test),
diff --git a/tools/wptrunner/wptrunner/executors/executorservodriver.py b/tools/wptrunner/wptrunner/executors/executorservodriver.py
index 626c987..f649a75 100644
--- a/tools/wptrunner/wptrunner/executors/executorservodriver.py
+++ b/tools/wptrunner/wptrunner/executors/executorservodriver.py
@@ -35,7 +35,6 @@
 
     def connect(self):
         """Connect to browser via WebDriver."""
-        url = "http://%s:%d" % (self.host, self.port)
         self.session = webdriver.Session(self.host, self.port,
                                          extension=webdriver.servo.ServoCommandExtensions)
         self.session.start()
diff --git a/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js b/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js
index c226027..61f894f 100644
--- a/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js
+++ b/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js
@@ -1,7 +1,9 @@
+var callback = arguments[arguments.length - 1];
+
 function test(x) {
   if (!root.classList.contains("reftest-wait")) {
     observer.disconnect();
-    marionetteScriptFinished();
+    callback();
   }
 }
 
diff --git a/tools/wptrunner/wptrunner/font.py b/tools/wptrunner/wptrunner/font.py
index 79fca42..a370f5f 100644
--- a/tools/wptrunner/wptrunner/font.py
+++ b/tools/wptrunner/wptrunner/font.py
@@ -2,9 +2,10 @@
 import logging
 import os
 import platform
+import plistlib
 
 from shutil import copy2, rmtree
-from subprocess import call
+from subprocess import call, check_output
 
 HERE = os.path.split(__file__)[0]
 SYSTEM = platform.system().lower()
@@ -71,9 +72,19 @@
         if not os.path.exists(self.font_dir):
             os.makedirs(self.font_dir)
             self.created_dir = True
-        if not os.path.exists(os.path.join(self.font_dir, font_name)):
+        installed_font_path = os.path.join(self.font_dir, font_name)
+        if not os.path.exists(installed_font_path):
             copy2(font_path, self.font_dir)
-        return True
+
+        # Per https://github.com/web-platform-tests/results-collection/issues/218
+        # installing Ahem on macOS is flaky, so check if it actually installed
+        fonts = check_output(['/usr/sbin/system_profiler', '-xml', 'SPFontsDataType'])
+        fonts = plistlib.readPlistFromString(fonts)
+        assert len(fonts) == 1
+        for font in fonts[0]['_items']:
+            if font['path'] == installed_font_path:
+                return True
+        return False
 
     def install_windows_font(self, _, font_path):
         hwnd_broadcast = 0xFFFF
diff --git a/tools/wptrunner/wptrunner/manifestexpected.py b/tools/wptrunner/wptrunner/manifestexpected.py
index 5d57b70..eaab260 100644
--- a/tools/wptrunner/wptrunner/manifestexpected.py
+++ b/tools/wptrunner/wptrunner/manifestexpected.py
@@ -53,8 +53,6 @@
 
     try:
         node_prefs = node.get("prefs")
-        if type(node_prefs) in (str, unicode):
-            prefs = {value(node_prefs)}
         rv = dict(value(item) for item in node_prefs)
     except KeyError:
         rv = {}
diff --git a/tools/wptrunner/wptrunner/metadata.py b/tools/wptrunner/wptrunner/metadata.py
index 92d77ba..195671c 100644
--- a/tools/wptrunner/wptrunner/metadata.py
+++ b/tools/wptrunner/wptrunner/metadata.py
@@ -119,8 +119,6 @@
     else:
         return []
 
-    rv = []
-
     return [fn for _, fn, _ in root_manifest if fn in files_changed and change_data.get(fn) != "M"]
 
 # For each testrun
diff --git a/tools/wptrunner/wptrunner/products.py b/tools/wptrunner/wptrunner/products.py
index c077f95..4f22737 100644
--- a/tools/wptrunner/wptrunner/products.py
+++ b/tools/wptrunner/wptrunner/products.py
@@ -12,9 +12,6 @@
         return names
 
 def product_module(config, product):
-    here = os.path.join(os.path.split(__file__)[0])
-    product_dir = os.path.join(here, "browsers")
-
     if product not in products_enabled(config):
         raise ValueError("Unknown product %s" % product)
 
diff --git a/tools/wptrunner/wptrunner/tests/test_products.py b/tools/wptrunner/wptrunner/tests/test_products.py
index 8ece29b..f5d490d 100644
--- a/tools/wptrunner/wptrunner/tests/test_products.py
+++ b/tools/wptrunner/wptrunner/tests/test_products.py
@@ -52,7 +52,7 @@
                                          False,
                                          None,
                                          env_options,
-                                         env_extras) as test_environment:
+                                         env_extras):
             start.assert_called_once()
             args = start.call_args
             config = args[0][0]
diff --git a/tools/wptrunner/wptrunner/wptmanifest/parser.py b/tools/wptrunner/wptrunner/wptmanifest/parser.py
index d84a914..1fa1bc1 100644
--- a/tools/wptrunner/wptrunner/wptmanifest/parser.py
+++ b/tools/wptrunner/wptrunner/wptmanifest/parser.py
@@ -17,7 +17,10 @@
 import types
 from cStringIO import StringIO
 
-from node import *
+from node import (AtomNode, BinaryExpressionNode, BinaryOperatorNode,
+                  ConditionalNode, DataNode, IndexNode, KeyValueNode, ListNode,
+                  NumberNode, StringNode, UnaryExpressionNode,
+                  UnaryOperatorNode, ValueNode, VariableNode)
 
 
 class ParseError(Exception):
diff --git a/tools/wptrunner/wptrunner/wptrunner.py b/tools/wptrunner/wptrunner/wptrunner.py
index bd2b3ad..3ee4480 100644
--- a/tools/wptrunner/wptrunner/wptrunner.py
+++ b/tools/wptrunner/wptrunner/wptrunner.py
@@ -110,8 +110,6 @@
 def list_tests(test_paths, product, **kwargs):
     env.do_delayed_imports(logger, test_paths)
 
-    rv = []
-
     ssl_env = env.ssl_env(logger, **kwargs)
 
     run_info_extras = products.load_product(kwargs["config"], product)[-1](**kwargs)
diff --git a/tools/wptserve/tests/functional/test_server.py b/tools/wptserve/tests/functional/test_server.py
index 26c34c3..7ae31be 100644
--- a/tools/wptserve/tests/functional/test_server.py
+++ b/tools/wptserve/tests/functional/test_server.py
@@ -10,7 +10,7 @@
 class TestFileHandler(TestUsingServer):
     def test_not_handled(self):
         with self.assertRaises(HTTPError) as cm:
-            resp = self.request("/not_existing")
+            self.request("/not_existing")
 
         self.assertEqual(cm.exception.code, 404)
 
@@ -36,7 +36,7 @@
         route = ("GET", "/test/raises", handler)
         self.server.router.register(*route)
         with self.assertRaises(HTTPError) as cm:
-            resp = self.request("/test/raises")
+            self.request("/test/raises")
 
         self.assertEqual(cm.exception.code, 500)
 
diff --git a/update-built-tests.sh b/update-built-tests.sh
index f44dd5e..34e4fd5 100755
--- a/update-built-tests.sh
+++ b/update-built-tests.sh
@@ -6,3 +6,6 @@
 html/tools/build.sh
 offscreen-canvas/tools/build.sh
 python mimesniff/mime-types/resources/generated-mime-types.py
+
+# Infrastucture
+python wpt make-tasks
diff --git a/url/README.md b/url/README.md
index cc63177..34c35dc 100644
--- a/url/README.md
+++ b/url/README.md
@@ -1,6 +1,8 @@
+## urltestdata.json
+
 These tests are for browsers, but the data for
 `a-element.html`, `url-constructor.html`, `a-element-xhtml.xhtml`, and `failure.html`
-is in `urltestdata.json` and can be re-used by non-browser implementations.
+is in `resources/urltestdata.json` and can be re-used by non-browser implementations.
 This file contains a JSON array of comments as strings and test cases as objects.
 The keys for each test case are:
 
@@ -25,5 +27,22 @@
 converting base URLs into strings properly fails the whole parsing algorithm if the base URL cannot
 be parsed.
 
+## setters_tests.json
+
+`resources/setters_tests.json` is self-documented.
+
+## toascii.json
+
+`resources/toascii.json` is a JSON resource containing an array where each item is an object
+consisting of an optional `comment` field and mandatory `input` and `output` fields. `input` is the
+domain to be parsed according to the rules of UTS #46 (as stipulated by the URL Standard). `output`
+gives the expected output of the parser after serialization. An `output` of `null` means parsing is
+expected to fail.
+
+## URL parser's encoding argument
+
+Tests in `/encoding` and `/html/infrastructure/urls/resolving-urls/query-encoding/` cover the
+encoding argument to the URL parser.
+
 [parsing]: https://url.spec.whatwg.org/#concept-basic-url-parser
 [API]: https://url.spec.whatwg.org/#api
diff --git a/url/a-element-origin-xhtml.xhtml b/url/a-element-origin-xhtml.xhtml
index 3d0d72e..effcf04 100644
--- a/url/a-element-origin-xhtml.xhtml
+++ b/url/a-element-origin-xhtml.xhtml
@@ -9,7 +9,7 @@
   </head>
   <body>
     <div id="log"></div>
-    <script src="a-element-origin.js"></script>
+    <script src="resources/a-element-origin.js"></script>
   </body>
 </html>
-<!-- Other dependencies: urltestdata.json -->
+<!-- Other dependencies: resources/urltestdata.json -->
diff --git a/url/a-element-origin.html b/url/a-element-origin.html
index 28ef696..9cc8e94 100644
--- a/url/a-element-origin.html
+++ b/url/a-element-origin.html
@@ -4,5 +4,5 @@
 <script src=/resources/testharnessreport.js></script>
 <base id=base>
 <div id=log></div>
-<script src=a-element-origin.js></script>
-<!-- Other dependencies: urltestdata.json -->
+<script src=resources/a-element-origin.js></script>
+<!-- Other dependencies: resources/urltestdata.json -->
diff --git a/url/a-element-origin.js b/url/a-element-origin.js
deleted file mode 100644
index a1202db..0000000
--- a/url/a-element-origin.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var setup = async_test("Loading data…")
-setup.step(function() {
-  var request = new XMLHttpRequest()
-  request.open("GET", "urltestdata.json")
-  request.send()
-  request.responseType = "json"
-  request.onload = setup.step_func(function() {
-    runURLTests(request.response)
-    setup.done()
-  })
-})
-
-function setBase(base) {
-  document.getElementById("base").href = base
-}
-
-function bURL(url, base) {
-  base = base || "about:blank"
-  setBase(base)
-  var a = document.createElement("a")
-  a.setAttribute("href", url)
-  return a
-}
-
-function runURLTests(urltests) {
-  for(var i = 0, l = urltests.length; i < l; i++) {
-    var expected = urltests[i]
-    if (typeof expected === "string" || !("origin" in expected)) continue
-
-    test(function() {
-      var url = bURL(expected.input, expected.base)
-      assert_equals(url.origin, expected.origin, "origin")
-    }, "Parsing origin: <" + expected.input + "> against <" + expected.base + ">")
-  }
-}
diff --git a/url/a-element-xhtml.xhtml b/url/a-element-xhtml.xhtml
index fda4c36..c6c67cf 100644
--- a/url/a-element-xhtml.xhtml
+++ b/url/a-element-xhtml.xhtml
@@ -9,7 +9,7 @@
   </head>
   <body>
     <div id="log"></div>
-    <script src="a-element.js"></script>
+    <script src="resources/a-element.js"></script>
   </body>
 </html>
-<!-- Other dependencies: urltestdata.json -->
+<!-- Other dependencies: resources/urltestdata.json -->
diff --git a/url/a-element.html b/url/a-element.html
index 1b7e2fd..05c37f3 100644
--- a/url/a-element.html
+++ b/url/a-element.html
@@ -4,5 +4,5 @@
 <script src=/resources/testharnessreport.js></script>
 <base id=base>
 <div id=log></div>
-<script src=a-element.js></script>
-<!-- Other dependencies: urltestdata.json -->
+<script src=resources/a-element.js></script>
+<!-- Other dependencies: resources/urltestdata.json -->
diff --git a/url/a-element.js b/url/a-element.js
deleted file mode 100644
index a3d7813..0000000
--- a/url/a-element.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var setup = async_test("Loading data…")
-setup.step(function() {
-  var request = new XMLHttpRequest()
-  request.open("GET", "urltestdata.json")
-  request.send()
-  request.responseType = "json"
-  request.onload = setup.step_func(function() {
-    runURLTests(request.response)
-    setup.done()
-  })
-})
-
-function setBase(base) {
-  document.getElementById("base").href = base
-}
-
-function bURL(url, base) {
-  base = base || "about:blank"
-  setBase(base)
-  var a = document.createElement("a")
-  a.setAttribute("href", url)
-  return a
-}
-
-function runURLTests(urltests) {
-  for(var i = 0, l = urltests.length; i < l; i++) {
-    var expected = urltests[i]
-    if (typeof expected === "string") continue // skip comments
-
-    test(function() {
-      var url = bURL(expected.input, expected.base)
-      if(expected.failure) {
-        if(url.protocol !== ':') {
-          assert_unreached("Expected URL to fail parsing")
-        }
-        assert_equals(url.href, expected.input, "failure should set href to input")
-        return
-      }
-
-      assert_equals(url.href, expected.href, "href")
-      assert_equals(url.protocol, expected.protocol, "protocol")
-      assert_equals(url.username, expected.username, "username")
-      assert_equals(url.password, expected.password, "password")
-      assert_equals(url.host, expected.host, "host")
-      assert_equals(url.hostname, expected.hostname, "hostname")
-      assert_equals(url.port, expected.port, "port")
-      assert_equals(url.pathname, expected.pathname, "pathname")
-      assert_equals(url.search, expected.search, "search")
-      assert_equals(url.hash, expected.hash, "hash")
-    }, "Parsing: <" + expected.input + "> against <" + expected.base + ">")
-  }
-}
diff --git a/url/failure.html b/url/failure.html
index 8ae9da7..13a90cc 100644
--- a/url/failure.html
+++ b/url/failure.html
@@ -6,7 +6,7 @@
 <div id=log></div>
 <iframe></iframe>
 <script>
-promise_test(() => fetch("urltestdata.json").then(res => res.json()).then(runTests), "Loading data…")
+promise_test(() => fetch("resources/urltestdata.json").then(res => res.json()).then(runTests), "Loading data…")
 
 function runTests(testData) {
   for(const test of testData) {
diff --git a/url/resources/a-element-origin.js b/url/resources/a-element-origin.js
new file mode 100644
index 0000000..3b8cb1c
--- /dev/null
+++ b/url/resources/a-element-origin.js
@@ -0,0 +1,25 @@
+promise_test(() => fetch("resources/urltestdata.json").then(res => res.json()).then(runURLTests), "Loading data…");
+
+function setBase(base) {
+  document.getElementById("base").href = base
+}
+
+function bURL(url, base) {
+  base = base || "about:blank"
+  setBase(base)
+  var a = document.createElement("a")
+  a.setAttribute("href", url)
+  return a
+}
+
+function runURLTests(urltests) {
+  for(var i = 0, l = urltests.length; i < l; i++) {
+    var expected = urltests[i]
+    if (typeof expected === "string" || !("origin" in expected)) continue
+
+    test(function() {
+      var url = bURL(expected.input, expected.base)
+      assert_equals(url.origin, expected.origin, "origin")
+    }, "Parsing origin: <" + expected.input + "> against <" + expected.base + ">")
+  }
+}
diff --git a/url/resources/a-element.js b/url/resources/a-element.js
new file mode 100644
index 0000000..f64531b
--- /dev/null
+++ b/url/resources/a-element.js
@@ -0,0 +1,42 @@
+promise_test(() => fetch("resources/urltestdata.json").then(res => res.json()).then(runURLTests), "Loading data…");
+
+function setBase(base) {
+  document.getElementById("base").href = base
+}
+
+function bURL(url, base) {
+  base = base || "about:blank"
+  setBase(base)
+  var a = document.createElement("a")
+  a.setAttribute("href", url)
+  return a
+}
+
+function runURLTests(urltests) {
+  for(var i = 0, l = urltests.length; i < l; i++) {
+    var expected = urltests[i]
+    if (typeof expected === "string") continue // skip comments
+
+    test(function() {
+      var url = bURL(expected.input, expected.base)
+      if(expected.failure) {
+        if(url.protocol !== ':') {
+          assert_unreached("Expected URL to fail parsing")
+        }
+        assert_equals(url.href, expected.input, "failure should set href to input")
+        return
+      }
+
+      assert_equals(url.href, expected.href, "href")
+      assert_equals(url.protocol, expected.protocol, "protocol")
+      assert_equals(url.username, expected.username, "username")
+      assert_equals(url.password, expected.password, "password")
+      assert_equals(url.host, expected.host, "host")
+      assert_equals(url.hostname, expected.hostname, "hostname")
+      assert_equals(url.port, expected.port, "port")
+      assert_equals(url.pathname, expected.pathname, "pathname")
+      assert_equals(url.search, expected.search, "search")
+      assert_equals(url.hash, expected.hash, "hash")
+    }, "Parsing: <" + expected.input + "> against <" + expected.base + ">")
+  }
+}
diff --git a/url/setters_tests.json b/url/resources/setters_tests.json
similarity index 100%
rename from url/setters_tests.json
rename to url/resources/setters_tests.json
diff --git a/url/toascii.json b/url/resources/toascii.json
similarity index 100%
rename from url/toascii.json
rename to url/resources/toascii.json
diff --git a/url/urltestdata.json b/url/resources/urltestdata.json
similarity index 100%
rename from url/urltestdata.json
rename to url/resources/urltestdata.json
diff --git a/url/toascii.window.js b/url/toascii.window.js
index b49ef20..b28c664 100644
--- a/url/toascii.window.js
+++ b/url/toascii.window.js
@@ -1,12 +1,4 @@
-async_test(t => {
-  const request = new XMLHttpRequest()
-  request.open("GET", "toascii.json")
-  request.send()
-  request.responseType = "json"
-  request.onload = t.step_func_done(() => {
-    runTests(request.response)
-  })
-}, "Loading data…")
+promise_test(() => fetch("resources/toascii.json").then(res => res.json()).then(runTests), "Loading data…");
 
 function makeURL(type, input) {
   input = "https://" + input + "/x"
diff --git a/url/url-constructor.html b/url/url-constructor.html
index 490917c..6d7c2d6 100644
--- a/url/url-constructor.html
+++ b/url/url-constructor.html
@@ -4,20 +4,6 @@
 <script src=/resources/testharnessreport.js></script>
 <div id=log></div>
 <script>
-function runURLConstructorTests() {
-  var setup = async_test("Loading data…")
-  setup.step(function() {
-    var request = new XMLHttpRequest()
-    request.open("GET", "urltestdata.json")
-    request.send()
-    request.responseType = "json"
-    request.onload = setup.step_func(function() {
-      runURLTests(request.response)
-      setup.done()
-    })
-  })
-}
-
 function bURL(url, base) {
   return new URL(url, base || "about:blank")
 }
@@ -122,5 +108,5 @@
   }, 'URL.searchParams and URL.search setters, update propagation')
 }
 runURLSearchParamTests()
-runURLConstructorTests()
+promise_test(() => fetch("resources/urltestdata.json").then(res => res.json()).then(runURLTests), "Loading data…");
 </script>
diff --git a/url/url-origin.html b/url/url-origin.html
index f9d4b3d..fccb643 100644
--- a/url/url-origin.html
+++ b/url/url-origin.html
@@ -4,19 +4,7 @@
 <script src=/resources/testharnessreport.js></script>
 <div id=log></div>
 <script>
-function runURLOriginTests() {
-  var setup = async_test("Loading data…")
-  setup.step(function() {
-    var request = new XMLHttpRequest()
-    request.open("GET", "urltestdata.json")
-    request.send()
-    request.responseType = "json"
-    request.onload = setup.step_func(function() {
-      runURLTests(request.response)
-      setup.done()
-    })
-  })
-}
+promise_test(() => fetch("resources/urltestdata.json").then(res => res.json()).then(runURLTests), "Loading data…");
 
 function bURL(url, base) {
   return new URL(url, base || "about:blank")
@@ -33,5 +21,4 @@
     }, "Origin parsing: <" + expected.input + "> against <" + expected.base + ">")
   }
 }
-runURLOriginTests()
 </script>
diff --git a/url/url-setters.html b/url/url-setters.html
index b8b8ee5..db30cf0 100644
--- a/url/url-setters.html
+++ b/url/url-setters.html
@@ -4,19 +4,7 @@
 <script src=/resources/testharnessreport.js></script>
 <div id=log></div>
 <script>
-function startURLSettersTests() {
-  var setup = async_test("Loading data…")
-  setup.step(function() {
-    var request = new XMLHttpRequest()
-    request.open("GET", "setters_tests.json")
-    request.send()
-    request.responseType = "json"
-    request.onload = setup.step_func(function() {
-      runURLSettersTests(request.response)
-      setup.done()
-    })
-  })
-}
+promise_test(() => fetch("resources/setters_tests.json").then(res => res.json()).then(runURLSettersTests), "Loading data…");
 
 function runURLSettersTests(all_test_cases) {
   for (var attribute_to_be_set in all_test_cases) {
@@ -57,6 +45,4 @@
     }
   }
 }
-
-startURLSettersTests()
 </script>
diff --git a/user-timing/user-timing-tojson.html b/user-timing/user-timing-tojson.html
new file mode 100644
index 0000000..6aef7fa
--- /dev/null
+++ b/user-timing/user-timing-tojson.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+const keys = [
+  'name',
+  'entryType',
+  'startTime',
+  'duration',
+];
+test(() => {
+  performance.mark('a');
+  const markEntries = performance.getEntriesByType('mark');
+  assert_equals(1, markEntries.length);
+  const markEntry = markEntries[0];
+  assert_equals(markEntry.entryType, 'mark');
+  assert_equals(typeof(markEntry.toJSON), 'function');
+  const markJSON = markEntry.toJSON();
+  assert_equals(typeof(markJSON), 'object');
+  for (const key of keys) {
+    assert_equals(markJSON[key], markEntry[key], `PerformanceMark ${key} entry does not match its toJSON value`);
+  }
+}, 'Test toJSON() in PerformanceMark');
+
+test(() => {
+  performance.measure('m');
+  const measureEntries = performance.getEntriesByType('measure');
+  assert_equals(1, measureEntries.length);
+  const measureEntry = measureEntries[0];
+  assert_equals(measureEntry.entryType, 'measure');
+  assert_equals(typeof(measureEntry.toJSON), 'function');
+  const measureJSON = measureEntry.toJSON();
+  assert_equals(typeof(measureJSON), 'object');
+  for (const key of keys) {
+    assert_equals(measureJSON[key], measureEntry[key], `PerformanceMeasure ${key} entry does not match its toJSON value`);
+  }
+}, 'Test toJSON() in PerformanceMeasure');
+</script>
+</body>
+</html>
diff --git a/vibration/invalid-values.html b/vibration/invalid-values.html
index 523d2ce..6740a44 100644
--- a/vibration/invalid-values.html
+++ b/vibration/invalid-values.html
@@ -2,16 +2,10 @@
 <meta charset='utf-8'>
 <title>Vibration API: vibrate(invalid)</title>
 <link rel='author' title='Intel' href='http://www.intel.com'>
-<link rel='help' href='http://dev.w3.org/2009/dap/vibration/#vibration-interface'>
-
-<h1>Description</h1>
-<p>
-  This test checks the <code>vibrate()</code> method with invalid parameter,
-  taking vendor prefixes into account.
-</p>
-<div id='log'></div>
+<link rel='help' href='https://w3c.github.io/vibration/#vibration-interface'>
 <script src='/resources/testharness.js'></script>
 <script src='/resources/testharnessreport.js'></script>
+<div id='log'></div>
 <script>
   test(function() {
     assert_throws(new TypeError(), function() {
@@ -20,58 +14,30 @@
   }, 'Missing pattern argument');
 
   test(function() {
-    try {
-      navigator.vibrate(undefined);
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate(undefined);
   }, 'pattern of undefined resolves to []');
 
   test(function() {
-    try {
-      navigator.vibrate(null);
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate(null);
   }, 'pattern of null resolves to []');
 
   test(function() {
-    try {
-      navigator.vibrate('one');
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate('one');
   }, 'pattern of empty string resolves to [""]');
 
   test(function() {
-    try {
-      navigator.vibrate('one');
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate('one');
   }, 'pattern of string resolves to ["one"]');
 
   test(function() {
-    try {
-      navigator.vibrate(new String('one'));
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate(new String('one'));
   }, 'pattern of String instance resolves to ["one"]');
 
   test(function() {
-    try {
-      navigator.vibrate(NaN);
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate(NaN);
   }, 'pattern of NaN resolves to [NaN]');
 
   test(function() {
-    try {
-      navigator.vibrate({});
-    } catch(e) {
-      assert_unreached('error message: ' + e.message);
-    }
+    navigator.vibrate({});
   }, 'pattern of {} resolves to [{}]');
 </script>
diff --git a/web-animations/animation-model/animation-types/property-types.js b/web-animations/animation-model/animation-types/property-types.js
index 60c7d2f..5bafb20 100644
--- a/web-animations/animation-model/animation-types/property-types.js
+++ b/web-animations/animation-model/animation-types/property-types.js
@@ -893,6 +893,30 @@
     test(t => {
       const idlName = propertyToIDL(property);
       const target = createTestElement(t, setup);
+      const animation =
+        target.animate({ [idlName]: ['rotate(0deg)',
+                                     'rotate(1080deg) translateX(100px)'] },
+                       1000);
+
+      testAnimationSampleMatrices(animation, idlName,
+        [{ time: 500, expected: [ -1, 0, 0, -1, -50, 0 ] }]);
+    }, `${property}: extend shorter list (from)`);
+
+    test(t => {
+      const idlName = propertyToIDL(property);
+      const target = createTestElement(t, setup);
+      const animation =
+        target.animate({ [idlName]: ['rotate(0deg) translateX(100px)',
+                                     'rotate(1080deg)'] },
+                       1000);
+
+      testAnimationSampleMatrices(animation, idlName,
+        [{ time: 500, expected: [ -1, 0, 0, -1, -50, 0 ] }]);
+    }, `${property}: extend shorter list (to)`);
+
+    test(t => {
+      const idlName = propertyToIDL(property);
+      const target = createTestElement(t, setup);
       const animation =              // matrix(0, 1, -1, 0, 0, 100)
         target.animate({ [idlName]: ['rotate(90deg) translateX(100px)',
                                      // matrix(-1, 0, 0, -1, 200, 0)
@@ -1168,6 +1192,30 @@
     test(t => {
       const idlName = propertyToIDL(property);
       const target = createTestElement(t, setup);
+      target.style[idlName] = 'rotate(45deg) translateX(100px)';
+      const animation = target.animate({ [idlName]: ['rotate(-90deg)',
+                                                     'rotate(90deg)'] },
+                                       { duration: 1000, fill: 'both',
+                                         composite: 'add' });
+
+      testAnimationSampleMatrices(animation, idlName,
+        [{ time: 0,    expected: [ Math.cos(-Math.PI / 4),
+                                   Math.sin(-Math.PI / 4),
+                                  -Math.sin(-Math.PI / 4),
+                                   Math.cos(-Math.PI / 4),
+                                   100 * Math.cos(Math.PI / 4),
+                                   100 * Math.sin(Math.PI / 4) ] },
+         { time: 1000, expected: [ Math.cos(Math.PI * 3 / 4),
+                                   Math.sin(Math.PI * 3 / 4),
+                                  -Math.sin(Math.PI * 3 / 4),
+                                   Math.cos(Math.PI * 3 / 4),
+                                   100 * Math.cos(Math.PI / 4),
+                                   100 * Math.sin(Math.PI / 4) ] }]);
+    }, `${property}: rotate on rotate and translate`);
+
+    test(t => {
+      const idlName = propertyToIDL(property);
+      const target = createTestElement(t, setup);
       target.style[idlName] = 'matrix(0, 1, -1, 0, 0, 0)';
       const animation =               // Same matrices as above.
         target.animate({ [idlName]: [ 'matrix(1, 0, 0, 1, 100, 0)',
@@ -1366,6 +1414,53 @@
     test(t => {
       const idlName = propertyToIDL(property);
       const target = createTestElement(t, setup);
+      target.style[idlName] = 'rotate(45deg)';
+      const animation =
+        target.animate({ [idlName]: ['rotate(45deg) translateX(0px)',
+                                     'rotate(45deg) translateX(100px)'] },
+                       { duration: 1000, fill: 'both', composite: 'accumulate' });
+
+      testAnimationSampleMatrices(animation, idlName,
+        [{ time: 0,    expected: [ Math.cos(Math.PI / 2),
+                                   Math.sin(Math.PI / 2),
+                                  -Math.sin(Math.PI / 2),
+                                   Math.cos(Math.PI / 2),
+                                   0 * Math.cos(Math.PI / 2),
+                                   0 * Math.sin(Math.PI / 2) ] },
+         { time: 1000, expected: [ Math.cos(Math.PI / 2),
+                                   Math.sin(Math.PI / 2),
+                                  -Math.sin(Math.PI / 2),
+                                   Math.cos(Math.PI / 2),
+                                   100 * Math.cos(Math.PI / 2),
+                                   100 * Math.sin(Math.PI / 2) ] }]);
+    }, `${property}: rotate and translate on rotate`);
+
+    test(t => {
+      const idlName = propertyToIDL(property);
+      const target = createTestElement(t, setup);
+      target.style[idlName] = 'rotate(45deg) translateX(100px)';
+      const animation =
+        target.animate({ [idlName]: ['rotate(45deg)', 'rotate(45deg)'] },
+                       { duration: 1000, fill: 'both', composite: 'accumulate' });
+
+      testAnimationSampleMatrices(animation, idlName,
+        [{ time: 0,    expected: [ Math.cos(Math.PI / 2),
+                                   Math.sin(Math.PI / 2),
+                                  -Math.sin(Math.PI / 2),
+                                   Math.cos(Math.PI / 2),
+                                   100 * Math.cos(Math.PI / 2),
+                                   100 * Math.sin(Math.PI / 2) ] },
+         { time: 1000, expected: [ Math.cos(Math.PI / 2),
+                                   Math.sin(Math.PI / 2),
+                                  -Math.sin(Math.PI / 2),
+                                   Math.cos(Math.PI / 2),
+                                   100 * Math.cos(Math.PI / 2),
+                                   100 * Math.sin(Math.PI / 2) ] }]);
+    }, `${property}: rotate on roate and translate`);
+
+    test(t => {
+      const idlName = propertyToIDL(property);
+      const target = createTestElement(t, setup);
       target.style[idlName] = 'matrix(0, 1, -1, 0, 0, 0)';
       const animation =                 // Same matrices as above.
         target.animate({ [idlName]: [ 'matrix(1, 0, 0, 1, 100, 0)',
diff --git a/web-animations/animation-model/keyframe-effects/effect-value-interval-distance.html b/web-animations/animation-model/keyframe-effects/effect-value-interval-distance.html
new file mode 100644
index 0000000..6bf5d8c
--- /dev/null
+++ b/web-animations/animation-model/keyframe-effects/effect-value-interval-distance.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>The effect value of a keyframe effect: Calculating the interval
+  distance between keyframes</title>
+<link rel="help" href="https://drafts.csswg.org/web-animations/#the-effect-value-of-a-keyframe-animation-effect">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../testcommon.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+test(t => {
+  // In Firefox there was a floating precision bug in the calculation of the
+  // progress at the end of the 0.2<->1.0 interval. This test exercises that
+  // calculation in case other UAs suffer from the same problem.
+  const target = createDiv(t);
+  const anim = target.animate(
+    [
+      { opacity: 0 },
+      { offset: 0.2, opacity: 1, easing: 'step-end' },
+      { opacity: 0 },
+    ],
+    {
+      duration: 1000,
+      fill: 'forwards',
+    }
+  );
+
+  anim.currentTime = 1000;
+  assert_equals(getComputedStyle(target).opacity, '0');
+}, 'Interval distance is calculated correctly (precision test)');
+
+</script>
+</body>
diff --git a/web-animations/testcommon.js b/web-animations/testcommon.js
index 1a8ca79..5dbf6fd 100644
--- a/web-animations/testcommon.js
+++ b/web-animations/testcommon.js
@@ -213,7 +213,7 @@
 }
 
 // Returns an array of the 4x4 matrix equivalent to 'rotate3d(x, y, z, radian)'.
-// https://www.w3.org/TR/css-transforms-1/#Rotate3dDefined
+// https://drafts.csswg.org/css-transforms-2/#Rotate3dDefined
 function rotate3dToMatrix(x, y, z, radian) {
   const sc = Math.sin(radian / 2) * Math.cos(radian / 2);
   const sq = Math.sin(radian / 2) * Math.sin(radian / 2);
diff --git a/webmessaging/Channel_postMessage_Blob.htm b/webmessaging/Channel_postMessage_Blob.htm
index a86dc7e..c8c247e 100644
--- a/webmessaging/Channel_postMessage_Blob.htm
+++ b/webmessaging/Channel_postMessage_Blob.htm
@@ -23,7 +23,7 @@
     (function() {
       SOURCE.postMessage({blob: new Blob(['foo', 'bar'])});
     })();
-    // TODO(https://github.com/w3c/web-platform-tests/issues/7899): Change to
+    // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to
     // some sort of cross-browser GC trigger.
     if (self.gc) self.gc();
 
diff --git a/webmessaging/broadcastchannel/blobs.html b/webmessaging/broadcastchannel/blobs.html
index 083204b..1f0e2f1 100644
--- a/webmessaging/broadcastchannel/blobs.html
+++ b/webmessaging/broadcastchannel/blobs.html
@@ -27,7 +27,7 @@
     (() => {
       c1.postMessage({blob: new Blob(['foo', 'bar'])});
     })();
-    // TODO(https://github.com/w3c/web-platform-tests/issues/7899): Change to
+    // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to
     // some sort of cross-browser GC trigger.
     if (self.gc) self.gc();
   }, 'Blobs work on BroadcastChannel');
diff --git a/webmessaging/broadcastchannel/resources/worker.js b/webmessaging/broadcastchannel/resources/worker.js
index 640c405..9364c60 100644
--- a/webmessaging/broadcastchannel/resources/worker.js
+++ b/webmessaging/broadcastchannel/resources/worker.js
@@ -9,7 +9,7 @@
     (() => {
       c.postMessage({blob: new Blob(e.data.blob)});
     })();
-    // TODO(https://github.com/w3c/web-platform-tests/issues/7899): Change to
+    // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to
     // some sort of cross-browser GC trigger.
     if (self.gc) self.gc();
   }
diff --git a/webrtc/RTCPeerConnection-getIdentityAssertion.html b/webrtc/RTCPeerConnection-getIdentityAssertion.html
deleted file mode 100644
index d600816..0000000
--- a/webrtc/RTCPeerConnection-getIdentityAssertion.html
+++ /dev/null
@@ -1,400 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<title>RTCPeerConnection.prototype.getIdentityAssertion</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="identity-helper.js"></script>
-<script>
-  'use strict';
-
-  // Test is based on the following editor draft:
-  // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
-
-  // The tests here interacts with the mock identity provider located at
-  //   /.well-known/idp-proxy/mock-idp.js
-
-  // The following helper functions are called from identity-helper.js
-  //   parseAssertionResult
-  //   getIdpDomains
-  //   assert_rtcerror_rejection
-  //   hostString
-
-  /*
-    9.6.  RTCPeerConnection Interface Extensions
-      partial interface RTCPeerConnection {
-        void               setIdentityProvider(DOMString provider,
-                                               optional RTCIdentityProviderOptions options);
-        Promise<DOMString> getIdentityAssertion();
-        readonly attribute Promise<RTCIdentityAssertion> peerIdentity;
-        readonly attribute DOMString?                    idpLoginUrl;
-        readonly attribute DOMString?                    idpErrorInfo;
-      };
-
-      dictionary RTCIdentityProviderOptions {
-        DOMString protocol = "default";
-        DOMString usernameHint;
-        DOMString peerIdentity;
-      };
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-
-    const [idpDomain] = getIdpDomains();
-    const idpHost = hostString(idpDomain, port);
-
-    pc.setIdentityProvider(idpHost, {
-      protocol: 'mock-idp.js?foo=bar',
-      usernameHint: `alice@${idpDomain}`,
-      peerIdentity: 'bob@example.org'
-    });
-
-    return pc.getIdentityAssertion()
-    .then(assertionResultStr => {
-      const { idp, assertion } = parseAssertionResult(assertionResultStr);
-
-      assert_equals(idp.domain, idpHost,
-        'Expect mock-idp.js to construct domain from its location.host');
-
-      assert_equals(idp.protocol, 'mock-idp.js',
-        'Expect mock-idp.js to return protocol of itself with no query string');
-
-      const {
-        watermark,
-        args,
-        env,
-        query,
-      } = assertion;
-
-      assert_equals(watermark, 'mock-idp.js.watermark',
-        'Expect assertion result to contain watermark left by mock-idp.js');
-
-      assert_equals(args.origin, window.origin,
-        'Expect args.origin argument to be the origin of this window');
-
-      assert_equals(env.location,
-        `https://${idpHost}/.well-known/idp-proxy/idp-test.js?foo=bar`,
-        'Expect IdP proxy to be loaded with full well-known URL constructed from provider and protocol');
-
-      assert_equals(env.origin, `https://${idpHost}`,
-        'Expect IdP to have its own origin');
-
-      assert_equals(args.options.protocol, 'idp-test.js?foo=bar',
-        'Expect options.protocol to be the same value as being passed from here');
-
-      assert_equals(args.options.usernameHint, `alice@${idpDomain}`,
-        'Expect options.usernameHint to be the same value as being passed from here');
-
-      assert_equals(args.options.peerIdentity, 'bob@example.org',
-        'Expect options.peerIdentity to be the same value as being passed from here');
-
-      assert_equals(query.foo, 'bar',
-        'Expect query string to be parsed by mock-idp.js and returned back');
-    });
-  }, 'getIdentityAssertion() should load IdP proxy and return assertion generated');
-
-  // When generating assertion, the RTCPeerConnection doesn't care if the returned assertion
-  // represents identity of different domain
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-
-    const [idpDomain1, idpDomain2] = getIdpDomains();
-    assert_not_equals(idpDomain1, idpDomain2,
-      'Sanity check two idpDomains are different');
-
-    // Ask mock-idp.js to return a custom domain idpDomain2 and custom protocol foo
-    pc.setIdentityProvider(hostString(idpDomain1, port), {
-      protocol: `mock-idp.js?generatorAction=return-custom-idp&domain=${idpDomain2}&protocol=foo`,
-      usernameHint: `alice@${idpDomain2}`,
-    });
-
-    return pc.getIdentityAssertion()
-    .then(assertionResultStr => {
-      const { idp, assertion } = parseAssertionResult(assertionResultStr);
-      assert_equals(idp.domain, idpDomain2);
-      assert_equals(idp.protocol, 'foo');
-      assert_equals(assertion.options.usernameHint, `alice@${idpDomain2}`);
-    });
-  }, 'getIdentityAssertion() should succeed if mock-idp.js return different domain and protocol in assertion');
-
-  /*
-    9.3.  Requesting Identity Assertions
-      4.  If the IdP proxy produces an error or returns a promise that does not resolve to
-          a valid RTCIdentityValidationResult (see 9.5 IdP Error Handling), then identity
-          validation fails.
-
-    9.5.  IdP Error Handling
-      - If an identity provider throws an exception or returns a promise that is ultimately
-        rejected, then the procedure that depends on the IdP MUST also fail. These types of
-        errors will cause an IdP failure with an RTCError with errorDetail set to
-        "idp-execution-failure".
-
-    9.6.  RTCPeerConnection Interface Extensions
-      idpErrorInfo
-        An attribute that the IdP can use to pass additional information back to the
-        applications about the error. The format of this string is defined by the IdP and
-        may be JSON.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-
-    assert_equals(pc.idpErrorInfo, null,
-      'Expect initial pc.idpErrorInfo to be null');
-
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    // Ask mock-idp.js to throw an error with err.errorInfo set to bar
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: `mock-idp.js?generatorAction=throw-error&errorInfo=bar`,
-      usernameHint: `alice@${idpDomain}`,
-    });
-
-    return assert_rtcerror_rejection('idp-execution-failure',
-      pc.getIdentityAssertion())
-    .then(() => {
-      assert_equals(pc.idpErrorInfo, 'bar',
-        'Expect pc.idpErrorInfo to be set to the err.idpErrorInfo thrown by mock-idp.js');
-    });
-  }, `getIdentityAssertion() should reject with RTCError('idp-execution-failure') if mock-idp.js throws error`);
-
-  /*
-    9.5.  IdP Error Handling
-      - If the script loaded from the identity provider is not valid JavaScript or does
-        not implement the correct interfaces, it causes an IdP failure with an RTCError
-        with errorDetail set to "idp-bad-script-failure".
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    // Ask mock-idp.js to not register its callback to the
-    // RTCIdentityProviderRegistrar
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: `mock-idp.js?action=do-not-register`,
-      usernameHint: `alice@${idpDomain}`,
-    });
-
-    return assert_rtcerror_rejection('idp-bad-script-failure',
-      pc.getIdentityAssertion());
-
-  }, `getIdentityAssertion() should reject with RTCError('idp-bad-script-failure') if IdP proxy script do not register its callback`);
-
-  /*
-    9.3.  Requesting Identity Assertions
-      4.  If the IdP proxy produces an error or returns a promise that does not resolve
-          to a valid RTCIdentityAssertionResult (see 9.5 IdP Error Handling), then assertion
-          generation fails.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    // Ask mock-idp.js to return an invalid result that is not proper
-    // RTCIdentityAssertionResult
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: `mock-idp.js?generatorAction=return-invalid-result`,
-      usernameHint: `alice@${idpDomain}`,
-    });
-
-    return promise_rejects(t, 'OperationError',
-      pc.getIdentityAssertion());
-  }, `getIdentityAssertion() should reject with OperationError if mock-idp.js return invalid result`);
-
-  /*
-    9.5.  IdP Error Handling
-      - A RTCPeerConnection might be configured with an identity provider, but loading of
-        the IdP URI fails. Any procedure that attempts to invoke such an identity provider
-        and cannot load the URI fails with an RTCError with errorDetail set to
-        "idp-load-failure" and the httpRequestStatusCode attribute of the error set to the
-        HTTP status code of the response.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-
-    pc.setIdentityProvider('nonexistent.web-platform.test', {
-      protocol: `non-existent`,
-      usernameHint: `alice@example.org`,
-    });
-
-    return assert_rtcerror_rejection('idp-load-failure',
-      pc.getIdentityAssertion());
-  }, `getIdentityAssertion() should reject with RTCError('idp-load-failure') if IdP cannot be loaded`);
-
-  /*
-    9.3.1.  User Login Procedure
-      Rejecting the promise returned by generateAssertion will cause the error to
-      propagate to the application. Login errors are indicated by rejecting the
-      promise with an RTCError with errorDetail set to "idp-need-login".
-
-      The URL to login at will be passed to the application in the idpLoginUrl
-      attribute of the RTCPeerConnection.
-
-    9.5.  IdP Error Handling
-      - If the identity provider requires the user to login, the operation will fail
-        RTCError with errorDetail set to "idp-need-login" and the idpLoginUrl attribute
-        of the error set to the URL that can be used to login.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-
-    assert_equals(pc.idpLoginUrl, null,
-      'Expect initial pc.idpLoginUrl to be null');
-
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-    const idpHost = hostString(idpDomain, port);
-
-    pc.setIdentityProvider(idpHost, {
-      protocol: `mock-idp.js?generatorAction=require-login`,
-      usernameHint: `alice@${idpDomain}`,
-    });
-
-    return assert_rtcerror_rejection('idp-need-login',
-      pc.getIdentityAssertion())
-    .then(err => {
-      assert_equals(err.idpLoginUrl, `https://${idpHost}/login`,
-        'Expect err.idpLoginUrl to be set to url set by mock-idp.js');
-
-      assert_equals(pc.idpLoginUrl, `https://${idpHost}/login`,
-        'Expect pc.idpLoginUrl to be set to url set by mock-idp.js');
-
-      assert_equals(pc.idpErrorInfo, 'login required',
-        'Expect pc.idpErrorInfo to be set to info set by mock-idp.js');
-    });
-  }, `getIdentityAssertion() should reject with RTCError('idp-need-login') when mock-idp.js requires login`);
-
-  /*
-    RTCIdentityProviderOptions Members
-      peerIdentity
-        The identity of the peer. For identity providers that bind their assertions to a
-        particular pair of communication peers, this allows them to generate an assertion
-        that includes both local and remote identities. If this value is omitted, but a
-        value is provided for the peerIdentity member of RTCConfiguration, the value from
-        RTCConfiguration is used.
-  */
-  promise_test(t => {
-    const pc = new RTCPeerConnection({
-      peerIdentity: 'bob@example.net'
-    });
-
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-    const idpHost = hostString(idpDomain, port);
-
-    pc.setIdentityProvider(idpHost, {
-      protocol: 'mock-idp.js'
-    });
-
-    return pc.getIdentityAssertion()
-    .then(assertionResultStr => {
-      const { assertion } = parseAssertionResult(assertionResultStr);
-      assert_equals(assertion.args.options.peerIdentity, 'bob@example.net');
-    });
-  }, 'setIdentityProvider() with no peerIdentity provided should use peerIdentity value from getConfiguration()');
-
-  /*
-    9.6.  setIdentityProvider
-      3.  If any identity provider value has changed, discard any stored identity assertion.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-    const idpHost = hostString(idpDomain, port);
-
-    pc.setIdentityProvider(idpHost, {
-      protocol: 'mock-idp.js?mark=first'
-    });
-
-    return pc.getIdentityAssertion()
-    .then(assertionResultStr => {
-      const { assertion } = parseAssertionResult(assertionResultStr);
-      assert_equals(assertion.query.mark, 'first');
-
-      pc.setIdentityProvider(idpHost, {
-        protocol: 'mock-idp.js?mark=second'
-      });
-
-      return pc.getIdentityAssertion();
-    })
-    .then(assertionResultStr => {
-      const { assertion } = parseAssertionResult(assertionResultStr);
-      assert_equals(assertion.query.mark, 'second',
-        'Expect generated assertion is from second IdP config');
-    });
-  }, `Calling setIdentityProvider() multiple times should reset identity assertions`);
-
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: 'mock-idp.js',
-      usernameHint: `alice@${idpDomain}`
-    });
-
-    return pc.getIdentityAssertion()
-    .then(assertionResultStr =>
-      pc.createOffer()
-      .then(offer => {
-        assert_true(offer.sdp.includes(`\r\na=identity:${assertionResultStr}`,
-          'Expect SDP to have a=identity line containing assertion string'));
-      }));
-  }, 'createOffer() should return SDP containing identity assertion string if identity provider is set');
-
-  /*
-    4.4.2.  Steps to create an offer
-      1.  If the need for an identity assertion was identified when createOffer was
-          invoked, wait for the identity assertion request process to complete.
-      2.  If the identity provider was unable to produce an identity assertion, reject p
-          with a newly created NotReadableError and abort these steps.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: 'mock-idp.js?generatorAction=throw-error',
-      usernameHint: `alice@${idpDomain}`
-    });
-
-    return promise_rejects(t, 'NotReadableError',
-      pc.createOffer());
-  }, 'createOffer() should reject with NotReadableError if identitity assertion request fails');
-
-  /*
-    4.4.2.  Steps to create an answer
-      1.  If the need for an identity assertion was identified when createAnswer was
-          invoked, wait for the identity assertion request process to complete.
-
-      2.  If the identity provider was unable to produce an identity assertion, reject p
-          with a newly created NotReadableError and abort these steps.
-   */
-  promise_test(t => {
-    const pc = new RTCPeerConnection();
-    const port = window.location.port;
-    const [idpDomain] = getIdpDomains();
-
-    pc.setIdentityProvider(hostString(idpDomain, port), {
-      protocol: 'mock-idp.js?generatorAction=throw-error',
-      usernameHint: `alice@${idpDomain}`
-    });
-
-    return new RTCPeerConnection()
-    .createOffer()
-    .then(offer => pc.setRemoteDescription(offer))
-    .then(() =>
-      promise_rejects(t, 'NotReadableError',
-        pc.createAnswer()));
-
-  }, 'createAnswer() should reject with NotReadableError if identitity assertion request fails');
-
-</script>
diff --git a/webrtc/RTCPeerConnection-getIdentityAssertion.sub.html b/webrtc/RTCPeerConnection-getIdentityAssertion.sub.html
new file mode 100644
index 0000000..2bd860d
--- /dev/null
+++ b/webrtc/RTCPeerConnection-getIdentityAssertion.sub.html
@@ -0,0 +1,400 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection.prototype.getIdentityAssertion</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="identity-helper.sub.js"></script>
+<script>
+  'use strict';
+
+  // Test is based on the following editor draft:
+  // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
+
+  // The tests here interacts with the mock identity provider located at
+  //   /.well-known/idp-proxy/mock-idp.js
+
+  // The following helper functions are called from identity-helper.sub.js
+  //   parseAssertionResult
+  //   getIdpDomains
+  //   assert_rtcerror_rejection
+  //   hostString
+
+  /*
+    9.6.  RTCPeerConnection Interface Extensions
+      partial interface RTCPeerConnection {
+        void               setIdentityProvider(DOMString provider,
+                                               optional RTCIdentityProviderOptions options);
+        Promise<DOMString> getIdentityAssertion();
+        readonly attribute Promise<RTCIdentityAssertion> peerIdentity;
+        readonly attribute DOMString?                    idpLoginUrl;
+        readonly attribute DOMString?                    idpErrorInfo;
+      };
+
+      dictionary RTCIdentityProviderOptions {
+        DOMString protocol = "default";
+        DOMString usernameHint;
+        DOMString peerIdentity;
+      };
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+
+    const [idpDomain] = getIdpDomains();
+    const idpHost = hostString(idpDomain, port);
+
+    pc.setIdentityProvider(idpHost, {
+      protocol: 'mock-idp.js?foo=bar',
+      usernameHint: `alice@${idpDomain}`,
+      peerIdentity: 'bob@example.org'
+    });
+
+    return pc.getIdentityAssertion()
+    .then(assertionResultStr => {
+      const { idp, assertion } = parseAssertionResult(assertionResultStr);
+
+      assert_equals(idp.domain, idpHost,
+        'Expect mock-idp.js to construct domain from its location.host');
+
+      assert_equals(idp.protocol, 'mock-idp.js',
+        'Expect mock-idp.js to return protocol of itself with no query string');
+
+      const {
+        watermark,
+        args,
+        env,
+        query,
+      } = assertion;
+
+      assert_equals(watermark, 'mock-idp.js.watermark',
+        'Expect assertion result to contain watermark left by mock-idp.js');
+
+      assert_equals(args.origin, window.origin,
+        'Expect args.origin argument to be the origin of this window');
+
+      assert_equals(env.location,
+        `https://${idpHost}/.well-known/idp-proxy/idp-test.js?foo=bar`,
+        'Expect IdP proxy to be loaded with full well-known URL constructed from provider and protocol');
+
+      assert_equals(env.origin, `https://${idpHost}`,
+        'Expect IdP to have its own origin');
+
+      assert_equals(args.options.protocol, 'idp-test.js?foo=bar',
+        'Expect options.protocol to be the same value as being passed from here');
+
+      assert_equals(args.options.usernameHint, `alice@${idpDomain}`,
+        'Expect options.usernameHint to be the same value as being passed from here');
+
+      assert_equals(args.options.peerIdentity, 'bob@example.org',
+        'Expect options.peerIdentity to be the same value as being passed from here');
+
+      assert_equals(query.foo, 'bar',
+        'Expect query string to be parsed by mock-idp.js and returned back');
+    });
+  }, 'getIdentityAssertion() should load IdP proxy and return assertion generated');
+
+  // When generating assertion, the RTCPeerConnection doesn't care if the returned assertion
+  // represents identity of different domain
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+
+    const [idpDomain1, idpDomain2] = getIdpDomains();
+    assert_not_equals(idpDomain1, idpDomain2,
+      'Sanity check two idpDomains are different');
+
+    // Ask mock-idp.js to return a custom domain idpDomain2 and custom protocol foo
+    pc.setIdentityProvider(hostString(idpDomain1, port), {
+      protocol: `mock-idp.js?generatorAction=return-custom-idp&domain=${idpDomain2}&protocol=foo`,
+      usernameHint: `alice@${idpDomain2}`,
+    });
+
+    return pc.getIdentityAssertion()
+    .then(assertionResultStr => {
+      const { idp, assertion } = parseAssertionResult(assertionResultStr);
+      assert_equals(idp.domain, idpDomain2);
+      assert_equals(idp.protocol, 'foo');
+      assert_equals(assertion.options.usernameHint, `alice@${idpDomain2}`);
+    });
+  }, 'getIdentityAssertion() should succeed if mock-idp.js return different domain and protocol in assertion');
+
+  /*
+    9.3.  Requesting Identity Assertions
+      4.  If the IdP proxy produces an error or returns a promise that does not resolve to
+          a valid RTCIdentityValidationResult (see 9.5 IdP Error Handling), then identity
+          validation fails.
+
+    9.5.  IdP Error Handling
+      - If an identity provider throws an exception or returns a promise that is ultimately
+        rejected, then the procedure that depends on the IdP MUST also fail. These types of
+        errors will cause an IdP failure with an RTCError with errorDetail set to
+        "idp-execution-failure".
+
+    9.6.  RTCPeerConnection Interface Extensions
+      idpErrorInfo
+        An attribute that the IdP can use to pass additional information back to the
+        applications about the error. The format of this string is defined by the IdP and
+        may be JSON.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+
+    assert_equals(pc.idpErrorInfo, null,
+      'Expect initial pc.idpErrorInfo to be null');
+
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    // Ask mock-idp.js to throw an error with err.errorInfo set to bar
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: `mock-idp.js?generatorAction=throw-error&errorInfo=bar`,
+      usernameHint: `alice@${idpDomain}`,
+    });
+
+    return assert_rtcerror_rejection('idp-execution-failure',
+      pc.getIdentityAssertion())
+    .then(() => {
+      assert_equals(pc.idpErrorInfo, 'bar',
+        'Expect pc.idpErrorInfo to be set to the err.idpErrorInfo thrown by mock-idp.js');
+    });
+  }, `getIdentityAssertion() should reject with RTCError('idp-execution-failure') if mock-idp.js throws error`);
+
+  /*
+    9.5.  IdP Error Handling
+      - If the script loaded from the identity provider is not valid JavaScript or does
+        not implement the correct interfaces, it causes an IdP failure with an RTCError
+        with errorDetail set to "idp-bad-script-failure".
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    // Ask mock-idp.js to not register its callback to the
+    // RTCIdentityProviderRegistrar
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: `mock-idp.js?action=do-not-register`,
+      usernameHint: `alice@${idpDomain}`,
+    });
+
+    return assert_rtcerror_rejection('idp-bad-script-failure',
+      pc.getIdentityAssertion());
+
+  }, `getIdentityAssertion() should reject with RTCError('idp-bad-script-failure') if IdP proxy script do not register its callback`);
+
+  /*
+    9.3.  Requesting Identity Assertions
+      4.  If the IdP proxy produces an error or returns a promise that does not resolve
+          to a valid RTCIdentityAssertionResult (see 9.5 IdP Error Handling), then assertion
+          generation fails.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    // Ask mock-idp.js to return an invalid result that is not proper
+    // RTCIdentityAssertionResult
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: `mock-idp.js?generatorAction=return-invalid-result`,
+      usernameHint: `alice@${idpDomain}`,
+    });
+
+    return promise_rejects(t, 'OperationError',
+      pc.getIdentityAssertion());
+  }, `getIdentityAssertion() should reject with OperationError if mock-idp.js return invalid result`);
+
+  /*
+    9.5.  IdP Error Handling
+      - A RTCPeerConnection might be configured with an identity provider, but loading of
+        the IdP URI fails. Any procedure that attempts to invoke such an identity provider
+        and cannot load the URI fails with an RTCError with errorDetail set to
+        "idp-load-failure" and the httpRequestStatusCode attribute of the error set to the
+        HTTP status code of the response.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+
+    pc.setIdentityProvider('nonexistent.{{domains[]}}', {
+      protocol: `non-existent`,
+      usernameHint: `alice@example.org`,
+    });
+
+    return assert_rtcerror_rejection('idp-load-failure',
+      pc.getIdentityAssertion());
+  }, `getIdentityAssertion() should reject with RTCError('idp-load-failure') if IdP cannot be loaded`);
+
+  /*
+    9.3.1.  User Login Procedure
+      Rejecting the promise returned by generateAssertion will cause the error to
+      propagate to the application. Login errors are indicated by rejecting the
+      promise with an RTCError with errorDetail set to "idp-need-login".
+
+      The URL to login at will be passed to the application in the idpLoginUrl
+      attribute of the RTCPeerConnection.
+
+    9.5.  IdP Error Handling
+      - If the identity provider requires the user to login, the operation will fail
+        RTCError with errorDetail set to "idp-need-login" and the idpLoginUrl attribute
+        of the error set to the URL that can be used to login.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+
+    assert_equals(pc.idpLoginUrl, null,
+      'Expect initial pc.idpLoginUrl to be null');
+
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+    const idpHost = hostString(idpDomain, port);
+
+    pc.setIdentityProvider(idpHost, {
+      protocol: `mock-idp.js?generatorAction=require-login`,
+      usernameHint: `alice@${idpDomain}`,
+    });
+
+    return assert_rtcerror_rejection('idp-need-login',
+      pc.getIdentityAssertion())
+    .then(err => {
+      assert_equals(err.idpLoginUrl, `https://${idpHost}/login`,
+        'Expect err.idpLoginUrl to be set to url set by mock-idp.js');
+
+      assert_equals(pc.idpLoginUrl, `https://${idpHost}/login`,
+        'Expect pc.idpLoginUrl to be set to url set by mock-idp.js');
+
+      assert_equals(pc.idpErrorInfo, 'login required',
+        'Expect pc.idpErrorInfo to be set to info set by mock-idp.js');
+    });
+  }, `getIdentityAssertion() should reject with RTCError('idp-need-login') when mock-idp.js requires login`);
+
+  /*
+    RTCIdentityProviderOptions Members
+      peerIdentity
+        The identity of the peer. For identity providers that bind their assertions to a
+        particular pair of communication peers, this allows them to generate an assertion
+        that includes both local and remote identities. If this value is omitted, but a
+        value is provided for the peerIdentity member of RTCConfiguration, the value from
+        RTCConfiguration is used.
+  */
+  promise_test(t => {
+    const pc = new RTCPeerConnection({
+      peerIdentity: 'bob@example.net'
+    });
+
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+    const idpHost = hostString(idpDomain, port);
+
+    pc.setIdentityProvider(idpHost, {
+      protocol: 'mock-idp.js'
+    });
+
+    return pc.getIdentityAssertion()
+    .then(assertionResultStr => {
+      const { assertion } = parseAssertionResult(assertionResultStr);
+      assert_equals(assertion.args.options.peerIdentity, 'bob@example.net');
+    });
+  }, 'setIdentityProvider() with no peerIdentity provided should use peerIdentity value from getConfiguration()');
+
+  /*
+    9.6.  setIdentityProvider
+      3.  If any identity provider value has changed, discard any stored identity assertion.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+    const idpHost = hostString(idpDomain, port);
+
+    pc.setIdentityProvider(idpHost, {
+      protocol: 'mock-idp.js?mark=first'
+    });
+
+    return pc.getIdentityAssertion()
+    .then(assertionResultStr => {
+      const { assertion } = parseAssertionResult(assertionResultStr);
+      assert_equals(assertion.query.mark, 'first');
+
+      pc.setIdentityProvider(idpHost, {
+        protocol: 'mock-idp.js?mark=second'
+      });
+
+      return pc.getIdentityAssertion();
+    })
+    .then(assertionResultStr => {
+      const { assertion } = parseAssertionResult(assertionResultStr);
+      assert_equals(assertion.query.mark, 'second',
+        'Expect generated assertion is from second IdP config');
+    });
+  }, `Calling setIdentityProvider() multiple times should reset identity assertions`);
+
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: 'mock-idp.js',
+      usernameHint: `alice@${idpDomain}`
+    });
+
+    return pc.getIdentityAssertion()
+    .then(assertionResultStr =>
+      pc.createOffer()
+      .then(offer => {
+        assert_true(offer.sdp.includes(`\r\na=identity:${assertionResultStr}`,
+          'Expect SDP to have a=identity line containing assertion string'));
+      }));
+  }, 'createOffer() should return SDP containing identity assertion string if identity provider is set');
+
+  /*
+    4.4.2.  Steps to create an offer
+      1.  If the need for an identity assertion was identified when createOffer was
+          invoked, wait for the identity assertion request process to complete.
+      2.  If the identity provider was unable to produce an identity assertion, reject p
+          with a newly created NotReadableError and abort these steps.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: 'mock-idp.js?generatorAction=throw-error',
+      usernameHint: `alice@${idpDomain}`
+    });
+
+    return promise_rejects(t, 'NotReadableError',
+      pc.createOffer());
+  }, 'createOffer() should reject with NotReadableError if identitity assertion request fails');
+
+  /*
+    4.4.2.  Steps to create an answer
+      1.  If the need for an identity assertion was identified when createAnswer was
+          invoked, wait for the identity assertion request process to complete.
+
+      2.  If the identity provider was unable to produce an identity assertion, reject p
+          with a newly created NotReadableError and abort these steps.
+   */
+  promise_test(t => {
+    const pc = new RTCPeerConnection();
+    const port = window.location.port;
+    const [idpDomain] = getIdpDomains();
+
+    pc.setIdentityProvider(hostString(idpDomain, port), {
+      protocol: 'mock-idp.js?generatorAction=throw-error',
+      usernameHint: `alice@${idpDomain}`
+    });
+
+    return new RTCPeerConnection()
+    .createOffer()
+    .then(offer => pc.setRemoteDescription(offer))
+    .then(() =>
+      promise_rejects(t, 'NotReadableError',
+        pc.createAnswer()));
+
+  }, 'createAnswer() should reject with NotReadableError if identitity assertion request fails');
+
+</script>
diff --git a/webrtc/RTCPeerConnection-peerIdentity.html b/webrtc/RTCPeerConnection-peerIdentity.html
index 2d93880..68d9f20 100644
--- a/webrtc/RTCPeerConnection-peerIdentity.html
+++ b/webrtc/RTCPeerConnection-peerIdentity.html
@@ -3,7 +3,7 @@
 <title>RTCPeerConnection.prototype.peerIdentity</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="identity-helper.js"></script>
+<script src="identity-helper.sub.js"></script>
 <script>
   'use strict';
 
@@ -13,7 +13,7 @@
   // The tests here interacts with the mock identity provider located at
   //   /.well-known/idp-proxy/mock-idp.js
 
-  // The following helper functions are called from identity-helper.js
+  // The following helper functions are called from identity-helper.sub.js
   //   parseAssertionResult
   //   getIdpDomains
   //   assert_rtcerror_rejection
diff --git a/webrtc/RTCPeerConnection-track-stats.https.html b/webrtc/RTCPeerConnection-track-stats.https.html
index c21bd82..d833eb9 100644
--- a/webrtc/RTCPeerConnection-track-stats.https.html
+++ b/webrtc/RTCPeerConnection-track-stats.https.html
@@ -32,7 +32,7 @@
       // TODO(hbos): Here and elsewhere, validateRtcStats() only tests id,
       // timestamp and type is correct type. Should validate based on stats type
       // but it expects both audio and video members.
-      // https://github.com/w3c/web-platform-tests/issues/9010
+      // https://github.com/web-platform-tests/wpt/issues/9010
       validateRtcStats(report, trackStats);
       t.done();
     }))
diff --git a/webrtc/identity-helper.js b/webrtc/identity-helper.js
deleted file mode 100644
index 16e5d35..0000000
--- a/webrtc/identity-helper.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-
-/*
-  In web-platform-test, the following domains are required to be set up locally:
-    127.0.0.1   web-platform.test
-    127.0.0.1   www.web-platform.test
-    127.0.0.1   www1.web-platform.test
-    127.0.0.1   www2.web-platform.test
-    127.0.0.1   xn--n8j6ds53lwwkrqhv28a.web-platform.test
-    127.0.0.1   xn--lve-6lad.web-platform.test
-    0.0.0.0     nonexistent.web-platform.test
- */
-
-/*
-    dictionary RTCIdentityProviderDetails {
-      required DOMString domain;
-               DOMString protocol = "default";
-    };
- */
-
-// Parse a base64 JSON encoded string returned from getIdentityAssertion().
-// This is also the string that is set in the a=identity line.
-// Returns a { idp, assertion } where idp is of type RTCIdentityProviderDetails
-// and assertion is the deserialized JSON that was returned by the
-// IdP proxy's generateAssertion() function.
-function parseAssertionResult(assertionResultStr) {
-  const assertionResult = JSON.parse(atob(assertionResultStr));
-
-  const { idp } = assertionResult;
-  const assertion = JSON.parse(assertionResult.assertion);
-
-  return { idp, assertion };
-}
-
-// Return two distinct IdP domains that are different from current domain
-function getIdpDomains() {
-  if(window.location.hostname === 'www1.web-platform.test') {
-    return ['www.web-platform.test', 'www2.web-platform.test'];
-  } else if(window.location.hostname === 'www2.web-platform.test') {
-    return ['www.web-platform.test', 'www1.web-platform.test'];
-  } else {
-    return ['www1.web-platform.test', 'www2.web-platform.test'];
-  }
-}
-
-function assert_rtcerror_rejection(errorDetail, promise, desc) {
-  return promise.then(
-    res => {
-      assert_unreached(`Expect promise to be rejected with RTCError, but instead got ${res}`);
-    }, err => {
-      assert_true(err instanceof RTCError,
-        'Expect error object to be instance of RTCError');
-
-      assert_equals(err.errorDetail, errorDetail,
-        `Expect RTCError object have errorDetail set to ${errorDetail}`);
-
-      return err;
-    });
-}
-
-// construct a host string consist of domain and optionally port
-// If the default HTTP/HTTPS port is used, window.location.port returns
-// empty string.
-function hostString(domain, port) {
-  if(port === '') {
-    return domain;
-  } else {
-    return `${domain}:${port}`;
-  }
-}
diff --git a/webrtc/identity-helper.sub.js b/webrtc/identity-helper.sub.js
new file mode 100644
index 0000000..9036366
--- /dev/null
+++ b/webrtc/identity-helper.sub.js
@@ -0,0 +1,70 @@
+'use strict';
+
+/*
+  In web-platform-test, a number of domains are required to be set up locally.
+  The list is available at docs/_writing-tests/server-features.md. The
+  appropriate hosts file entries can be generated with the WPT CLI via the
+  following command: `wpt make-hosts-file`.
+ */
+
+/*
+    dictionary RTCIdentityProviderDetails {
+      required DOMString domain;
+               DOMString protocol = "default";
+    };
+ */
+
+// Parse a base64 JSON encoded string returned from getIdentityAssertion().
+// This is also the string that is set in the a=identity line.
+// Returns a { idp, assertion } where idp is of type RTCIdentityProviderDetails
+// and assertion is the deserialized JSON that was returned by the
+// IdP proxy's generateAssertion() function.
+function parseAssertionResult(assertionResultStr) {
+  const assertionResult = JSON.parse(atob(assertionResultStr));
+
+  const { idp } = assertionResult;
+  const assertion = JSON.parse(assertionResult.assertion);
+
+  return { idp, assertion };
+}
+
+// Return two distinct IdP domains that are different from current domain
+function getIdpDomains() {
+  const domainA = '{{domains[www]}}';
+  const domainB = '{{domains[www1]}}';
+  const domainC = '{{domains[www2]}}';
+
+  if(window.location.hostname === domainA) {
+    return [domainB, domainC];
+  } else if(window.location.hostname === domainB) {
+    return [domainA, domainC];
+  } else {
+    return [domainA, domainB];
+  }
+}
+
+function assert_rtcerror_rejection(errorDetail, promise, desc) {
+  return promise.then(
+    res => {
+      assert_unreached(`Expect promise to be rejected with RTCError, but instead got ${res}`);
+    }, err => {
+      assert_true(err instanceof RTCError,
+        'Expect error object to be instance of RTCError');
+
+      assert_equals(err.errorDetail, errorDetail,
+        `Expect RTCError object have errorDetail set to ${errorDetail}`);
+
+      return err;
+    });
+}
+
+// construct a host string consist of domain and optionally port
+// If the default HTTP/HTTPS port is used, window.location.port returns
+// empty string.
+function hostString(domain, port) {
+  if(port === '') {
+    return domain;
+  } else {
+    return `${domain}:${port}`;
+  }
+}
diff --git a/webrtc/protocol/video-codecs.html b/webrtc/protocol/video-codecs.html
deleted file mode 100644
index cc15ced..0000000
--- a/webrtc/protocol/video-codecs.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<title>RTCPeerConnection.prototype.createOffer</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/webrtc/RTCPeerConnection-helper.js"></script>
-<script>
-'use strict';
-
-// Tests for conformance to RFC 7742,
-// "WebRTC Video Processing and Codec Requirements"
-// The document was formerly known as draft-ietf-rtcweb-video-codecs.
-//
-// This tests that the browser is a WebRTC Browser as defined there.
-
-// TODO: Section 3.2: screen capture video MUST be prepared
-// to handle resolution changes.
-
-// TODO: Section 4: MUST support generating CVO (orientation)
-
-// Section 5: Browsers MUST implement VP8 and H.264 Constrained Baseline
-promise_test(async t => {
-  const pc = new RTCPeerConnection();
-  const offer = await pc.createOffer({offerToReceiveVideo: true});
-  let video_section_found = false;
-  for (let section of offer.sdp.split(/\r\nm=/)) {
-    if (section.search('video') != 0) {
-      continue;
-    }
-    video_section_found = true;
-    // RTPMAP lines have the format a=rtpmap:<pt> <codec>/<clock rate>
-    let rtpmap_regex = /\r\na=rtpmap:(\d+) (\S+)\/\d+\r\n/g;
-    let match = rtpmap_regex.exec(offer.sdp);
-    let payload_type_map = new Array();
-    while (match) {
-      payload_type_map[match[1]] = match[2];
-      match = rtpmap_regex.exec(offer.sdp);
-    }
-    assert_true(payload_type_map.indexOf('VP8') > -1,
-                'VP8 is supported');
-    assert_true(payload_type_map.indexOf('H264') > -1,
-                'H.264 is supported');
-    // TODO: Verify that one of the H.264 PTs supports constrained baseline
-  }
-  assert_true(video_section_found);
-}, 'H.264 and VP8 should be supported in initial offer');
-
-// TODO: Section 6: Recipients MUST be able to decode 320x240@20 fps
-// TODO: Section 6.1: VP8 MUST support RFC 7741 payload formats
-// TODO: Section 6.1: VP8 MUST respect max-fr/max-fs
-// TODO: Section 6.1: VP8 MUST encode and decode square pixels
-// TODO: Section 6.2: H.264 MUST support RFC 6184 payload formats
-// TODO: Section 6.2: MUST support Constrained Baseline level 1.2
-// TODO: Section 6.2: SHOULD support Constrained High level 1.3
-// TODO: Section 6.2: MUST support packetization mode 1.
-// TODO: Section 6.2: MUST include profile-level-id
-// TODO: Section 6.2: SHOULD interpret max-mbps, max-smbps, max-fs et al
-// TODO: Section 6.2: MUST NOT include sprop-parameter-sets
-// TODO: Section 6.2: MUST support SEI "filler payload"
-// TODO: Section 6.2: MUST support SEI "full frame freeze"
-// TODO: Section 6.2: MUST be prepared to receive User Data messages
-// TODO: Section 6.2: MUST encode and decode square pixels unless signaled
-</script>
diff --git a/webrtc/protocol/video-codecs.https.html b/webrtc/protocol/video-codecs.https.html
new file mode 100644
index 0000000..547856f
--- /dev/null
+++ b/webrtc/protocol/video-codecs.https.html
@@ -0,0 +1,90 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection.prototype.createOffer</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../RTCPeerConnection-helper.js"></script>
+<script>
+'use strict';
+
+// Tests for conformance to RFC 7742,
+// "WebRTC Video Processing and Codec Requirements"
+// The document was formerly known as draft-ietf-rtcweb-video-codecs.
+//
+// This tests that the browser is a WebRTC Browser as defined there.
+
+// TODO: Section 3.2: screen capture video MUST be prepared
+// to handle resolution changes.
+
+// TODO: Section 4: MUST support generating CVO (orientation)
+
+// Section 5: Browsers MUST implement VP8 and H.264 Constrained Baseline
+promise_test(async t => {
+  const pc = new RTCPeerConnection();
+  const offer = await pc.createOffer({offerToReceiveVideo: true});
+  let video_section_found = false;
+  for (let section of offer.sdp.split(/\r\nm=/)) {
+    if (section.search('video') != 0) {
+      continue;
+    }
+    video_section_found = true;
+    // RTPMAP lines have the format a=rtpmap:<pt> <codec>/<clock rate>
+    let rtpmap_regex = /\r\na=rtpmap:(\d+) (\S+)\/\d+\r\n/g;
+    let match = rtpmap_regex.exec(offer.sdp);
+    let payload_type_map = new Array();
+    while (match) {
+      payload_type_map[match[1]] = match[2];
+      match = rtpmap_regex.exec(offer.sdp);
+    }
+    assert_true(payload_type_map.indexOf('VP8') > -1,
+                'VP8 is supported');
+    assert_true(payload_type_map.indexOf('H264') > -1,
+                'H.264 is supported');
+    // TODO: Verify that one of the H.264 PTs supports constrained baseline
+  }
+  assert_true(video_section_found);
+}, 'H.264 and VP8 should be supported in initial offer');
+
+async function negotiateParameters() {
+  const pc1 = new RTCPeerConnection();
+  const pc2 = new RTCPeerConnection();
+  let [track, streams] = await getTrackFromUserMedia('video');
+  const sender = pc1.addTrack(track);
+  await doSignalingHandshake(pc1, pc2);
+  return sender.getParameters();
+}
+
+function parseFmtp(fmtp) {
+  const params = fmtp.split(';');
+  return params.map(param => param.split('='));
+}
+promise_test(async t => {
+  const params = await negotiateParameters();
+  assert_true(!!params.codecs.find(codec => codec.mimeType === 'video/H264'));
+  assert_true(!!params.codecs.find(codec => codec.mimeType === 'video/VP8'));
+}, 'H.264 and VP8 should be negotiated after handshake');
+
+// TODO: Section 6: Recipients MUST be able to decode 320x240@20 fps
+// TODO: Section 6.1: VP8 MUST support RFC 7741 payload formats
+// TODO: Section 6.1: VP8 MUST respect max-fr/max-fs
+// TODO: Section 6.1: VP8 MUST encode and decode square pixels
+// TODO: Section 6.2: H.264 MUST support RFC 6184 payload formats
+// TODO: Section 6.2: MUST support Constrained Baseline level 1.2
+// TODO: Section 6.2: SHOULD support Constrained High level 1.3
+// TODO: Section 6.2: MUST support packetization mode 1.
+promise_test(async t => {
+  const params = await negotiateParameters();
+  const h264 = params.codecs.filter(codec => codec.mimeType === 'video/H264');
+  h264.map(codec => {
+    const codec_params = parseFmtp(codec.sdpFmtpLine);
+    assert_true(!!codec_params.find(x => x[0] === 'profile-level-id'));
+  })
+}, 'All H.264 codecs MUST include profile-level-id');
+
+// TODO: Section 6.2: SHOULD interpret max-mbps, max-smbps, max-fs et al
+// TODO: Section 6.2: MUST NOT include sprop-parameter-sets
+// TODO: Section 6.2: MUST support SEI "filler payload"
+// TODO: Section 6.2: MUST support SEI "full frame freeze"
+// TODO: Section 6.2: MUST be prepared to receive User Data messages
+// TODO: Section 6.2: MUST encode and decode square pixels unless signaled
+</script>
diff --git a/webrtc/tools/.eslintrc.js b/webrtc/tools/.eslintrc.js
index 47bbb5d..9368cf4 100644
--- a/webrtc/tools/.eslintrc.js
+++ b/webrtc/tools/.eslintrc.js
@@ -72,7 +72,7 @@
     assert_optional_dict_field: true,
     assert_optional_enum_field: true,
 
-    // identity-helper.js
+    // identity-helper.sub.js
     parseAssertionResult: true,
     getIdpDomains: true,
     assert_rtcerror_rejection: true,
diff --git a/webstorage/eventTestHarness.js b/webstorage/eventTestHarness.js
index 7d9ed01..f39dfda 100644
--- a/webstorage/eventTestHarness.js
+++ b/webstorage/eventTestHarness.js
@@ -5,6 +5,10 @@
 
 storageEventList = new Array();
 iframe.contentWindow.onstorage = function(e) {
+    if (iframe.contentWindow.sessionStorage === e.storageArea)
+      e.storageAreaString = "sessionStorage";
+    else if (iframe.contentWindow.localStorage === e.storageArea)
+      e.storageAreaString = "localStorage";
     window.parent.storageEventList.push(e);
 };
 
diff --git a/webstorage/event_basic.js b/webstorage/event_basic.js
index fe8446c..9f0c11b 100644
--- a/webstorage/event_basic.js
+++ b/webstorage/event_basic.js
@@ -20,6 +20,8 @@
                 assert_unreached(msg);
             }
             assert_equals(storageEventList.length, 1);
+            assert_equals(storageEventList[0].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[0].key, "FOO");
             assert_equals(storageEventList[0].oldValue, null);
             assert_equals(storageEventList[0].newValue, "BAR");
@@ -38,18 +40,26 @@
                 assert_unreached(msg);
             }
             assert_equals(storageEventList.length, 5);
+            assert_equals(storageEventList[1].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[1].key, "FU");
             assert_equals(storageEventList[1].oldValue, null);
             assert_equals(storageEventList[1].newValue, "BAR");
 
+            assert_equals(storageEventList[2].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[2].key, "a");
             assert_equals(storageEventList[2].oldValue, null);
             assert_equals(storageEventList[2].newValue, "1");
 
+            assert_equals(storageEventList[3].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[3].key, "b");
             assert_equals(storageEventList[3].oldValue, null);
             assert_equals(storageEventList[3].newValue, "2");
 
+            assert_equals(storageEventList[4].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[4].key, "b");
             assert_equals(storageEventList[4].oldValue, "2");
             assert_equals(storageEventList[4].newValue, "3");
@@ -65,6 +75,8 @@
                 assert_unreached(msg);
             }
             assert_equals(storageEventList.length, 6);
+            assert_equals(storageEventList[5].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[5].key, "FOO");
             assert_equals(storageEventList[5].oldValue, "BAR");
             assert_equals(storageEventList[5].newValue, null);
@@ -80,6 +92,8 @@
                 assert_unreached(msg);
             }
             assert_equals(storageEventList.length, 7);
+            assert_equals(storageEventList[6].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[6].key, "FU");
             assert_equals(storageEventList[6].oldValue, "BAR");
             assert_equals(storageEventList[6].newValue, null);
@@ -95,6 +109,8 @@
                 assert_unreached(msg);
             }
             assert_equals(storageEventList.length, 8);
+            assert_equals(storageEventList[7].storageAreaString, storageString,
+                "Storage event came from wrong storage type.");
             assert_equals(storageEventList[7].key, null);
             assert_equals(storageEventList[7].oldValue, null);
             assert_equals(storageEventList[7].newValue, null);
diff --git a/webusb/idlharness.https.html b/webusb/idlharness.https.html
index f69c53c..a256878 100644
--- a/webusb/idlharness.https.html
+++ b/webusb/idlharness.https.html
@@ -35,6 +35,7 @@
         idl_array.add_untested_idls('dictionary EventInit {};');
         idl_array.add_untested_idls('interface EventTarget {};');
         idl_array.add_untested_idls('interface Navigator {};');
+        idl_array.add_untested_idls('interface WorkerNavigator {};');
 
         let {device} = await getFakeDevice();
 
diff --git a/webusb/resources/idlharness.dedicatedworker.sharedworker.js b/webusb/resources/idlharness.dedicatedworker.sharedworker.js
new file mode 100644
index 0000000..99eb5a1
--- /dev/null
+++ b/webusb/resources/idlharness.dedicatedworker.sharedworker.js
@@ -0,0 +1,61 @@
+'use strict';
+importScripts('/resources/testharness.js');
+importScripts('/resources/WebIDLParser.js');
+importScripts('/resources/idlharness.js');
+importScripts('/webusb/resources/fake-devices.js');
+importScripts('/webusb/resources/usb-helpers.js');
+
+// Object instances used by the IDL test.
+var usbDevice;
+var usbConfiguration;
+var usbInterface;
+var usbAlternateInterface;
+var usbEndpoint;
+var usbConnectionEvent;
+
+usb_test(async () => {
+  let webUSBResponse = await fetch('/interfaces/webusb.idl');
+  let domResponse = await fetch('/interfaces/dom.idl');
+  let webusb_idl_text = await webUSBResponse.text();
+  let dom_idl_text = await domResponse.text();
+  let idl_array = new IdlArray();
+  idl_array.add_idls(webusb_idl_text);
+
+  // Untested IDL interfaces
+  idl_array.add_untested_idls(dom_idl_text, { only: ['Event', 'EventTarget'] });
+  idl_array.add_untested_idls('interface EventHandler {};');
+  idl_array.add_untested_idls('dictionary EventInit {};');
+  idl_array.add_untested_idls('interface Navigator {};');
+  idl_array.add_untested_idls('interface WorkerNavigator {};');
+
+  let {device} = await getFakeDevice();
+
+  usbDevice = device;
+  usbConfiguration = usbDevice.configurations[0];
+  usbInterface = usbConfiguration.interfaces[0];
+  usbAlternateInterface = usbInterface.alternates[0];
+  usbEndpoint = usbAlternateInterface.endpoints[0];
+  usbConnectionEvent =
+      new USBConnectionEvent('connect', { device: usbDevice })
+
+  idl_array.add_objects({
+    WorkerNavigator: ['navigator'],
+    USB: ['navigator.usb'],
+    USBAlternateInterface: ['usbAlternateInterface'],
+    USBConfiguration: ['usbConfiguration'],
+    USBConnectionEvent: ['usbConnectionEvent'],
+    USBDevice: ['usbDevice'],
+    USBEndpoint: ['usbEndpoint'],
+    USBInterface: ['usbInterface'],
+    USBInTransferResult: ['new USBInTransferResult("ok")'],
+    USBOutTransferResult: ['new USBOutTransferResult("ok")'],
+    USBIsochronousInTransferResult: ['new USBIsochronousInTransferResult([])'],
+    USBIsochronousOutTransferResult: ['new USBIsochronousOutTransferResult([])'],
+    USBIsochronousInTransferPacket: ['new USBIsochronousInTransferPacket("ok")'],
+    USBIsochronousOutTransferPacket: ['new USBIsochronousOutTransferPacket("ok")'],
+  });
+
+  idl_array.test();
+}, 'WebUSB on Workers IDL test');
+
+done();
\ No newline at end of file
diff --git a/webusb/resources/usb-helpers.js b/webusb/resources/usb-helpers.js
index d3b0501..81a712c 100644
--- a/webusb/resources/usb-helpers.js
+++ b/webusb/resources/usb-helpers.js
@@ -24,6 +24,11 @@
     '/resources/chromium/chooser_service.mojom.js',
     '/resources/chromium/webusb-test.js',
   ].forEach(path => {
+    // Use importScripts for workers.
+    if (typeof document === 'undefined') {
+      chain = chain.then(() => importScripts(path));
+      return;
+    }
     let script = document.createElement('script');
     script.src = path;
     script.async = false;
diff --git a/webusb/resources/usb.dedicatedworker.sharedworker.js b/webusb/resources/usb.dedicatedworker.sharedworker.js
index 61ee0a5..b1b2a43 100644
--- a/webusb/resources/usb.dedicatedworker.sharedworker.js
+++ b/webusb/resources/usb.dedicatedworker.sharedworker.js
@@ -1,5 +1,9 @@
 'use strict';
 importScripts('/resources/testharness.js');
+importScripts('/webusb/resources/fake-devices.js');
+importScripts('/webusb/resources/usb-helpers.js');
+
+let usbDevice, devicesFirstTime, fakeDevice, removedDevice;
 
 test(() => {
   assert_true(navigator.usb instanceof USB,
@@ -10,4 +14,46 @@
       'navigator.usb.requestDevice should not be defined');
 }, 'Web workers should have the WebUSB API exposed as defined in the spec.');
 
+usb_test(() => getFakeDevice()
+    .then(_ => usbDevice = _.device)
+    .then(() => navigator.usb.getDevices())
+    .then(devices => {
+      assert_equals(devices.length, 1);
+      assert_equals(usbDevice, devices[0]);
+      assertDeviceInfoEquals(devices[0], fakeDeviceInit);
+    }), 'getDevices returns devices that are connected');
+
+usb_test(() => getFakeDevice()
+    .then(() => navigator.usb.getDevices())
+    .then(_ => devicesFirstTime = _)
+    .then(() => assert_equals(devicesFirstTime.length, 1))
+    .then(() => navigator.usb.getDevices())
+    .then(devicesSecondTime => assert_array_equals(devicesSecondTime,
+        devicesFirstTime)),
+    'getDevices returns the same objects for each USB device');
+
+usb_test(() => getFakeDevice()
+    .then(_ => usbDevice = _.device)
+    .then(() => assertDeviceInfoEquals(usbDevice, fakeDeviceInit))
+    .then(() => usbDevice.open())
+    .then(() => usbDevice.close()),
+    'onconnect event is trigged by adding a device');
+
+usb_test(() => getFakeDevice()
+    .then(_ => {
+      usbDevice = _.device;
+      fakeDevice = _.fakeDevice;
+    })
+    .then(() => waitForDisconnect(fakeDevice))
+    .then(_ => removedDevice = _)
+    .then(() => {
+      assertDeviceInfoEquals(removedDevice, fakeDeviceInit);
+      assert_equals(removedDevice, usbDevice);
+    })
+    .then(() => removedDevice.open())
+    .then(() =>
+        assert_unreachable('should not be able to open a disconnected device'),
+        error => assert_equals(error.code, DOMException.NOT_FOUND_ERR)),
+    'ondisconnect event is triggered by removing a device');
+
 done();
\ No newline at end of file
diff --git a/webusb/worker/idlharness.dedicatedworker.https.html b/webusb/worker/idlharness.dedicatedworker.https.html
new file mode 100644
index 0000000..9ff2183
--- /dev/null
+++ b/webusb/worker/idlharness.dedicatedworker.https.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+'use strict';
+
+fetch_tests_from_worker(new Worker(
+    '/webusb/resources/idlharness.dedicatedworker.sharedworker.js'));
+
+</script>
diff --git a/webusb/worker/idlharness.sharedworker.https.html b/webusb/worker/idlharness.sharedworker.https.html
new file mode 100644
index 0000000..362e182
--- /dev/null
+++ b/webusb/worker/idlharness.sharedworker.https.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+'use strict';
+
+fetch_tests_from_worker(new SharedWorker(
+    '/webusb/resources/idlharness.dedicatedworker.sharedworker.js'));
+
+</script>
\ No newline at end of file
diff --git a/workers/WorkerGlobalScope_requestAnimationFrame.htm b/workers/WorkerGlobalScope_requestAnimationFrame.htm
new file mode 100644
index 0000000..dcf58d9
--- /dev/null
+++ b/workers/WorkerGlobalScope_requestAnimationFrame.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<title> WorkerGlobalScope API: requestAnimationFrame()</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script id="worker" type="text/worker">
+const res = [];
+requestAnimationFrame((dt) => {
+  res.push(dt);
+  requestAnimationFrame((dt) => {
+    res.push(dt);
+    requestAnimationFrame((dt) => {
+      res.push(dt);
+      postMessage(res);
+    });
+  });
+});
+</script>
+<script>
+async_test(function(t) {
+  var blob = new Blob([document.getElementById('worker').textContent]);
+  var worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener("message", (ev) => {
+    const ret = ev.data;
+    assert_equals(ret.length, 3);
+    assert_true(ret[0] < ret[1]);
+    assert_true(ret[1] < ret[2]);
+    t.done();
+  });
+});
+</script>
diff --git a/workers/modules/dedicated-worker-import-failure.html b/workers/modules/dedicated-worker-import-failure.html
new file mode 100644
index 0000000..1c3adeb
--- /dev/null
+++ b/workers/modules/dedicated-worker-import-failure.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: import failure</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+promise_test(async () => {
+  const scriptURL = 'resources/import-scripts-worker.js';
+  const worker = new Worker(scriptURL, { type: 'module' });
+  const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+  assert_equals(msg_event.data, 'TypeError');
+}, 'importScripts() on module worker should throw an exception.');
+
+promise_test(async () => {
+  const scriptURL = 'resources/static-import-worker.js';
+  const worker = new Worker(scriptURL, { type: 'classic' });
+  await new Promise(resolve => worker.onerror = resolve);
+}, 'Static import on classic worker should throw an exception.');
+
+promise_test(() => {
+  const scriptURL = 'resources/non-existent-worker.js';
+  const worker = new Worker(scriptURL, { type: 'module' });
+  return new Promise(resolve => worker.onerror = resolve);
+}, 'Worker construction for non-existent script should dispatch an ' +
+   'ErrorEvent.');
+
+promise_test(() => {
+  const scriptURL = 'resources/static-import-non-existent-script-worker.js';
+  const worker = new Worker(scriptURL, { type: 'module' });
+  return new Promise(resolve => worker.onerror = resolve);
+}, 'Static import for non-existent script should dispatch an ErrorEvent.');
+
+promise_test(async () => {
+  const script_url = './non-existent-worker.js';
+  const worker = new Worker('resources/dynamic-import-given-url-worker.js',
+                            { type: 'module' });
+  worker.postMessage(script_url);
+  const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+  assert_equals(msg_event.data, 'TypeError');
+}, 'Dynamic import for non-existent script should throw an exception.');
+
+</script>
diff --git a/workers/modules/dedicated-worker-import.html b/workers/modules/dedicated-worker-import.html
index 9ca6f3c..a45fa9e 100644
--- a/workers/modules/dedicated-worker-import.html
+++ b/workers/modules/dedicated-worker-import.html
@@ -4,73 +4,44 @@
 <script src="/resources/testharnessreport.js"></script>
 <script>
 
-// Start a dedicated worker for |scriptURL| and wait until MessageEvents from
-// imported modules up to |expectedNumberOfImportedModules|.
-function RunImportTest(scriptURL, expectedNumberOfImportedModules) {
-  return new Promise(resolve => {
-    let numberOfImportedModules = 0;
+// Starts a dedicated worker for |scriptURL| and waits until the list of
+// imported modules is sent from the worker. Passes if the list is equal to
+// |expectedImportedModules|.
+function import_test(scriptURL, expectedImportedModules, description) {
+  promise_test(async () => {
     const worker = new Worker(scriptURL, { type: 'module' });
-    worker.onmessage = e => {
-      if (e.data === 'LOADED')
-        ++numberOfImportedModules;
-      if (numberOfImportedModules === expectedNumberOfImportedModules)
-        resolve();
-    };
-  });
+    const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+    assert_array_equals(msg_event.data, expectedImportedModules);
+  }, description);
 }
 
-promise_test(() => {
-  return RunImportTest('resources/static-import-worker.js', 2);
-}, 'Test static import on DedicatedWorkerGlobalScope.');
+import_test('resources/static-import-worker.js',
+            ['export-on-load-script.js'],
+            'Static import.');
 
-promise_test(() => {
-  return RunImportTest('resources/nested-static-import-worker.js', 3);
-}, 'Test nested static import on DedicatedWorkerGlobalScope.');
+import_test('resources/nested-static-import-worker.js',
+            ['export-on-static-import-script.js', 'export-on-load-script.js'],
+            'Nested static import.');
 
-promise_test(() => {
-  return RunImportTest(
-      'resources/static-import-and-then-dynamic-import-worker.js', 3);
-}, 'Test static import and then dynamic import on DedicatedWorkerGlobalScope.');
 
-promise_test(() => {
-  return RunImportTest('resources/dynamic-import-worker.js', 2);
-}, 'Test dynamic import on DedicatedWorkerGlobalScope.');
+import_test('resources/static-import-and-then-dynamic-import-worker.js',
+            ['export-on-dynamic-import-script.js', 'export-on-load-script.js'],
+            'Static import and then dynamic import.');
 
-promise_test(() => {
-  return RunImportTest('resources/nested-dynamic-import-worker.js', 3);
-}, 'Test nested dynamic import on DedicatedWorkerGlobalScope.');
+import_test('resources/dynamic-import-worker.js',
+            ['export-on-load-script.js'],
+            'Dynamic import.');
 
-promise_test(() => {
-  return RunImportTest(
-      'resources/dynamic-import-and-then-static-import-worker.js', 3);
-}, 'Test dynamic import and then static import on DedicatedWorkerGlobalScope.');
+import_test('resources/nested-dynamic-import-worker.js',
+            ['export-on-dynamic-import-script.js', 'export-on-load-script.js'],
+            'Nested dynamic import.');
 
-promise_test(() => {
-  const scriptURL = 'resources/import-scripts-worker.js';
-  const worker = new Worker(scriptURL, { type: 'module' });
-  return (new Promise(resolve => worker.onmessage = resolve))
-      .then(e => assert_equals(e.data, 'TypeError'));
-}, 'importScripts() on module worker should throw an exception.');
+import_test('resources/dynamic-import-and-then-static-import-worker.js',
+            ['export-on-static-import-script.js', 'export-on-load-script.js'],
+            'Dynamic import and then static import.');
 
-promise_test(() => {
-  const scriptURL = 'resources/non-existent-worker.js';
-  const worker = new Worker(scriptURL, { type: 'module' });
-  return new Promise(resolve => worker.onerror = resolve);
-}, 'Worker construction for non-existent script should throw an exception.');
-
-promise_test(() => {
-  const scriptURL = 'resources/static-import-non-existent-script-worker.js';
-  const worker = new Worker(scriptURL, { type: 'module' });
-  return new Promise(resolve => worker.onerror = resolve);
-}, 'Static import for non-existent script should throw an exception.');
-
-promise_test(() => {
-  const script_url = './non-existent-worker.js';
-  const worker = new Worker('resources/dynamic-import-given-url-worker.js',
-                            { type: 'module' });
-  worker.postMessage(script_url);
-  return new Promise(resolve => worker.onmessage = resolve)
-      .then(msg_event => assert_equals(msg_event.data, 'ERROR'));
-}, 'Dynamic import for non-existent script should throw an exception.');
+import_test('resources/eval-dynamic-import-worker.js',
+            ['export-on-load-script.js'],
+            'eval(import()).');
 
 </script>
diff --git a/workers/modules/dedicated-worker-options-credentials.html b/workers/modules/dedicated-worker-options-credentials.html
new file mode 100644
index 0000000..316b01d
--- /dev/null
+++ b/workers/modules/dedicated-worker-options-credentials.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: WorkerOptions 'credentials'</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+// Determines the expected cookie value to be reported by a dedicated worker
+// based on the given option. The worker reports an empty string as the actual
+// cookie value if the cookie wasn't sent to the server. Otherwise, it's the
+// value set by the headers file:
+// "dedicated-worker-options-credentials.html.headers"
+function DetermineExpectedCookieValue(options) {
+  // Classic script loading should always send credentials regardless of the
+  // 'credentials' option because the spec says the option takes effect only
+  // for module script loading.
+  if (options.type == 'classic')
+    return 'COOKIE_VALUE';
+  assert_equals(options.type, 'module');
+
+  if (!options.credentials || options.credentials == 'omit')
+    return '';
+  if (options.credentials == 'same-origin' || options.credentials == 'include')
+    return 'COOKIE_VALUE';
+  assert_unreached('Invalid credentials option was specified: ' +
+                   options.credentials);
+}
+
+// Runs a credentials test with the given WorkerOptions.
+async function runCredentialsTest(options) {
+  const worker = new Worker('resources/credentials.py', options);
+
+  // Wait until the worker sends the actual cookie value.
+  const msg_event = await new Promise(resolve => worker.onmessage = resolve);
+
+  const expectedCookieValue = DetermineExpectedCookieValue(options);
+  assert_equals(msg_event.data, expectedCookieValue);
+}
+
+// Tests for module scripts.
+
+promise_test(() => runCredentialsTest({ type: 'module'}),
+    'new Worker() with the default credentials option should not send ' +
+    'the credentials');
+
+promise_test(() => runCredentialsTest({ credentials: 'omit',
+                                        type: 'module' }),
+    'new Worker() with credentials=omit should not send the credentials');
+
+promise_test(() => runCredentialsTest({ credentials: 'same-origin',
+                                        type: 'module' }),
+    'new Worker() with credentials=same-origin should send the credentials');
+
+promise_test(() => runCredentialsTest({ credentials: 'include',
+                                        type: 'module' }),
+    'new Worker() with credentials=include should send the credentials');
+
+// Tests for classic scripts.
+
+promise_test(() => runCredentialsTest({ type: 'classic' }),
+    'new Worker() with type=classic should always send the credentials ' +
+    'regardless of the credentials option (default).');
+
+promise_test(() => runCredentialsTest({ credentials: 'omit',
+                                        type: 'classic' }),
+    'new Worker() with type=classic should always send the credentials ' +
+    'regardless of the credentials option (omit).');
+
+promise_test(() => runCredentialsTest({ credentials: 'same-origin',
+                                        type: 'classic' }),
+    'new Worker() with type=classic should always send the credentials ' +
+    'regardless of the credentials option (same-origin).');
+
+promise_test(() => runCredentialsTest({ credentials: 'include',
+                                        type: 'classic' }),
+    'new Worker() with type=classic should always send the credentials ' +
+    'regardless of the credentials option (include).');
+
+</script>
diff --git a/workers/modules/dedicated-worker-options-credentials.html.headers b/workers/modules/dedicated-worker-options-credentials.html.headers
new file mode 100644
index 0000000..6f53744
--- /dev/null
+++ b/workers/modules/dedicated-worker-options-credentials.html.headers
@@ -0,0 +1,2 @@
+Set-Cookie: COOKIE_NAME=COOKIE_VALUE
+Access-Control-Allow-Credentials: true
diff --git a/workers/modules/resources/credentials.py b/workers/modules/resources/credentials.py
new file mode 100644
index 0000000..8f79563
--- /dev/null
+++ b/workers/modules/resources/credentials.py
@@ -0,0 +1,10 @@
+def main(request, response):
+    cookie = request.cookies.first("COOKIE_NAME", None)
+
+    response_headers = [("Content-Type", "text/javascript"),
+                        ("Access-Control-Allow-Credentials", "true")]
+
+    cookie_value = '';
+    if cookie:
+        cookie_value = cookie.value;
+    return (200, response_headers, "postMessage('"+cookie_value+"');")
diff --git a/workers/modules/resources/dynamic-import-and-then-static-import-worker.js b/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
index eaa3f1c..39ab5c2 100644
--- a/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
+++ b/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
@@ -1,2 +1,2 @@
-import('./static-import-worker.js')
-  .then(module => postMessage('LOADED'));
+import('./export-on-static-import-script.js')
+  .then(module => postMessage(module.importedModules));
diff --git a/workers/modules/resources/dynamic-import-given-url-worker.js b/workers/modules/resources/dynamic-import-given-url-worker.js
index 444badd..2ea88b8 100644
--- a/workers/modules/resources/dynamic-import-given-url-worker.js
+++ b/workers/modules/resources/dynamic-import-given-url-worker.js
@@ -1,4 +1,5 @@
-// Dynamically import the script URL sent by postMessage().
-self.addEventListener('message', e => {
-  import(e.data).catch(error_event => postMessage('ERROR'));
+// This worker dynamically imports the script URL sent by postMessage(), and
+// sends back an error name if the dynamic import fails.
+self.addEventListener('message', msg_event => {
+  import(msg_event.data).catch(e => postMessage(e.name));
 });
diff --git a/workers/modules/resources/dynamic-import-worker.js b/workers/modules/resources/dynamic-import-worker.js
index 98381b9..cd321fe 100644
--- a/workers/modules/resources/dynamic-import-worker.js
+++ b/workers/modules/resources/dynamic-import-worker.js
@@ -1,2 +1,2 @@
-import('./post-message-on-load-worker.js')
-  .then(module => postMessage('LOADED'));
+import('./export-on-load-script.js')
+  .then(module => postMessage(module.importedModules));
diff --git a/workers/modules/resources/eval-dynamic-import-worker.js b/workers/modules/resources/eval-dynamic-import-worker.js
new file mode 100644
index 0000000..e92aff2
--- /dev/null
+++ b/workers/modules/resources/eval-dynamic-import-worker.js
@@ -0,0 +1,3 @@
+const code = "import('./export-on-load-script.js')" +
+             "  .then(module => postMessage(module.importedModules));"
+eval(code);
diff --git a/workers/modules/resources/export-on-dynamic-import-script.js b/workers/modules/resources/export-on-dynamic-import-script.js
new file mode 100644
index 0000000..8d172c3
--- /dev/null
+++ b/workers/modules/resources/export-on-dynamic-import-script.js
@@ -0,0 +1,7 @@
+// Export the list of imported modules. It's available after the |ready| promise
+// is resolved.
+export let importedModules = ['export-on-dynamic-import-script.js'];
+export let ready = import('./export-on-load-script.js')
+  .then(module => {
+      Array.prototype.push.apply(importedModules, module.importedModules);
+  });
diff --git a/workers/modules/resources/export-on-load-script.js b/workers/modules/resources/export-on-load-script.js
new file mode 100644
index 0000000..7d1b122
--- /dev/null
+++ b/workers/modules/resources/export-on-load-script.js
@@ -0,0 +1 @@
+export const importedModules = ['export-on-load-script.js'];
diff --git a/workers/modules/resources/export-on-static-import-script.js b/workers/modules/resources/export-on-static-import-script.js
new file mode 100644
index 0000000..3f7174e
--- /dev/null
+++ b/workers/modules/resources/export-on-static-import-script.js
@@ -0,0 +1,3 @@
+import * as module from './export-on-load-script.js';
+const filename = 'export-on-static-import-script.js';
+export const importedModules = [filename].concat(module.importedModules);
diff --git a/workers/modules/resources/import-scripts-worker.js b/workers/modules/resources/import-scripts-worker.js
index c2a2489..676cccb 100644
--- a/workers/modules/resources/import-scripts-worker.js
+++ b/workers/modules/resources/import-scripts-worker.js
@@ -2,5 +2,14 @@
   importScripts('empty-worker.js');
   postMessage('LOADED');
 } catch (e) {
+  // Post a message instead of propagating an ErrorEvent to the page because
+  // propagated event loses an error name.
+  //
+  // Step 1. "Let notHandled be the result of firing an event named error at the
+  // Worker object associated with the worker, using ErrorEvent, with the
+  // cancelable attribute initialized to true, the message, filename, lineno,
+  // and colno attributes initialized appropriately, and the error attribute
+  // initialized to null."
+  // https://html.spec.whatwg.org/multipage/workers.html#runtime-script-errors-2
   postMessage(e.name);
 }
diff --git a/workers/modules/resources/nested-dynamic-import-worker.js b/workers/modules/resources/nested-dynamic-import-worker.js
index 8f56d15..5ae82f8 100644
--- a/workers/modules/resources/nested-dynamic-import-worker.js
+++ b/workers/modules/resources/nested-dynamic-import-worker.js
@@ -1,2 +1,5 @@
-import('./dynamic-import-worker.js')
-  .then(module => postMessage('LOADED'));
+import('./export-on-dynamic-import-script.js')
+  .then(async module => {
+    await module.ready;
+    postMessage(module.importedModules);
+  });
diff --git a/workers/modules/resources/nested-static-import-worker.js b/workers/modules/resources/nested-static-import-worker.js
index f2ef520..72ab31c 100644
--- a/workers/modules/resources/nested-static-import-worker.js
+++ b/workers/modules/resources/nested-static-import-worker.js
@@ -1,2 +1,2 @@
-import './static-import-worker.js';
-postMessage('LOADED')
+import * as module from './export-on-static-import-script.js';
+postMessage(module.importedModules);
diff --git a/workers/modules/resources/static-import-and-then-dynamic-import-worker.js b/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
index 4e66d04..89125e0 100644
--- a/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
+++ b/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
@@ -1,2 +1,2 @@
-import './dynamic-import-worker.js';
-postMessage('LOADED');
+import * as module from './export-on-dynamic-import-script.js';
+module.ready.then(() => postMessage(module.importedModules));
diff --git a/workers/modules/resources/static-import-worker.js b/workers/modules/resources/static-import-worker.js
index 4693169..f063915 100644
--- a/workers/modules/resources/static-import-worker.js
+++ b/workers/modules/resources/static-import-worker.js
@@ -1,2 +1,2 @@
-import './post-message-on-load-worker.js';
-postMessage('LOADED');
+import * as module from './export-on-load-script.js';
+postMessage(module.importedModules);
diff --git a/workers/name-property.html b/workers/name-property.html
index 939601e..ccc2a9d 100644
--- a/workers/name-property.html
+++ b/workers/name-property.html
@@ -10,16 +10,21 @@
 
 <script>
 "use strict";
+setup({explicit_done: true});
 
-const worker = new Worker("support/name.js", { name: "my name" });
-fetch_tests_from_worker(worker);
+(async function() {
+  const worker = new Worker("support/name.js", { name: "my name" });
+  await fetch_tests_from_worker(worker);
 
-const worker2 = new Worker("support/name-as-accidental-global.js");
-fetch_tests_from_worker(worker2);
+  const worker2 = new Worker("support/name-as-accidental-global.js");
+  await fetch_tests_from_worker(worker2);
 
-const sharedWorker = new SharedWorker("support/name.js", { name: "my name" });
-fetch_tests_from_worker(sharedWorker);
+  const sharedWorker = new SharedWorker("support/name.js", { name: "my name" });
+  await fetch_tests_from_worker(sharedWorker);
 
-const sharedWorker2 = new SharedWorker("support/name-as-accidental-global.js");
-fetch_tests_from_worker(sharedWorker2);
+  const sharedWorker2 = new SharedWorker("support/name-as-accidental-global.js");
+  await fetch_tests_from_worker(sharedWorker2);
+
+  done();
+})();
 </script>
diff --git a/workers/nested_worker.worker.js b/workers/nested_worker.worker.js
index 8848fa2..005b3c2 100644
--- a/workers/nested_worker.worker.js
+++ b/workers/nested_worker.worker.js
@@ -6,6 +6,6 @@
     worker1.onmessage = this.step_func_done(function(evt) {
         assert_equals(evt.data, "Pass");
         worker1.terminate();
-        done();
     });
 }, "Nested worker");
+done();
diff --git a/workers/opaque-origin.html b/workers/opaque-origin.html
index 0474b97..83574b4 100644
--- a/workers/opaque-origin.html
+++ b/workers/opaque-origin.html
@@ -11,6 +11,7 @@
   channel.port2.postMessage(e.data);
 };
 fetch_tests_from_worker(channel.port1);
+channel.port1.start();
 </script>
 <iframe sandbox="allow-scripts" src="support/sandboxed-tests.html?pipe=sub"></iframe>
 </body>
diff --git a/x-frame-options/OWNERS b/x-frame-options/OWNERS
new file mode 100644
index 0000000..e9cd727
--- /dev/null
+++ b/x-frame-options/OWNERS
@@ -0,0 +1,2 @@
+@annevk
+@mikewest
diff --git a/xhr/abort-after-stop.htm b/xhr/abort-after-stop.htm
index 24cb5a4..7c5060f 100644
--- a/xhr/abort-after-stop.htm
+++ b/xhr/abort-after-stop.htm
@@ -10,7 +10,7 @@
     <div id="log"></div>
     <script>
       var test = async_test();
-      test.step(function() {
+      window.onload = test.step_func(function() {
         var client = new XMLHttpRequest();
         var abortFired = false;
         client.onabort = test.step_func(function (e) {
diff --git a/xhr/open-url-encoding.htm b/xhr/open-url-encoding.htm
index ddf8018..5155a57 100644
--- a/xhr/open-url-encoding.htm
+++ b/xhr/open-url-encoding.htm
@@ -5,7 +5,6 @@
     <title>XMLHttpRequest: open() - URL encoding</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::ol/li[7] following::ol/li[14]/ul/li[2]" />
   </head>
   <body>
     <div id="log"></div>
@@ -20,7 +19,7 @@
         var client = new XMLHttpRequest()
         client.open("GET", "resources/content.py?\uD83D", false)
         client.send()
-        assert_equals(client.getResponseHeader("x-request-query"), "&%2365533;")
+        assert_equals(client.getResponseHeader("x-request-query"), "%26%2365533%3B");
       }, "lone surrogate");
     </script>
   </body>
diff --git a/xhr/resources/accept-language.py b/xhr/resources/accept-language.py
index e0fd30c..dd00f4b 100644
--- a/xhr/resources/accept-language.py
+++ b/xhr/resources/accept-language.py
@@ -1,4 +1,3 @@
 def main(request, response):
     return [("Content-Type", "text/plain"),
             request.headers.get("Accept-Language", "NO")]
-
diff --git a/xhr/resources/accept.py b/xhr/resources/accept.py
index 2fdf210..a033ebe 100644
--- a/xhr/resources/accept.py
+++ b/xhr/resources/accept.py
@@ -1,3 +1,2 @@
 def main(request, response):
-  return [("Content-Type", "text/plain")], request.headers.get("accept", "NO")
-
+    return [("Content-Type", "text/plain")], request.headers.get("accept", "NO")
diff --git a/xhr/resources/access-control-allow-with-body.py b/xhr/resources/access-control-allow-with-body.py
index 2213435..7c7f45c 100644
--- a/xhr/resources/access-control-allow-with-body.py
+++ b/xhr/resources/access-control-allow-with-body.py
@@ -1,12 +1,12 @@
 def main(request, response):
     headers = {
-            "Cache-Control": "no-store",
-            "Access-Control-Allow-Headers": "X-Requested-With",
-            "Access-Control-Max-Age": 0,
-            "Access-Control-Allow-Origin": "*",
-            "Access-Control-Allow-Methods": "*",
-            "Vary": "Accept-Encoding",
-            "Content-Type": "text/plain"
+        "Cache-Control": "no-store",
+        "Access-Control-Allow-Headers": "X-Requested-With",
+        "Access-Control-Max-Age": 0,
+        "Access-Control-Allow-Origin": "*",
+        "Access-Control-Allow-Methods": "*",
+        "Vary": "Accept-Encoding",
+        "Content-Type": "text/plain"
     }
 
     for (name, value) in headers.items():
diff --git a/xhr/resources/access-control-basic-whitelist-response-headers.py b/xhr/resources/access-control-basic-whitelist-response-headers.py
index e7c15bb..4dac753 100644
--- a/xhr/resources/access-control-basic-whitelist-response-headers.py
+++ b/xhr/resources/access-control-basic-whitelist-response-headers.py
@@ -1,17 +1,17 @@
 def main(request, response):
     headers = {
-            # CORS-safelisted
-            "content-type": "text/plain",
-            "cache-control": "no cache",
-            "content-language": "en",
-            "expires": "Fri, 30 Oct 1998 14:19:41 GMT",
-            "last-modified": "Tue, 15 Nov 1994 12:45:26 GMT",
-            "pragma": "no-cache",
+        # CORS-safelisted
+        "content-type": "text/plain",
+        "cache-control": "no cache",
+        "content-language": "en",
+        "expires": "Fri, 30 Oct 1998 14:19:41 GMT",
+        "last-modified": "Tue, 15 Nov 1994 12:45:26 GMT",
+        "pragma": "no-cache",
 
-            # Non-CORS-safelisted
-            "x-test": "foobar",
+        # Non-CORS-safelisted
+        "x-test": "foobar",
 
-            "Access-Control-Allow-Origin": "*"
+        "Access-Control-Allow-Origin": "*"
     }
     for header in headers:
         response.headers.set(header, headers[header])
diff --git a/xhr/resources/access-control-origin-header.py b/xhr/resources/access-control-origin-header.py
index e7b95e9..f512877 100755
--- a/xhr/resources/access-control-origin-header.py
+++ b/xhr/resources/access-control-origin-header.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 def main(request, response):
-    response.headers.set("Content-Type", "text/plain");
-    response.headers.set("Cache-Control", "no-cache, no-store");
-    response.headers.set("Access-Control-Allow-External", "true");
-    response.headers.set("Access-Control-Allow-Origin", "*");
+    response.headers.set("Content-Type", "text/plain")
+    response.headers.set("Cache-Control", "no-cache, no-store")
+    response.headers.set("Access-Control-Allow-External", "true")
+    response.headers.set("Access-Control-Allow-Origin", "*")
 
     response.content = "PASS: Cross-domain access allowed.\n"
-    response.content += "HTTP_ORIGIN: " + request.headers.get("origin");
+    response.content += "HTTP_ORIGIN: " + request.headers.get("origin")
diff --git a/xhr/resources/access-control-preflight-denied.py b/xhr/resources/access-control-preflight-denied.py
index fd221a6..889ee6b 100644
--- a/xhr/resources/access-control-preflight-denied.py
+++ b/xhr/resources/access-control-preflight-denied.py
@@ -47,4 +47,3 @@
     else:
         resetState(token)
         fail("Unknown Error.")
-
diff --git a/xhr/resources/auth2/corsenabled.py b/xhr/resources/auth2/corsenabled.py
index 77b4acf..b06bd3d 100644
--- a/xhr/resources/auth2/corsenabled.py
+++ b/xhr/resources/auth2/corsenabled.py
@@ -5,11 +5,11 @@
 
 
 def main(request, response):
-    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"));
-    response.headers.set('Access-Control-Allow-Credentials', 'true');
-    response.headers.set('Access-Control-Allow-Methods', 'GET');
-    response.headers.set('Access-Control-Allow-Headers', 'authorization, x-user, x-pass');
-    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user');
+    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"))
+    response.headers.set('Access-Control-Allow-Credentials', 'true')
+    response.headers.set('Access-Control-Allow-Methods', 'GET')
+    response.headers.set('Access-Control-Allow-Headers', 'authorization, x-user, x-pass')
+    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user')
     auth = imp.load_source("", os.path.abspath(os.path.join(here, os.pardir, "authentication.py")))
     if request.method == "OPTIONS":
         return ""
diff --git a/xhr/resources/auth7/corsenabled.py b/xhr/resources/auth7/corsenabled.py
index b183b32..998922d 100644
--- a/xhr/resources/auth7/corsenabled.py
+++ b/xhr/resources/auth7/corsenabled.py
@@ -4,11 +4,11 @@
 here = os.path.dirname(__file__)
 
 def main(request, response):
-    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"));
-    response.headers.set('Access-Control-Allow-Credentials', 'true');
-    response.headers.set('Access-Control-Allow-Methods', 'GET');
-    response.headers.set('Access-Control-Allow-Headers', 'authorization, x-user, x-pass');
-    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user');
+    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"))
+    response.headers.set('Access-Control-Allow-Credentials', 'true')
+    response.headers.set('Access-Control-Allow-Methods', 'GET')
+    response.headers.set('Access-Control-Allow-Headers', 'authorization, x-user, x-pass')
+    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user')
     auth = imp.load_source("", os.path.join(here,
                                             os.pardir,
                                             "authentication.py"))
@@ -16,6 +16,3 @@
         return ""
     else:
         return auth.main(request, response)
-
-
-
diff --git a/xhr/resources/auth8/corsenabled-no-authorize.py b/xhr/resources/auth8/corsenabled-no-authorize.py
index 623a374..947422f 100644
--- a/xhr/resources/auth8/corsenabled-no-authorize.py
+++ b/xhr/resources/auth8/corsenabled-no-authorize.py
@@ -5,11 +5,11 @@
 
 
 def main(request, response):
-    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"));
-    response.headers.set('Access-Control-Allow-Credentials', 'true');
-    response.headers.set('Access-Control-Allow-Methods', 'GET');
-    response.headers.set('Access-Control-Allow-Headers', 'x-user, x-pass');
-    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user');
+    response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"))
+    response.headers.set('Access-Control-Allow-Credentials', 'true')
+    response.headers.set('Access-Control-Allow-Methods', 'GET')
+    response.headers.set('Access-Control-Allow-Headers', 'x-user, x-pass')
+    response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user')
     auth = imp.load_source("", os.path.join(here,
                                             os.pardir,
                                             "authentication.py"))
@@ -17,6 +17,3 @@
         return ""
     else:
         return auth.main(request, response)
-
-
-
diff --git a/xhr/resources/authentication.py b/xhr/resources/authentication.py
index 369a49a..f5bef5b 100644
--- a/xhr/resources/authentication.py
+++ b/xhr/resources/authentication.py
@@ -23,5 +23,4 @@
         headers = [('XHR-USER', expected_user_name),
                    ('SES-USER', session_user),
                    ("X-challenge", challenge)]
-        return headers, session_user + "\n" + session_pass;
-
+        return headers, session_user + "\n" + session_pass
diff --git a/xhr/resources/chunked.py b/xhr/resources/chunked.py
index 7e8433b..1e87c1c 100644
--- a/xhr/resources/chunked.py
+++ b/xhr/resources/chunked.py
@@ -4,9 +4,9 @@
               "Yet another (third) chunk\r\n",
               "Yet another (fourth) chunk\r\n",
               ]
-    response.headers.set("Transfer-Encoding", "chunked");
-    response.headers.set("Trailer", "X-Test-Me");
-    response.headers.set("Content-Type", "text/plain");
+    response.headers.set("Transfer-Encoding", "chunked")
+    response.headers.set("Trailer", "X-Test-Me")
+    response.headers.set("Content-Type", "text/plain")
     response.write_status_headers()
 
     for value in chunks:
@@ -15,4 +15,3 @@
         response.writer.write("\r\n")
     response.writer.write("0\r\n")
     response.writer.write("X-Test-Me: Trailer header value\r\n\r\n")
-
diff --git a/xhr/resources/conditional.py b/xhr/resources/conditional.py
index 90bedf9..5a11a31 100644
--- a/xhr/resources/conditional.py
+++ b/xhr/resources/conditional.py
@@ -19,7 +19,7 @@
         response.headers.set("Access-Control-Allow-Origin", "*")
 
     if ((match is not None and match == tag) or
-        (modified is not None and modified == date)):
+            (modified is not None and modified == date)):
         response.status = (304, "SUPERCOOL")
         return ""
     else:
diff --git a/xhr/resources/content.py b/xhr/resources/content.py
index d7c62ab..3786f3a 100644
--- a/xhr/resources/content.py
+++ b/xhr/resources/content.py
@@ -2,7 +2,7 @@
     response_ctype = ''
 
     if "response_charset_label" in request.GET:
-      response_ctype = ";charset=" + request.GET.first("response_charset_label")
+        response_ctype = ";charset=" + request.GET.first("response_charset_label")
 
     headers = [("Content-type", "text/plain" + response_ctype),
                ("X-Request-Method", request.method),
diff --git a/xhr/resources/delay.py b/xhr/resources/delay.py
index 0fa1276..8f97db6 100644
--- a/xhr/resources/delay.py
+++ b/xhr/resources/delay.py
@@ -2,6 +2,6 @@
 
 def main(request, response):
     delay = float(request.GET.first("ms", 500))
-    time.sleep(delay / 1E3);
+    time.sleep(delay / 1E3)
 
     return [("Access-Control-Allow-Origin", "*"), ("Access-Control-Allow-Methods", "YO"), ("Content-type", "text/plain")], "TEST_DELAY"
diff --git a/xhr/resources/gzip.py b/xhr/resources/gzip.py
index 87dd5be..f17f92e 100644
--- a/xhr/resources/gzip.py
+++ b/xhr/resources/gzip.py
@@ -9,7 +9,7 @@
 
     out = StringIO()
     with gzip_module.GzipFile(fileobj=out, mode="w") as f:
-      f.write(output)
+        f.write(output)
     output = out.getvalue()
 
     headers = [("Content-type", "text/plain"),
diff --git a/xhr/resources/headers.py b/xhr/resources/headers.py
index cefa8ee..602db35 100644
--- a/xhr/resources/headers.py
+++ b/xhr/resources/headers.py
@@ -1,4 +1,4 @@
- # -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
 
 def main(request, response):
     response.headers.set("Content-Type", "text/plain")
diff --git a/xhr/resources/infinite-redirects.py b/xhr/resources/infinite-redirects.py
index 1ec0ae2..a85c410 100644
--- a/xhr/resources/infinite-redirects.py
+++ b/xhr/resources/infinite-redirects.py
@@ -2,9 +2,9 @@
     location = "%s://%s%s" % (request.url_parts.scheme,
                               request.url_parts.netloc,
                               request.url_parts.path)
-    page = "alternate";
-    type = 302;
-    mix = 0;
+    page = "alternate"
+    type = 302
+    mix = 0
     if request.GET.first("page", None) == "alternate":
         page = "default"
 
diff --git a/xhr/resources/inspect-headers.py b/xhr/resources/inspect-headers.py
index a8f1258..12dd335 100644
--- a/xhr/resources/inspect-headers.py
+++ b/xhr/resources/inspect-headers.py
@@ -15,7 +15,7 @@
             if value == filter_value:
                 result += name + ","
         elif name.lower() == filter_name:
-            result += name + ": " + value + "\n";
+            result += name + ": " + value + "\n"
     return result
 
 def main(request, response):
diff --git a/xhr/resources/redirect.py b/xhr/resources/redirect.py
index 3e0cd52..2af9f2e 100644
--- a/xhr/resources/redirect.py
+++ b/xhr/resources/redirect.py
@@ -2,11 +2,11 @@
 
 def main(request, response):
     code = int(request.GET.first("code", 302))
-    location = request.GET.first("location", request.url_parts.path +"?followed")
+    location = request.GET.first("location", request.url_parts.path + "?followed")
 
     if "delay" in request.GET:
         delay = float(request.GET.first("delay"))
-        time.sleep(delay / 1E3);
+        time.sleep(delay / 1E3)
 
     if "followed" in request.GET:
         return [("Content:Type", "text/plain")], "MAGIC HAPPENED"
diff --git a/xhr/resources/requri.py b/xhr/resources/requri.py
index eaa562d..a3f7bfd 100644
--- a/xhr/resources/requri.py
+++ b/xhr/resources/requri.py
@@ -3,4 +3,3 @@
         return request.url
     else:
         return request.request_path
-
diff --git a/xhr/resources/shift-jis-html.py b/xhr/resources/shift-jis-html.py
index 92d06ca..fab78c0 100644
--- a/xhr/resources/shift-jis-html.py
+++ b/xhr/resources/shift-jis-html.py
@@ -1,6 +1,6 @@
 def main(request, response):
     headers = [("Content-type", "text/html;charset=shift-jis")]
     # Shift-JIS bytes for katakana TE SU TO ('test')
-    content =  chr(0x83) + chr(0x65) + chr(0x83) + chr(0x58) + chr(0x83) + chr(0x67);
+    content = chr(0x83) + chr(0x65) + chr(0x83) + chr(0x58) + chr(0x83) + chr(0x67)
 
     return headers, content
diff --git a/xhr/resources/trickle.py b/xhr/resources/trickle.py
index 5a46c5e..418e245 100644
--- a/xhr/resources/trickle.py
+++ b/xhr/resources/trickle.py
@@ -9,7 +9,7 @@
     time.sleep(delay)
     response.headers.set("Content-type", "text/plain")
     response.write_status_headers()
-    time.sleep(delay);
+    time.sleep(delay)
     for i in xrange(count):
         response.writer.write_content(chunk)
         time.sleep(delay)
diff --git a/xhr/resources/upload.py b/xhr/resources/upload.py
index 27cee59..304bea9 100644
--- a/xhr/resources/upload.py
+++ b/xhr/resources/upload.py
@@ -2,7 +2,7 @@
     content = []
 
     for key, values in sorted(item for item in request.POST.items() if not hasattr(item[1][0], "filename")):
-         content.append("%s=%s," % (key, values[0]))
+        content.append("%s=%s," % (key, values[0]))
     content.append("\n")
 
     for key, values in sorted(item for item in request.POST.items() if hasattr(item[1][0], "filename")):
diff --git a/xhr/sync-no-timeout.any.js b/xhr/sync-no-timeout.any.js
new file mode 100644
index 0000000..d23fbb8
--- /dev/null
+++ b/xhr/sync-no-timeout.any.js
@@ -0,0 +1,16 @@
+// META: global=sharedworker
+// META: timeout=long
+
+// This is a regression test for https://crbug.com/844268, when a timeout of 10
+// seconds was applied to XHR in Chrome. There should be no timeout unless the
+// "timeout" parameter is set on the object.
+test(t => {
+  let xhr = new XMLHttpRequest();
+
+  // For practical reasons, we can't wait forever. 12 seconds is long enough to
+  // reliably reproduce the bug in Chrome.
+  xhr.open('GET', 'resources/trickle.py?ms=1000&count=12', false);
+
+  // The test will fail if this throws.
+  xhr.send();
+}, 'Sync XHR should not have a timeout');