summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/conformance-checkers/html/elements/base
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/conformance-checkers/html/elements/base')
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html4
157 files changed, 637 insertions, 0 deletions
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html
new file mode 100644
index 0000000000..32085fc8d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<base>
+<title>base element missing href and target attribute</title>
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html
new file mode 100644
index 0000000000..c3b766dfd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty href is valid</title>
+<base href="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..6528b43cec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-backslash</title>
+<base href="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..b5079588ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-contains-hash</title>
+<base href="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..2ac59a318b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-contains-pile-of-poo</title>
+<base href="http://example.com/foo#💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html
new file mode 100644
index 0000000000..7c04791257
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-contains-question-mark</title>
+<base href="http://foo/abcd#foo?bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html
new file mode 100644
index 0000000000..3d09700665
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-empty-hash-only-no-path-relative</title>
+<base href="#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..84150eadc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-leading-space</title>
+<base href="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html
new file mode 100644
index 0000000000..15858fde1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-non-ascii-relative</title>
+<base href="#β">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html
new file mode 100644
index 0000000000..68a838c8d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-semicolon-question-mark-relative</title>
+<base href="#;?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html
new file mode 100644
index 0000000000..7edb0b4ed4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-slash-relative</title>
+<base href="#/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html
new file mode 100644
index 0000000000..75de62fdc8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-192.0x00A80001</title>
+<base href="http://192.0x00A80001">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html
new file mode 100644
index 0000000000..dc2e02080b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-broken</title>
+<base href="http://192.168.0.257/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html
new file mode 100644
index 0000000000..64535576d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-fullwidth</title>
+<base href="http://0Xc0.0250.01">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html
new file mode 100644
index 0000000000..8a092380d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-percent-encoded</title>
+<base href="http://%30%78%63%30%2e%30%32%35%30.01">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html
new file mode 100644
index 0000000000..cb631459e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-cr</title>
+<base href="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fc44eee8a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-double-percent-encoded</title>
+<base href="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..eaee5db8a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-double-percent-encoded-percent-encoded</title>
+<base href="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html
new file mode 100644
index 0000000000..08ce416ef2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty</title>
+<base href="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..d41591fabe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty-userinfo-empty</title>
+<base href="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..47941b7235
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty-with-userinfo</title>
+<base href="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html
new file mode 100644
index 0000000000..d0d1f0a1d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-exotic-dot</title>
+<base href="http://www.foo。bar.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html
new file mode 100644
index 0000000000..adcc57480e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-exotic-whitespace</title>
+<base href="http://GOO​⁠goo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html
new file mode 100644
index 0000000000..65108edd47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-fullwidth</title>
+<base href="http://Go.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..c25a1a3ffa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-hostname-in-brackets</title>
+<base href="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html
new file mode 100644
index 0000000000..576badf53f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-idn-unicode-han</title>
+<base href="http://你好你好">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..4b20692017
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode</title>
+<base href="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..4533dbc887
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode-percent-encoded</title>
+<base href="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html
new file mode 100644
index 0000000000..112eacd95a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-ipv6</title>
+<base href="http://[2001::1]">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html
new file mode 100644
index 0000000000..3495478c74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-ipv6-port</title>
+<base href="http://[2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..f286407a0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-is-pile-of-poo</title>
+<base href="http://💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html
new file mode 100644
index 0000000000..44e53c36fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-newline</title>
+<base href="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html
new file mode 100644
index 0000000000..4b02459e3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-space</title>
+<base href="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..1839ee2688
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-square-brackets-port-contains-colon</title>
+<base href="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html
new file mode 100644
index 0000000000..335d7c842d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-tab</title>
+<base href="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..94a2327129
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-u0000-percent-encoded</title>
+<base href="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..bc934e6702
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-u0000-percent-encoded-percent-encoded</title>
+<base href="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..819a99d538
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-bare-percent-sign</title>
+<base href="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..643b01f07d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-colon-colon-number-relative</title>
+<base href="::23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html
new file mode 100644
index 0000000000..f1254de8d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-colon-relative</title>
+<base href=":">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..f491b503f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-contains-pile-of-poo</title>
+<base href="http💩//:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html
new file mode 100644
index 0000000000..87c76dd305
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-contains-space</title>
+<base href="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..785ecad748
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-backslash-at-sign</title>
+<base href="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..1e61b71c38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-colon-backslash</title>
+<base href=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..5ae57974b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-colon-chars-backslash</title>
+<base href=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html
new file mode 100644
index 0000000000..11b94a6e1c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-chars-relative</title>
+<base href=":foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html
new file mode 100644
index 0000000000..0589f8ae2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-colon-relative</title>
+<base href="::">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html
new file mode 100644
index 0000000000..7114dd5f5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-hash-relative</title>
+<base href=":#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html
new file mode 100644
index 0000000000..279c2ce4c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-letter-relative</title>
+<base href=":a">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..c66670292f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-number-relative</title>
+<base href=":23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html
new file mode 100644
index 0000000000..77ec3dd2d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-slash-relative</title>
+<base href=":/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html
new file mode 100644
index 0000000000..3a6cc2f33a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-space</title>
+<base href="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html
new file mode 100644
index 0000000000..e9d396b02e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-non-ascii</title>
+<base href="http://example.com/©zbar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html
new file mode 100644
index 0000000000..5921992d46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-dot</title>
+<base href="http://example.com/foo/%2e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..c9cfe23289
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-percent-encoded-malformed</title>
+<base href="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html
new file mode 100644
index 0000000000..677a564bac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-mixed-case</title>
+<base href="http://example.com/%3A%3a%3C%3c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html
new file mode 100644
index 0000000000..75a512babc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-multiple</title>
+<base href="http://example.com/foo%41%7a">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html
new file mode 100644
index 0000000000..f5ed17b902
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-slash-plus-slashes-relative</title>
+<base href="/a/%2f/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html
new file mode 100644
index 0000000000..79e89e3abe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-slash-relative</title>
+<base href="/a%2fc">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html
new file mode 100644
index 0000000000..cc9b8b850e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-space</title>
+<base href="http://example.com/%20foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html
new file mode 100644
index 0000000000..515a7528ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-u0000</title>
+<base href="http://example.com/foo%00">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html
new file mode 100644
index 0000000000..16cec3605e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-u0091</title>
+<base href="http://example.com/foo%91">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..79af6ae6f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-relative-square-brackets</title>
+<base href="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html
new file mode 100644
index 0000000000..7e4c99fab1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-simple-relative</title>
+<base href="/a/b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..3834395ce8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-colon-number-relative</title>
+<base href="/:23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html
new file mode 100644
index 0000000000..83a89c09ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-only-relative</title>
+<base href="/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..e0e6855b3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-pile-of-poo</title>
+<base href="/💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..204b8b096a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-starts-with-pile-of-poo</title>
+<base href="💩http://foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html
new file mode 100644
index 0000000000..21f8b6e5d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-tab</title>
+<base href="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..3a24cb6e41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-trailing-space</title>
+<base href="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html
new file mode 100644
index 0000000000..78383c870f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-u0091</title>
+<base href="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html
new file mode 100644
index 0000000000..5d865b6409
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-u202E-u202D</title>
+<base href="http://example.com/‮/foo/‭/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html
new file mode 100644
index 0000000000..03c3a969ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-uFEFF</title>
+<base href="http://example.com//foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html
new file mode 100644
index 0000000000..e6c290bc26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-unicode-han</title>
+<base href="http://example.com/你好你好">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html
new file mode 100644
index 0000000000..6dd7298b55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-0</title>
+<base href="http://f:0/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html
new file mode 100644
index 0000000000..314c8ad777
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-00000000000000</title>
+<base href="http://f:00000000000000/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html
new file mode 100644
index 0000000000..34dd3d5624
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-00000000000000000000080</title>
+<base href="http://f:00000000000000000000080/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html
new file mode 100644
index 0000000000..95393fab21
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-999999</title>
+<base href="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html
new file mode 100644
index 0000000000..e5fe6bf688
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-cr</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..3bc673fe64
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon-bracket-colon</title>
+<base href="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..c526a758ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon</title>
+<base href="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..2270e65c9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-dash</title>
+<base href="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..9d5ef78404
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-multiple-letters</title>
+<base href="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html
new file mode 100644
index 0000000000..bef3487e4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-newline</title>
+<base href="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html
new file mode 100644
index 0000000000..4307c492cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-none-but-colon</title>
+<base href="http://f:/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html
new file mode 100644
index 0000000000..8daa066d60
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-single-letter</title>
+<base href="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html
new file mode 100644
index 0000000000..77a3d57620
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-space</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html
new file mode 100644
index 0000000000..e14664a74b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-tab</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..7ea7f41087
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-contains-pile-of-poo</title>
+<base href="http://example.com/foo?💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html
new file mode 100644
index 0000000000..f78635c4e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-contains-question-mark</title>
+<base href="http://foo/abcd?efgh?ijkl">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html
new file mode 100644
index 0000000000..82b66f0644
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-empty-no-path-relative</title>
+<base href="?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html
new file mode 100644
index 0000000000..d26d8e1965
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-leading-space</title>
+<base href="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..d099a9f0e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-trailing-space</title>
+<base href="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..a1e740045a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>href warning: scheme-data-contains-fragment</title>
+<base href="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html
new file mode 100644
index 0000000000..e13d2677b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-data-no-slash</title>
+<base href="data:text/plain,foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..1f938779ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-data-single-slash</title>
+<base href="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..fda3e3d039
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-backslash</title>
+<base href="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html
new file mode 100644
index 0000000000..a90aa6c716
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-host-empty</title>
+<base href="file:///foo/bar.txt">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html
new file mode 100644
index 0000000000..322773e2e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-host-included</title>
+<base href="file://server/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html
new file mode 100644
index 0000000000..3a31f957e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-no-slash</title>
+<base href="file:test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html
new file mode 100644
index 0000000000..af318cdd9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-scheme-only</title>
+<base href="file:">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..87d17ed6c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-single-slash-c-bar</title>
+<base href="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html
new file mode 100644
index 0000000000..f67878f46c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-single-slash</title>
+<base href="file:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html
new file mode 100644
index 0000000000..a8c329f33d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-only</title>
+<base href="file:/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..5ca23afb76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-slash-slash-abc-bar</title>
+<base href="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html
new file mode 100644
index 0000000000..4d96a67da6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-c-bar</title>
+<base href="file://C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html
new file mode 100644
index 0000000000..dcef904aa5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-only</title>
+<base href="file://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html
new file mode 100644
index 0000000000..ffe97bb721
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-slash-only</title>
+<base href="file:///">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..06b8933be9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-triple-slash-c-bar</title>
+<base href="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html
new file mode 100644
index 0000000000..58bb4a4799
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-uppercase</title>
+<base href="File://foo/bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..49285d8082
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-ftp-no-slash</title>
+<base href="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..7ff694c98b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-ftp-single-slash</title>
+<base href="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html
new file mode 100644
index 0000000000..bc0ac07fe8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ftps-no-slash</title>
+<base href="ftps:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html
new file mode 100644
index 0000000000..758a74e172
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ftps-single-slash</title>
+<base href="ftps:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html
new file mode 100644
index 0000000000..ec35f0abb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-gopher-no-slash</title>
+<base href="gopher:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html
new file mode 100644
index 0000000000..aa97811b3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-gopher-single-slash</title>
+<base href="gopher:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..5923cf1df1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-backslash</title>
+<base href="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..8146e78bb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash-colon</title>
+<base href="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..6084b413f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash</title>
+<base href="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..21f612d8a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash-square-bracket</title>
+<base href="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..4684b7b2bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-single-slash</title>
+<base href="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..76c139dfda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-https-no-slash</title>
+<base href="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..49d14bcec7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-https-single-slash</title>
+<base href="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html
new file mode 100644
index 0000000000..cb6b793bcf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-javascript-single-slash</title>
+<base href="javascript:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html
new file mode 100644
index 0000000000..5c96deb162
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-mailto-no-slash</title>
+<base href="mailto:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html
new file mode 100644
index 0000000000..ca07ab15f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-mailto-single-slash</title>
+<base href="mailto:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html
new file mode 100644
index 0000000000..672de82fb2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-none-relative</title>
+<base href="foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html
new file mode 100644
index 0000000000..d565575b57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private</title>
+<base href="a:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html
new file mode 100644
index 0000000000..207a8d6cbe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-no-slash</title>
+<base href="madeupscheme:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html
new file mode 100644
index 0000000000..8e0552b703
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path</title>
+<base href="foo:/bar.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html
new file mode 100644
index 0000000000..6fa812d783
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-chars</title>
+<base href="foo://///////bar.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html
new file mode 100644
index 0000000000..3e5a44a005
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-colon-slashes</title>
+<base href="foo:////://///">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html
new file mode 100644
index 0000000000..8d6c0c9f8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-only</title>
+<base href="foo://///////">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html
new file mode 100644
index 0000000000..bc82b8b7fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-single-letter</title>
+<base href="c:/foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html
new file mode 100644
index 0000000000..c3639a432c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-single-slash</title>
+<base href="madeupscheme:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html
new file mode 100644
index 0000000000..d56b355cf9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-slash</title>
+<base href="foo:/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html
new file mode 100644
index 0000000000..39a6b25cf7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-slash-slash</title>
+<base href="foo://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html
new file mode 100644
index 0000000000..d86d3f68ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-schemeless-relative</title>
+<base href="//foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..e6097e4f79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-cr</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..acc6c91ffa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-newline</title>
+<base href="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..c03abd547c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-space</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..0e1f91bce6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-tab</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html
new file mode 100644
index 0000000000..63e24e9b6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ws-single-slash</title>
+<base href="ws:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html
new file mode 100644
index 0000000000..2c4e88c3aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-wss-no-slash</title>
+<base href="wss:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html
new file mode 100644
index 0000000000..a2b2b6fd59
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-wss-single-slash</title>
+<base href="wss:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..99a6d72075
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-backslash</title>
+<base href="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html
new file mode 100644
index 0000000000..8f641cf94b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-empty</title>
+<base href="http://@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html
new file mode 100644
index 0000000000..e28a20b518
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-host-port-path</title>
+<base href="http://a:b@c:29/d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html
new file mode 100644
index 0000000000..6f1d9eaea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo</title>
+<base href="http://user:pass@foo:21/bar;par?b#c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..31a68b170a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-password-bad-chars</title>
+<base href="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0fa8f05058
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-password-contains-pile-of-poo</title>
+<base href="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html
new file mode 100644
index 0000000000..cedf7ae3b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-password-empty</title>
+<base href="http://a:@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html
new file mode 100644
index 0000000000..b6f323d2d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-user-empty</title>
+<base href="http://:b@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..c3a16ce863
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-username-contains-at-sign</title>
+<base href="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html
new file mode 100644
index 0000000000..2c2dfebd2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-username-contains-percent-encoded</title>
+<base href="http://%25DOMAIN:foobar@foodomain.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0ff54c4c9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-username-contains-pile-of-poo</title>
+<base href="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html
new file mode 100644
index 0000000000..f750703373
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-username-non-alpha</title>
+<base href="http://foo.com:b@d/">