summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/conformance-checkers/html/elements/a
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/conformance-checkers/html/elements/a
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/download-isvalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/download-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href-isvalid.html92
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/media-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/model-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/model-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/a/name-empty-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/address/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/address/model-novalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/download-isvalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/media-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/model-isvalid.html30
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/area/model-novalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/model-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/model-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html4
217 files changed, 1285 insertions, 0 deletions
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/download-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/download-isvalid.html
new file mode 100644
index 0000000000..ed85411ccf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/download-isvalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<html lang="">
+<meta charset=utf-8>
+<title>valid download</title>
+<a href=foo download>foo</a><!-- empty download -->
+<a href=foo download=baz>foo</a><!-- arbitrary value for download -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/download-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/download-novalid.html
new file mode 100644
index 0000000000..f9b9d13bd0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/download-novalid.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<html lang="">
+<meta charset=utf-8>
+<title>invalid download</title>
+<a download>foo</a><!-- download without href -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href-isvalid.html
new file mode 100644
index 0000000000..a4be835e67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href-isvalid.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href</title>
+<a href="a:foo.com"></a><!-- scheme-private -->
+<a href="foo:/"></a><!-- scheme-private-slash -->
+<a href="foo://"></a><!-- scheme-private-slash-slash -->
+<a href="foo:/bar.com/"></a><!-- scheme-private-path -->
+<a href="foo://///////"></a><!-- scheme-private-path-leading-slashes-only -->
+<a href="foo://///////bar.com/"></a><!-- scheme-private-path-leading-slashes-chars -->
+<a href="foo:////://///"></a><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<a href="c:/foo"></a><!-- scheme-private-single-letter -->
+<a href="madeupscheme:/example.com/"></a><!-- scheme-private-single-slash -->
+<a href="file:/example.com/"></a><!-- scheme-file-single-slash -->
+<a href="ftps:/example.com/"></a><!-- scheme-ftps-single-slash -->
+<a href="gopher:/example.com/"></a><!-- scheme-gopher-single-slash -->
+<a href="ws:/example.com/"></a><!-- scheme-ws-single-slash -->
+<a href="wss:/example.com/"></a><!-- scheme-wss-single-slash -->
+<a href="javascript:/example.com/"></a><!-- scheme-javascript-single-slash -->
+<a href="mailto:/example.com/"></a><!-- scheme-mailto-single-slash -->
+<a href="madeupscheme:example.com/"></a><!-- scheme-private-no-slash -->
+<a href="ftps:example.com/"></a><!-- scheme-ftps-no-slash -->
+<a href="gopher:example.com/"></a><!-- scheme-gopher-no-slash -->
+<a href="wss:example.com/"></a><!-- scheme-wss-no-slash -->
+<a href="mailto:example.com/"></a><!-- scheme-mailto-no-slash -->
+<a href="data:text/plain,foo"></a><!-- scheme-data-no-slash -->
+<a href="http://user:pass@foo:21/bar;par?b#c"></a><!-- userinfo -->
+<a href="http://[2001::1]"></a><!-- host-ipv6 -->
+<a href="http://[2001::1]:80"></a><!-- host-ipv6-port -->
+<a href="http://f:/c"></a><!-- port-none-but-colon -->
+<a href="http://f:0/c"></a><!-- port-0 -->
+<a href="http://f:00000000000000/c"></a><!-- port-00000000000000 -->
+<a href="http://f:00000000000000000000080/c"></a><!-- port-00000000000000000000080 -->
+<a href="http://a:b@c:29/d"></a><!-- userinfo-host-port-path -->
+<a href="http://foo.com:b@d/"></a><!-- userinfo-username-non-alpha -->
+<a href="http://foo/abcd?efgh?ijkl"></a><!-- query-contains-question-mark -->
+<a href="http://foo/abcd#foo?bar"></a><!-- fragment-contains-question-mark -->
+<a href="http://example.com/foo/%2e"></a><!-- path-percent-encoded-dot -->
+<a href="http://example.com/%20foo"></a><!-- path-percent-encoded-space -->
+<a href="http://example.com/©zbar"></a><!-- path-non-ascii -->
+<a href="http://example.com/foo%41%7a"></a><!-- path-percent-encoded-multiple -->
+<a href="http://example.com/foo%91"></a><!-- path-percent-encoded-u0091 -->
+<a href="http://example.com/foo%00"></a><!-- path-percent-encoded-u0000 -->
+<a href="http://example.com/%3A%3a%3C%3c"></a><!-- path-percent-encoded-mixed-case -->
+<a href="http://example.com/你好你好"></a><!-- path-unicode-han -->
+<a href="http://example.com//foo"></a><!-- path-uFEFF -->
+<a href="http://example.com/‮/foo/‭/bar"></a><!-- path-u202E-u202D -->
+<a href="http://💩"></a><!-- host-is-pile-of-poo -->
+<a href="http💩//:foo"></a><!-- path-contains-pile-of-poo -->
+<a href="http://example.com/foo?💩"></a><!-- query-contains-pile-of-poo -->
+<a href="http://example.com/foo#💩"></a><!-- fragment-contains-pile-of-poo -->
+<a href="http://192.0x00A80001"></a><!-- host-192.0x00A80001 -->
+<a href="http://%25DOMAIN:foobar@foodomain.com"></a><!-- userinfo-username-contains-percent-encoded -->
+<a href="http://@www.example.com"></a><!-- userinfo-empty -->
+<a href="http://:b@www.example.com"></a><!-- userinfo-user-empty -->
+<a href="http://a:@www.example.com"></a><!-- userinfo-password-empty -->
+<a href="http://GOO​⁠goo.com"></a><!-- host-exotic-whitespace -->
+<a href="http://www.foo。bar.com"></a><!-- host-exotic-dot -->
+<a href="http://Go.com"></a><!-- host-fullwidth -->
+<a href="http://你好你好"></a><!-- host-idn-unicode-han -->
+<a href="http://192.168.0.257/"></a><!-- host-IP-address-broken -->
+<a href="//foo/bar"></a><!-- scheme-schemeless-relative -->
+<a href="/"></a><!-- path-slash-only-relative -->
+<a href="/a/b/c"></a><!-- path-simple-relative -->
+<a href="/a%2fc"></a><!-- path-percent-encoded-slash-relative -->
+<a href="/a/%2f/c"></a><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<a href="?"></a><!-- query-empty-no-path-relative -->
+<a href="#"></a><!-- fragment-empty-hash-only-no-path-relative -->
+<a href="#/"></a><!-- fragment-slash-relative -->
+<a href="#;?"></a><!-- fragment-semicolon-question-mark-relative -->
+<a href="#β"></a><!-- fragment-non-ascii-relative -->
+<a href="foo.com"></a><!-- scheme-none-relative -->
+<a href=":"></a><!-- path-colon-relative -->
+<a href=":a"></a><!-- path-leading-colon-letter-relative -->
+<a href=":foo.com"></a><!-- path-leading-colon-chars-relative -->
+<a href=":/"></a><!-- path-leading-colon-slash-relative -->
+<a href=":#"></a><!-- path-leading-colon-hash-relative -->
+<a href=":23"></a><!-- path-leading-colon-number-relative -->
+<a href="/:23"></a><!-- path-slash-colon-number-relative -->
+<a href="::"></a><!-- path-leading-colon-colon-relative -->
+<a href="::23"></a><!-- path-colon-colon-number-relative -->
+<a href="💩http://foo"></a><!-- path-starts-with-pile-of-poo -->
+<a href="/💩"></a><!-- path-slash-pile-of-poo -->
+<a href="File://foo/bar.html"></a><!-- scheme-file-uppercase -->
+<a href="file://C|/foo/bar"></a><!-- scheme-file-slash-slash-c-bar -->
+<a href="file://server/foo/bar"></a><!-- scheme-file-host-included -->
+<a href="file:///foo/bar.txt"></a><!-- scheme-file-host-empty -->
+<a href="file:"></a><!-- scheme-file-scheme-only -->
+<a href="file:/"></a><!-- scheme-file-slash-only -->
+<a href="file://"></a><!-- scheme-file-slash-slash-only -->
+<a href="file:///"></a><!-- scheme-file-slash-slash-slash-only -->
+<a href="file:test"></a><!-- scheme-file-no-slash -->
+<a href=""></a><!-- empty-href -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..0bcbffd205
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-backslash</title>
+<a href="#\"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..5810a3d8e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-contains-hash</title>
+<a href="http://foo/path#f#g"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..f1c73cbb7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-leading-space</title>
+<a href="http://f:21/b# e"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-cr-novalid.html
new file mode 100644
index 0000000000..8d7d4d8e49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-cr</title>
+<a href="http://example. org"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..20914774bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://%41.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..28ede588d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-novalid.html
new file mode 100644
index 0000000000..cdd21ebff8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty</title>
+<a href="http://"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..c4bcebfc9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://@/www.example.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..33305eda81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://user:pass@/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..8e99033b28
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://[www.google.com]/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..2efec48305
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode</title>
+<a href="http://﷐zyx.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..faf12df190
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://%ef%b7%90zyx.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-newline-novalid.html
new file mode 100644
index 0000000000..20a24039bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-newline</title>
+<a href="http://example.
+org"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-space-novalid.html
new file mode 100644
index 0000000000..28fbf6839c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-space</title>
+<a href="http://example .org"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..2032854dc3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://[1::2]:3:4"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-tab-novalid.html
new file mode 100644
index 0000000000..0b08104983
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-tab</title>
+<a href="http://example .org"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fefaeb29c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://%00.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..91bca31a02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..d473c10fce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://example.com/foo%"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-contains-space-novalid.html
new file mode 100644
index 0000000000..2084b1f258
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-contains-space</title>
+<a href="/a/ /c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..5e3bad4e2a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://foo.com/\@"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..c6a6de865c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href=":\"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..333461a2ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href=":foo.com\"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-space-novalid.html
new file mode 100644
index 0000000000..a247910e49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-space</title>
+<a href="http://f:21/ b"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..3547c071f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://example.com/foo/%2e%2"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..3ca2e6da1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="[61:24:74]:98"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-tab-novalid.html
new file mode 100644
index 0000000000..6ed16e83c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-tab</title>
+<a href="http://example.com/foo bar"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..98b950ea55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-trailing-space</title>
+<a href="http://f:21/b ?"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-u0091-novalid.html
new file mode 100644
index 0000000000..9a5f8af70e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-u0091</title>
+<a href="http://example.com/foo‘"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-999999-novalid.html
new file mode 100644
index 0000000000..8fcc801efb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-999999</title>
+<a href="http://f:999999/c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-cr-novalid.html
new file mode 100644
index 0000000000..beef30828a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-cr</title>
+<a href="http://f: /c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..9d5839c7a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://2001::1]:80"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..b5c692d8a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon</title>
+<a href="http://2001::1"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..1a47b2e8b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-dash</title>
+<a href="http://foo:-80/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..47d9fd856f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-multiple-letters</title>
+<a href="http://f:fifty-two/c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-newline-novalid.html
new file mode 100644
index 0000000000..5b1d95d5c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-newline</title>
+<a href="http://f:
+/c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-single-letter-novalid.html
new file mode 100644
index 0000000000..9c289ff93e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-single-letter</title>
+<a href="http://f:b/c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-space-novalid.html
new file mode 100644
index 0000000000..219c7345ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-space</title>
+<a href="http://f: /c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-tab-novalid.html
new file mode 100644
index 0000000000..266dc9f222
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-tab</title>
+<a href="http://f: /c"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-leading-space-novalid.html
new file mode 100644
index 0000000000..d786b5896a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-leading-space</title>
+<a href="http://f:21/b? d"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..7754c45a26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-trailing-space</title>
+<a href="http://f:21/b?d #"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..069e6ab389
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>data:text/html,test#test warning: scheme-data-contains-fragment</title>
+<a href="data:text/html,test#test"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..8474eed4b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="data:/example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..76564e13b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-backslash</title>
+<a href="file:c:\foo\bar.html"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..fecd0b7533
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="file:/C|/foo/bar"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..5f844682d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="file://abc|/foo/bar"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..bf05a0bfa1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="file:///C|/foo/bar"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..52a9131f0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="ftp:example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..a885cdf332
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="ftp:/example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..90bf03e8f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-backslash</title>
+<a href="http:\\foo.com\"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..4c9df61456
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http::@c:29"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..6797c6be38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http:foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..3f3acb11d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http:[61:27]/:foo"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..e88638d137
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http:/example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..40325a5c30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="https:example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..391c317a11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="https:/example.com/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..784922f510
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-cr</title>
+<a href="a: foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..12bbe55a70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-newline</title>
+<a href="a:
+foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..975a72eb89
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-space</title>
+<a href="a: foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..38a4e338d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-tab</title>
+<a href="a: foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..c147fea498
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-backslash</title>
+<a href="http://a\b:c\d@foo.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..6f344e19a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://&a:foo(b]c@d:2/"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..26add76989
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://foo:💩@example.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..a7c56342bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://::@c@d:2"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/href/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..6571b3846a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/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>
+<a href="http://💩:foo@example.com"></a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/media-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/media-novalid.html
new file mode 100644
index 0000000000..756ab76420
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/media-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>anchor element with "media" attribute</title>
+<a media=all>foo</a>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/model-isvalid.html
new file mode 100644
index 0000000000..4704893e2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/model-isvalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>valid anchor element</title>
+<div><a><p>foo</p></a></div><!-- with flow content and flow parent -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/model-novalid.html
new file mode 100644
index 0000000000..86bcdf3fc0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/model-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>anchor with flow content and phrasing parent</title>
+<span><a><p>foo</p></a></span>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/a/name-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/a/name-empty-novalid.html
new file mode 100644
index 0000000000..21eec58c10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/a/name-empty-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>invalid empty value for a/@name</title>
+<meta charset=utf-8>
+</head>
+<body>
+<a name=''></a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-isvalid.html
new file mode 100644
index 0000000000..59518af288
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;abbr&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><abbr class="class" lang="en" title=''>text</abbr></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><abbr title="text1" class="class" lang="en">text</abbr></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <abbr title=''></abbr></p>
+ <p>text <dfn><abbr title=''></abbr></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><abbr title=''><a>text</a></abbr></p>
+ <p><dfn><abbr title=''><a>text</a></abbr></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-novalid.html
new file mode 100644
index 0000000000..924c98ea30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;abbr&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <abbr>text</abbr>
+
+ <!-- cannot contain structured inline -->
+ <p><abbr><ul><li>text</li></ul></abbr></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><abbr><a>text</a></abbr></a></p>
+ <p><a><dfn><abbr><a>text</a></abbr></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/address/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/address/model-isvalid.html
new file mode 100644
index 0000000000..94934bba1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/address/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;address&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <address class="class" id="id" lang="en">text</address>
+
+ <!-- can contain interactive -->
+ <address><a>text</a></address>
+
+ <!-- cannot contain structured inline -->
+ <address>text <em>elem</em></address>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/address/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/address/model-novalid.html
new file mode 100644
index 0000000000..3c4575944f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/address/model-novalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;address&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <address class="class" id="id" lang="en">text</address>
+
+ <!-- can contain interactive -->
+ <address><a>text</a></address>
+
+ <!-- cannot contain address inline -->
+ <address>text <address>elem</address></address>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/download-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/download-isvalid.html
new file mode 100644
index 0000000000..12a881fc6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/download-isvalid.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>valid download</title>
+<map name=bar><area download>foo</map><!-- empty download -->
+<map name=bar><area download=baz>foo</map><!-- arbitrary value for download -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href-empty-isvalid.html
new file mode 100644
index 0000000000..06fd9ac77c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty href is valid</title>
+<map name=foo><area href="" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href-isvalid.html
new file mode 100644
index 0000000000..20c2b3ddf2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href</title>
+<map name=foo><area href="a:foo.com" alt></map><!-- scheme-private -->
+<map name=foo><area href="foo:/" alt></map><!-- scheme-private-slash -->
+<map name=foo><area href="foo://" alt></map><!-- scheme-private-slash-slash -->
+<map name=foo><area href="foo:/bar.com/" alt></map><!-- scheme-private-path -->
+<map name=foo><area href="foo://///////" alt></map><!-- scheme-private-path-leading-slashes-only -->
+<map name=foo><area href="foo://///////bar.com/" alt></map><!-- scheme-private-path-leading-slashes-chars -->
+<map name=foo><area href="foo:////://///" alt></map><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<map name=foo><area href="c:/foo" alt></map><!-- scheme-private-single-letter -->
+<map name=foo><area href="madeupscheme:/example.com/" alt></map><!-- scheme-private-single-slash -->
+<map name=foo><area href="file:/example.com/" alt></map><!-- scheme-file-single-slash -->
+<map name=foo><area href="ftps:/example.com/" alt></map><!-- scheme-ftps-single-slash -->
+<map name=foo><area href="gopher:/example.com/" alt></map><!-- scheme-gopher-single-slash -->
+<map name=foo><area href="ws:/example.com/" alt></map><!-- scheme-ws-single-slash -->
+<map name=foo><area href="wss:/example.com/" alt></map><!-- scheme-wss-single-slash -->
+<map name=foo><area href="javascript:/example.com/" alt></map><!-- scheme-javascript-single-slash -->
+<map name=foo><area href="mailto:/example.com/" alt></map><!-- scheme-mailto-single-slash -->
+<map name=foo><area href="madeupscheme:example.com/" alt></map><!-- scheme-private-no-slash -->
+<map name=foo><area href="ftps:example.com/" alt></map><!-- scheme-ftps-no-slash -->
+<map name=foo><area href="gopher:example.com/" alt></map><!-- scheme-gopher-no-slash -->
+<map name=foo><area href="wss:example.com/" alt></map><!-- scheme-wss-no-slash -->
+<map name=foo><area href="mailto:example.com/" alt></map><!-- scheme-mailto-no-slash -->
+<map name=foo><area href="data:text/plain,foo" alt></map><!-- scheme-data-no-slash -->
+<map name=foo><area href="http://user:pass@foo:21/bar;par?b#c" alt></map><!-- userinfo -->
+<map name=foo><area href="http://[2001::1]" alt></map><!-- host-ipv6 -->
+<map name=foo><area href="http://[2001::1]:80" alt></map><!-- host-ipv6-port -->
+<map name=foo><area href="http://f:/c" alt></map><!-- port-none-but-colon -->
+<map name=foo><area href="http://f:0/c" alt></map><!-- port-0 -->
+<map name=foo><area href="http://f:00000000000000/c" alt></map><!-- port-00000000000000 -->
+<map name=foo><area href="http://f:00000000000000000000080/c" alt></map><!-- port-00000000000000000000080 -->
+<map name=foo><area href="http://a:b@c:29/d" alt></map><!-- userinfo-host-port-path -->
+<map name=foo><area href="http://foo.com:b@d/" alt></map><!-- userinfo-username-non-alpha -->
+<map name=foo><area href="http://foo/abcd?efgh?ijkl" alt></map><!-- query-contains-question-mark -->
+<map name=foo><area href="http://foo/abcd#foo?bar" alt></map><!-- fragment-contains-question-mark -->
+<map name=foo><area href="http://example.com/foo/%2e" alt></map><!-- path-percent-encoded-dot -->
+<map name=foo><area href="http://example.com/%20foo" alt></map><!-- path-percent-encoded-space -->
+<map name=foo><area href="http://example.com/©zbar" alt></map><!-- path-non-ascii -->
+<map name=foo><area href="http://example.com/foo%41%7a" alt></map><!-- path-percent-encoded-multiple -->
+<map name=foo><area href="http://example.com/foo%91" alt></map><!-- path-percent-encoded-u0091 -->
+<map name=foo><area href="http://example.com/foo%00" alt></map><!-- path-percent-encoded-u0000 -->
+<map name=foo><area href="http://example.com/%3A%3a%3C%3c" alt></map><!-- path-percent-encoded-mixed-case -->
+<map name=foo><area href="http://example.com/你好你好" alt></map><!-- path-unicode-han -->
+<map name=foo><area href="http://example.com//foo" alt></map><!-- path-uFEFF -->
+<map name=foo><area href="http://example.com/‮/foo/‭/bar" alt></map><!-- path-u202E-u202D -->
+<map name=foo><area href="http://💩" alt></map><!-- host-is-pile-of-poo -->
+<map name=foo><area href="http💩//:foo" alt></map><!-- path-contains-pile-of-poo -->
+<map name=foo><area href="http://example.com/foo?💩" alt></map><!-- query-contains-pile-of-poo -->
+<map name=foo><area href="http://example.com/foo#💩" alt></map><!-- fragment-contains-pile-of-poo -->
+<map name=foo><area href="http://192.0x00A80001" alt></map><!-- host-192.0x00A80001 -->
+<map name=foo><area href="http://%25DOMAIN:foobar@foodomain.com" alt></map><!-- userinfo-username-contains-percent-encoded -->
+<map name=foo><area href="http://@www.example.com" alt></map><!-- userinfo-empty -->
+<map name=foo><area href="http://:b@www.example.com" alt></map><!-- userinfo-user-empty -->
+<map name=foo><area href="http://a:@www.example.com" alt></map><!-- userinfo-password-empty -->
+<map name=foo><area href="http://GOO​⁠goo.com" alt></map><!-- host-exotic-whitespace -->
+<map name=foo><area href="http://www.foo。bar.com" alt></map><!-- host-exotic-dot -->
+<map name=foo><area href="http://Go.com" alt></map><!-- host-fullwidth -->
+<map name=foo><area href="http://你好你好" alt></map><!-- host-idn-unicode-han -->
+<map name=foo><area href="http://192.168.0.257/" alt></map><!-- host-IP-address-broken -->
+<map name=foo><area href="//foo/bar" alt></map><!-- scheme-schemeless-relative -->
+<map name=foo><area href="/" alt></map><!-- path-slash-only-relative -->
+<map name=foo><area href="/a/b/c" alt></map><!-- path-simple-relative -->
+<map name=foo><area href="/a%2fc" alt></map><!-- path-percent-encoded-slash-relative -->
+<map name=foo><area href="/a/%2f/c" alt></map><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<map name=foo><area href="?" alt></map><!-- query-empty-no-path-relative -->
+<map name=foo><area href="#" alt></map><!-- fragment-empty-hash-only-no-path-relative -->
+<map name=foo><area href="#/" alt></map><!-- fragment-slash-relative -->
+<map name=foo><area href="#;?" alt></map><!-- fragment-semicolon-question-mark-relative -->
+<map name=foo><area href="#β" alt></map><!-- fragment-non-ascii-relative -->
+<map name=foo><area href="foo.com" alt></map><!-- scheme-none-relative -->
+<map name=foo><area href=":" alt></map><!-- path-colon-relative -->
+<map name=foo><area href=":a" alt></map><!-- path-leading-colon-letter-relative -->
+<map name=foo><area href=":foo.com" alt></map><!-- path-leading-colon-chars-relative -->
+<map name=foo><area href=":/" alt></map><!-- path-leading-colon-slash-relative -->
+<map name=foo><area href=":#" alt></map><!-- path-leading-colon-hash-relative -->
+<map name=foo><area href=":23" alt></map><!-- path-leading-colon-number-relative -->
+<map name=foo><area href="/:23" alt></map><!-- path-slash-colon-number-relative -->
+<map name=foo><area href="::" alt></map><!-- path-leading-colon-colon-relative -->
+<map name=foo><area href="::23" alt></map><!-- path-colon-colon-number-relative -->
+<map name=foo><area href="💩http://foo" alt></map><!-- path-starts-with-pile-of-poo -->
+<map name=foo><area href="/💩" alt></map><!-- path-slash-pile-of-poo -->
+<map name=foo><area href="File://foo/bar.html" alt></map><!-- scheme-file-uppercase -->
+<map name=foo><area href="file://C|/foo/bar" alt></map><!-- scheme-file-slash-slash-c-bar -->
+<map name=foo><area href="file://server/foo/bar" alt></map><!-- scheme-file-host-included -->
+<map name=foo><area href="file:///foo/bar.txt" alt></map><!-- scheme-file-host-empty -->
+<map name=foo><area href="file:" alt></map><!-- scheme-file-scheme-only -->
+<map name=foo><area href="file:/" alt></map><!-- scheme-file-slash-only -->
+<map name=foo><area href="file://" alt></map><!-- scheme-file-slash-slash-only -->
+<map name=foo><area href="file:///" alt></map><!-- scheme-file-slash-slash-slash-only -->
+<map name=foo><area href="file:test" alt></map><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..2c6df4076c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-backslash</title>
+<map name=foo><area href="#\" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..6e785fcf70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-contains-hash</title>
+<map name=foo><area href="http://foo/path#f#g" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..6d361df80c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-leading-space</title>
+<map name=foo><area href="http://f:21/b# e" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-cr-novalid.html
new file mode 100644
index 0000000000..f5d426039d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-cr</title>
+<map name=foo><area href="http://example. org" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b4231d3fcb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://%41.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..98cb2ac4a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://%ef%bc%85%ef%bc%94%ef%bc%91.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-novalid.html
new file mode 100644
index 0000000000..22684d89dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty</title>
+<map name=foo><area href="http://" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..d29da93602
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://@/www.example.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..5ca0ed7648
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://user:pass@/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..c60734adfc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://[www.google.com]/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..c7d1111196
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode</title>
+<map name=foo><area href="http://﷐zyx.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..ef79d37f59
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://%ef%b7%90zyx.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-newline-novalid.html
new file mode 100644
index 0000000000..ece26cf6ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-newline</title>
+<map name=foo><area href="http://example.
+org" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-space-novalid.html
new file mode 100644
index 0000000000..65a3611a45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-space</title>
+<map name=foo><area href="http://example .org" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..b3a1639547
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://[1::2]:3:4" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-tab-novalid.html
new file mode 100644
index 0000000000..cc58fb54c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-tab</title>
+<map name=foo><area href="http://example .org" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..1200b50e05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://%00.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fc52797d4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://%ef%bc%85%ef%bc%90%ef%bc%90.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..12a06504b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://example.com/foo%" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-contains-space-novalid.html
new file mode 100644
index 0000000000..ef2889cd75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-contains-space</title>
+<map name=foo><area href="/a/ /c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..667e6313c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://foo.com/\@" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..7f9994a76e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href=":\" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..7eede5dec5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href=":foo.com\" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-space-novalid.html
new file mode 100644
index 0000000000..ff17389544
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-space</title>
+<map name=foo><area href="http://f:21/ b" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..9e5f0e8e1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://example.com/foo/%2e%2" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..69b04b4f21
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="[61:24:74]:98" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-tab-novalid.html
new file mode 100644
index 0000000000..a6f023c403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-tab</title>
+<map name=foo><area href="http://example.com/foo bar" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..65b1e02a4b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-trailing-space</title>
+<map name=foo><area href="http://f:21/b ?" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-u0091-novalid.html
new file mode 100644
index 0000000000..aa0fcde344
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-u0091</title>
+<map name=foo><area href="http://example.com/foo‘" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-999999-novalid.html
new file mode 100644
index 0000000000..13106ac227
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-999999</title>
+<map name=foo><area href="http://f:999999/c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-cr-novalid.html
new file mode 100644
index 0000000000..b38c7ba8fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-cr</title>
+<map name=foo><area href="http://f: /c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..f6668e1518
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://2001::1]:80" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..6de34e1ada
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon</title>
+<map name=foo><area href="http://2001::1" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..215197e7b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-dash</title>
+<map name=foo><area href="http://foo:-80/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..548f239273
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-multiple-letters</title>
+<map name=foo><area href="http://f:fifty-two/c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-newline-novalid.html
new file mode 100644
index 0000000000..0efb34e3be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-newline</title>
+<map name=foo><area href="http://f:
+/c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-single-letter-novalid.html
new file mode 100644
index 0000000000..5efc977c0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-single-letter</title>
+<map name=foo><area href="http://f:b/c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-space-novalid.html
new file mode 100644
index 0000000000..85c7e60dbd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-space</title>
+<map name=foo><area href="http://f: /c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-tab-novalid.html
new file mode 100644
index 0000000000..591c3c736d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-tab</title>
+<map name=foo><area href="http://f: /c" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-leading-space-novalid.html
new file mode 100644
index 0000000000..3843fe5538
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-leading-space</title>
+<map name=foo><area href="http://f:21/b? d" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..7e2e981f8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-trailing-space</title>
+<map name=foo><area href="http://f:21/b?d #" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..ba727f5339
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="data:text/html,test#test" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..79ee412f8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="data:/example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..e21e8173d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-backslash</title>
+<map name=foo><area href="file:c:\foo\bar.html" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..dbb9912cfd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="file:/C|/foo/bar" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..1c8209038b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="file://abc|/foo/bar" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..07276a244b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="file:///C|/foo/bar" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..e92a75d01a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="ftp:example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..180e0d2721
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="ftp:/example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..d1281c4de0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-backslash</title>
+<map name=foo><area href="http:\\foo.com\" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..4986f1a224
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http::@c:29" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..2d3ba5b5bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http:foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..bc4ddc247b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http:[61:27]/:foo" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..eb2cb78f9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http:/example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..84e8a816c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="https:example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..cc6ea3237a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="https:/example.com/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..5031456354
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-cr</title>
+<map name=foo><area href="a: foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..422c685e5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-newline</title>
+<map name=foo><area href="a:
+foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..aa877fe965
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-space</title>
+<map name=foo><area href="a: foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..fb9055a41c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-tab</title>
+<map name=foo><area href="a: foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..9419fd0a76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-backslash</title>
+<map name=foo><area href="http://a\b:c\d@foo.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..f9d210a064
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://&a:foo(b]c@d:2/" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..48131d7fb3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://foo:💩@example.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..6404378f37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://::@c@d:2" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/href/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..ecbd4bffbb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/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>
+<map name=foo><area href="http://💩:foo@example.com" alt></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/media-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/media-novalid.html
new file mode 100644
index 0000000000..c88391e4e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/media-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>area element with "media" attribute</title>
+<map name=foo><area media=all></map>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/model-isvalid.html
new file mode 100644
index 0000000000..6f4504fc8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/model-isvalid.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;area&gt;</title>
+</head>
+<body>
+ <map id='foo' name='foo'>
+ <p>p
+ <!-- default -->
+ <area alt="text" shape="default" href='url'>
+
+ <!-- rect -->
+ <area alt="text" shape="rect" coords="-01,2,3,4" href="url">
+ <area alt="text" shape="rect" coords="1,2,3,4" href="url">
+ <area alt="text" coords="1,-24,388,45" href="url">
+ <area alt="text" coords="1,2,3,4" href="url">
+
+ <!-- circle -->
+ <area alt="text" shape="circle" coords="01,-223,32" href="url">
+ <area alt="text" shape="circle" coords="1,2,3" href="url">
+
+ <!-- poly -->
+ <area alt="text" shape="poly" coords="01,223,42,-35,94,-94" href="url">
+ <area alt="text" shape="poly" coords="01,223,42,35,94,94,003,2" href="url">
+ <area alt="text" shape="poly" coords="-1,2,3,4,5,6,7,8,9,10" href="url">
+ </p>
+ </map>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/area/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/area/model-novalid.html
new file mode 100644
index 0000000000..921ac4494e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/area/model-novalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;area&gt;</title>
+</head>
+<body>
+ <map name="map1">
+ <!-- default has no coords -->
+ <area alt="text" shape="default" coords="1,2">
+
+ <!-- rect, circle, poly must have coords -->
+ <area alt="text" shape="rect">
+ <area alt="text" shape="circle">
+ <area alt="text" shape="poly">
+
+ <!-- rect must have four coords -->
+ <area alt="text" shape="rect" coords="1,2,3">
+ <area alt="text" shape="rect" coords=" 1 , 2 , 3 , 4 , 5, 6">
+ <area alt="text" coords="1,2,3,4,5,6">
+ <area alt="text" coords=" 1 , 2 , 3 , 4 ,">
+
+ <!-- circle must have three coords -->
+ <area alt="text" shape="circle" coords="1,2">
+ <area alt="text" shape="circle" coords=" 1 , 2 , 3 , 4 ">
+
+ <!-- poly must have coords in pairs, and at least 3 sets -->
+ <area alt="text" shape="poly" coords="1,2,3,4,5">
+ <area alt="text" shape="poly" coords="1,2,3,4,5,6,7,">
+ <area alt="text" shape="poly" coords=" 1 , 2 , 3 ,4 ,5,
+ 6 ,7 ,8, ,9 ">
+
+ <!-- coords must be int or percent, +/- allowed -->
+ <area alt="text" shape="rect" coords="1.5,2,3,4">
+ <area alt="text" shape="rect" coords="1,2px,3,4">
+ <area alt="text" shape="rect" coords="1 %,2,3,4">
+ <area alt="text" shape="rect" coords="1,- 2,3,4">
+ <area alt="text" shape="rect" coords="1, 2,+ 3,4">
+
+ <area alt="text" shape="circle" coords="1.5,2,3">
+ <area alt="text" shape="circle" coords="1,2px,3">
+ <area alt="text" shape="circle" coords="1 %,2,3">
+ <area alt="text" shape="circle" coords="1,- 2,3">
+ <area alt="text" shape="circle" coords="1, 2,+ 3">
+
+ <area alt="text" shape="poly" coords="5,6,1.5,2,3,4">
+ <area alt="text" shape="poly" coords="5,6,1,2px,3,4">
+ <area alt="text" shape="poly" coords="5,6,1 %,2,3,4">
+ <area alt="text" shape="poly" coords="5,6,1,- 2,3,4">
+ <area alt="text" shape="poly" coords="5,6,1, 2,+ 3,4">
+ </map>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-isvalid.html
new file mode 100644
index 0000000000..6588326bd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-isvalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>audio with flow content and flow parent</title>
+<div><audio><p>foo</p></audio></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-novalid.html
new file mode 100644
index 0000000000..0c3d590c68
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/model-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>audio with flow content and phrasing parent</title>
+<span><audio><p>foo</p></audio></span>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-empty-novalid.html
new file mode 100644
index 0000000000..96deecbb68
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty audio src is not valid</title>
+<audio src=""></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-isvalid.html
new file mode 100644
index 0000000000..672e2b6933
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<audio src="a:foo.com"></audio><!-- scheme-private -->
+<audio src="foo:/"></audio><!-- scheme-private-slash -->
+<audio src="foo://"></audio><!-- scheme-private-slash-slash -->
+<audio src="foo:/bar.com/"></audio><!-- scheme-private-path -->
+<audio src="foo://///////"></audio><!-- scheme-private-path-leading-slashes-only -->
+<audio src="foo://///////bar.com/"></audio><!-- scheme-private-path-leading-slashes-chars -->
+<audio src="foo:////://///"></audio><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<audio src="c:/foo"></audio><!-- scheme-private-single-letter -->
+<audio src="madeupscheme:/example.com/"></audio><!-- scheme-private-single-slash -->
+<audio src="file:/example.com/"></audio><!-- scheme-file-single-slash -->
+<audio src="ftps:/example.com/"></audio><!-- scheme-ftps-single-slash -->
+<audio src="gopher:/example.com/"></audio><!-- scheme-gopher-single-slash -->
+<audio src="ws:/example.com/"></audio><!-- scheme-ws-single-slash -->
+<audio src="wss:/example.com/"></audio><!-- scheme-wss-single-slash -->
+<audio src="javascript:/example.com/"></audio><!-- scheme-javascript-single-slash -->
+<audio src="mailto:/example.com/"></audio><!-- scheme-mailto-single-slash -->
+<audio src="madeupscheme:example.com/"></audio><!-- scheme-private-no-slash -->
+<audio src="ftps:example.com/"></audio><!-- scheme-ftps-no-slash -->
+<audio src="gopher:example.com/"></audio><!-- scheme-gopher-no-slash -->
+<audio src="wss:example.com/"></audio><!-- scheme-wss-no-slash -->
+<audio src="mailto:example.com/"></audio><!-- scheme-mailto-no-slash -->
+<audio src="data:text/plain,foo"></audio><!-- scheme-data-no-slash -->
+<audio src="http://user:pass@foo:21/bar;par?b#c"></audio><!-- userinfo -->
+<audio src="http://[2001::1]"></audio><!-- host-ipv6 -->
+<audio src="http://[2001::1]:80"></audio><!-- host-ipv6-port -->
+<audio src="http://f:/c"></audio><!-- port-none-but-colon -->
+<audio src="http://f:0/c"></audio><!-- port-0 -->
+<audio src="http://f:00000000000000/c"></audio><!-- port-00000000000000 -->
+<audio src="http://f:00000000000000000000080/c"></audio><!-- port-00000000000000000000080 -->
+<audio src="http://a:b@c:29/d"></audio><!-- userinfo-host-port-path -->
+<audio src="http://foo.com:b@d/"></audio><!-- userinfo-username-non-alpha -->
+<audio src="http://foo/abcd?efgh?ijkl"></audio><!-- query-contains-question-mark -->
+<audio src="http://foo/abcd#foo?bar"></audio><!-- fragment-contains-question-mark -->
+<audio src="http://example.com/foo/%2e"></audio><!-- path-percent-encoded-dot -->
+<audio src="http://example.com/%20foo"></audio><!-- path-percent-encoded-space -->
+<audio src="http://example.com/©zbar"></audio><!-- path-non-ascii -->
+<audio src="http://example.com/foo%41%7a"></audio><!-- path-percent-encoded-multiple -->
+<audio src="http://example.com/foo%91"></audio><!-- path-percent-encoded-u0091 -->
+<audio src="http://example.com/foo%00"></audio><!-- path-percent-encoded-u0000 -->
+<audio src="http://example.com/%3A%3a%3C%3c"></audio><!-- path-percent-encoded-mixed-case -->
+<audio src="http://example.com/你好你好"></audio><!-- path-unicode-han -->
+<audio src="http://example.com//foo"></audio><!-- path-uFEFF -->
+<audio src="http://example.com/‮/foo/‭/bar"></audio><!-- path-u202E-u202D -->
+<audio src="http://💩"></audio><!-- host-is-pile-of-poo -->
+<audio src="http💩//:foo"></audio><!-- path-contains-pile-of-poo -->
+<audio src="http://example.com/foo?💩"></audio><!-- query-contains-pile-of-poo -->
+<audio src="http://example.com/foo#💩"></audio><!-- fragment-contains-pile-of-poo -->
+<audio src="http://192.0x00A80001"></audio><!-- host-192.0x00A80001 -->
+<audio src="http://%25DOMAIN:foobar@foodomain.com"></audio><!-- userinfo-username-contains-percent-encoded -->
+<audio src="http://@www.example.com"></audio><!-- userinfo-empty -->
+<audio src="http://:b@www.example.com"></audio><!-- userinfo-user-empty -->
+<audio src="http://a:@www.example.com"></audio><!-- userinfo-password-empty -->
+<audio src="http://GOO​⁠goo.com"></audio><!-- host-exotic-whitespace -->
+<audio src="http://www.foo。bar.com"></audio><!-- host-exotic-dot -->
+<audio src="http://Go.com"></audio><!-- host-fullwidth -->
+<audio src="http://你好你好"></audio><!-- host-idn-unicode-han -->
+<audio src="http://192.168.0.257/"></audio><!-- host-IP-address-broken -->
+<audio src="//foo/bar"></audio><!-- scheme-schemeless-relative -->
+<audio src="/"></audio><!-- path-slash-only-relative -->
+<audio src="/a/b/c"></audio><!-- path-simple-relative -->
+<audio src="/a%2fc"></audio><!-- path-percent-encoded-slash-relative -->
+<audio src="/a/%2f/c"></audio><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<audio src="?"></audio><!-- query-empty-no-path-relative -->
+<audio src="#"></audio><!-- fragment-empty-hash-only-no-path-relative -->
+<audio src="#/"></audio><!-- fragment-slash-relative -->
+<audio src="#;?"></audio><!-- fragment-semicolon-question-mark-relative -->
+<audio src="#β"></audio><!-- fragment-non-ascii-relative -->
+<audio src="foo.com"></audio><!-- scheme-none-relative -->
+<audio src=":"></audio><!-- path-colon-relative -->
+<audio src=":a"></audio><!-- path-leading-colon-letter-relative -->
+<audio src=":foo.com"></audio><!-- path-leading-colon-chars-relative -->
+<audio src=":/"></audio><!-- path-leading-colon-slash-relative -->
+<audio src=":#"></audio><!-- path-leading-colon-hash-relative -->
+<audio src=":23"></audio><!-- path-leading-colon-number-relative -->
+<audio src="/:23"></audio><!-- path-slash-colon-number-relative -->
+<audio src="::"></audio><!-- path-leading-colon-colon-relative -->
+<audio src="::23"></audio><!-- path-colon-colon-number-relative -->
+<audio src="💩http://foo"></audio><!-- path-starts-with-pile-of-poo -->
+<audio src="/💩"></audio><!-- path-slash-pile-of-poo -->
+<audio src="File://foo/bar.html"></audio><!-- scheme-file-uppercase -->
+<audio src="file://C|/foo/bar"></audio><!-- scheme-file-slash-slash-c-bar -->
+<audio src="file://server/foo/bar"></audio><!-- scheme-file-host-included -->
+<audio src="file:///foo/bar.txt"></audio><!-- scheme-file-host-empty -->
+<audio src="file:"></audio><!-- scheme-file-scheme-only -->
+<audio src="file:/"></audio><!-- scheme-file-slash-only -->
+<audio src="file://"></audio><!-- scheme-file-slash-slash-only -->
+<audio src="file:///"></audio><!-- scheme-file-slash-slash-slash-only -->
+<audio src="file:test"></audio><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..73508d3344
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty audio src is not valid</title>
+<audio src="
+"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..7c18367b52
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<audio src="#\"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..aed50092d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<audio src="http://foo/path#f#g"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..98ed32230f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<audio src="http://f:21/b# e"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-cr-novalid.html
new file mode 100644
index 0000000000..2e585b9272
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<audio src="http://example. org"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..4cb4a9acf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-double-percent-encoded</title>
+<audio src="http://%41.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..856db00f6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-double-percent-encoded-percent-encoded</title>
+<audio src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-novalid.html
new file mode 100644
index 0000000000..e10355480e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<audio src="http://"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..49b2e028c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty-userinfo-empty</title>
+<audio src="http://@/www.example.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..c1b63d760f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty-with-userinfo</title>
+<audio src="http://user:pass@/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..11a047f376
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-hostname-in-brackets</title>
+<audio src="http://[www.google.com]/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..75195b59c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<audio src="http://﷐zyx.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..afcc32114b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode-percent-encoded</title>
+<audio src="http://%ef%b7%90zyx.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-newline-novalid.html
new file mode 100644
index 0000000000..511ca14710
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<audio src="http://example.
+org"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-space-novalid.html
new file mode 100644
index 0000000000..b7cd4ed45d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<audio src="http://example .org"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..0455fffea7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-square-brackets-port-contains-colon</title>
+<audio src="http://[1::2]:3:4"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-tab-novalid.html
new file mode 100644
index 0000000000..518010071f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<audio src="http://example .org"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..04fab6d158
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-u0000-percent-encoded</title>
+<audio src="http://%00.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b9cc63cb5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-u0000-percent-encoded-percent-encoded</title>
+<audio src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..2ee3f09377
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-bare-percent-sign</title>
+<audio src="http://example.com/foo%"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..8def346ca0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<audio src="/a/ /c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..56ee353513
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-backslash-at-sign</title>
+<audio src="http://foo.com/\@"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..edc0cbfa72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-colon-backslash</title>
+<audio src=":\"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..3f6aa0319e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-colon-chars-backslash</title>
+<audio src=":foo.com\"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..9a512c35e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<audio src="http://f:21/ b"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..d84fd0c3bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-percent-encoded-malformed</title>
+<audio src="http://example.com/foo/%2e%2"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..3efbb56b3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-relative-square-brackets</title>
+<audio src="[61:24:74]:98"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-tab-novalid.html
new file mode 100644
index 0000000000..1e368d1172
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<audio src="http://example.com/foo bar"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..9751a76b86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<audio src="http://f:21/b ?"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..453e2095fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<audio src="http://example.com/foo‘"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-999999-novalid.html
new file mode 100644
index 0000000000..76b70598e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<audio src="http://f:999999/c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-cr-novalid.html
new file mode 100644
index 0000000000..26ac72f8a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<audio src="http://f: /c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..c8a549b4e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon-bracket-colon</title>
+<audio src="http://2001::1]:80"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..836a94eb72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<audio src="http://2001::1"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..822e666a76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<audio src="http://foo:-80/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..55b0a0c507
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<audio src="http://f:fifty-two/c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-newline-novalid.html
new file mode 100644
index 0000000000..e9a34b0ee7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<audio src="http://f:
+/c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..5f7f44ef32
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<audio src="http://f:b/c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-space-novalid.html
new file mode 100644
index 0000000000..a931754b86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<audio src="http://f: /c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-tab-novalid.html
new file mode 100644
index 0000000000..80c169a686
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<audio src="http://f: /c"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..76bab5cc9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<audio src="http://f:21/b? d"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..009d504492
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<audio src="http://f:21/b?d #"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..d96f8742f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>data:text/html,test#test warning: scheme-data-contains-fragment</title>
+<audio src="data:text/html,test#test"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..693bd23c9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-data-single-slash</title>
+<audio src="data:/example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..a84f17e15a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<audio src="file:c:\foo\bar.html"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..473c5219fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-single-slash-c-bar</title>
+<audio src="file:/C|/foo/bar"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..71349ea276
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-slash-slash-abc-bar</title>
+<audio src="file://abc|/foo/bar"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..941f34e21e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-triple-slash-c-bar</title>
+<audio src="file:///C|/foo/bar"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..9798091d4c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-ftp-no-slash</title>
+<audio src="ftp:example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..fa86c3a484
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-ftp-single-slash</title>
+<audio src="ftp:/example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..5a9d6a89f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<audio src="http:\\foo.com\"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..bb71cdeed5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash-colon</title>
+<audio src="http::@c:29"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..7f795d50f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash</title>
+<audio src="http:foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..ed81ac62cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash-square-bracket</title>
+<audio src="http:[61:27]/:foo"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..51b8196445
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-single-slash</title>
+<audio src="http:/example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..8f67ab00f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-https-no-slash</title>
+<audio src="https:example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..be23c7b20a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-https-single-slash</title>
+<audio src="https:/example.com/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..3e40e8a831
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<audio src="a: foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..79e9dd14fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<audio src="a:
+foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..b09f7aad82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<audio src="a: foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..2f6137be58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<audio src="a: foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..0b95aa9799
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<audio src="http://a\b:c\d@foo.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..c2823588c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-password-bad-chars</title>
+<audio src="http://&a:foo(b]c@d:2/"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..f8039e76b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-password-contains-pile-of-poo</title>
+<audio src="http://foo:💩@example.com"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..f50b2b25f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-username-contains-at-sign</title>
+<audio src="http://::@c@d:2"></audio>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..fa769f894c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-username-contains-pile-of-poo</title>
+<audio src="http://💩:foo@example.com"></audio>